{"version":3,"file":"static/js/main.d9ad883e.js","mappings":"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IAATA,GAA4B,KAATA,CAC5B,CCFA,IAAMC,GAAgB,gCAEtB,SAASC,GAAgBC,GACvB,OAAOC,GAAgBD,EAAIE,WAAW,GACxC,CAEA,IAAMD,GAAkB,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,MACA,MACA,MACA,UACA,MACA,MACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WCtKK,SAASE,GAAMC,GACpB,OAAO/H,GAAM+H,EAAKC,GACpB,CACA,IACMA,GAAqB,CACzBnL,KAAM,CACJsF,MAAO,SAACvB,GAAI,OAAKA,EAAK/X,KAAK,GAE7BoU,SAAU,CACRkF,MAAO,SAACvB,GAAI,MAAK,IAAMA,EAAKtV,IAAI,GAGlCwR,SAAU,CACRqF,MAAO,SAACvB,GAAI,OAAKnU,GAAKmU,EAAK/K,YAAa,OAAO,GAEjDkH,oBAAqB,CACnBoF,MAAK,SAACvB,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CEtxC,GAAI,UACJ2E,KAAM,UACN2sC,IAAK,yCAEP,CACEtxC,GAAI,SACJ2E,KAAM,SACN2sC,IAAK,iCAEP,CACEtxC,GAAI,WACJ2E,KAAM,WACN2sC,IAAK,8CAEP,CACEtxC,GAAI,UACJ2E,KAAM,UACN2sC,IAAK,4DAEP,CACEtxC,GAAI,MACJ2E,KAAM,MACN2sC,IAAK,8CAGTqnB,gBAAiB,CACf,CACEh0D,KAAM,UACNoqD,cAAe,CACb,CACEpqD,KAAM,QACNwV,KAAM,YACN60C,YAAY,GAEd,CACErqD,KAAM,OACNwV,KAAM,QACN60C,YAAY,GAEd,CACErqD,KAAM,UACNwV,KAAM,WACN60C,YAAY,GAEd,CACErqD,KAAM,MACNwV,KAAM,OACN60C,YAAY,KA6BlB,CACErqD,KAAM,YACNoqD,cAAe,CACb,CACEpqD,KAAM,aACNwV,KAAM,qDACN60C,YAAY,GAEd,CACErqD,KAAM,WACNwV,KAAM,yFACN60C,YAAY,GAEd,CACErqD,KAAM,aACNwV,KAAM,yGACN60C,YAAY,GAEd,CACErqD,KAAM,eACNwV,KAAM,2CACN60C,YAAY,MAKpBkC,cAAe,6JC/HV,IAAMf,EAAsB,CACjC,CACExrD,KAAM,UACNgH,KAAM,WACN2lD,UAAU,EACVvC,cAAe,CACb,CACEpqD,KAAM,QACNwV,KAAM,YACN60C,YAAY,GAEd,CACErqD,KAAM,OACNwV,KAAM,QACN60C,YAAY,GAEd,CACErqD,KAAM,UACNwV,KAAM,WACN60C,YAAY,GAEd,CACErqD,KAAM,MACNwV,KAAM,OACN60C,YAAY,KA+BlB,CACErqD,KAAM,YACNgH,KAAM,WACN2lD,UAAU,EACVvC,cAAe,CACb,CACEpqD,KAAM,aACNwV,KAAM,qDACN60C,YAAY,GAEd,CACErqD,KAAM,WACNwV,KAAM,yFACN60C,YAAY,GAEd,CACErqD,KAAM,aACNwV,KAAM,yGACN60C,YAAY,GAEd,CACErqD,KAAM,eACNwV,KAAM,2CACN60C,YAAY,KAIlB,CACErqD,KAAM,gBACNgH,KAAM,OACN0I,KAAM,mBACNi9C,UAAU,GAEZ,CACE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","sources":["assets/images/icons/external-link.svg","../node_modules/tslib/tslib.es6.js","../node_modules/ts-invariant/src/invariant.ts","../node_modules/@apollo/src/utilities/globals/maybe.ts","../node_modules/@apollo/src/utilities/globals/global.ts","../node_modules/@apollo/src/utilities/globals/DEV.ts","../node_modules/ts-invariant/process/index.js","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/graphql/language/source.mjs","../node_modules/zen-observable-ts/module.js","../node_modules/@apollo/src/utilities/globals/fix-graphql.ts","../node_modules/@apollo/src/utilities/globals/index.ts","../node_modules/@apollo/src/utilities/common/objects.ts","../node_modules/@apollo/src/utilities/graphql/fragments.ts","../node_modules/@apollo/src/utilities/graphql/storeUtils.ts","../node_modules/@apollo/src/utilities/graphql/getFromAST.ts","../node_modules/@apollo/src/link/core/ApolloLink.ts","../node_modules/graphql/language/ast.mjs","../node_modules/graphql/language/kinds.mjs","../node_modules/@apollo/src/link/utils/createOperation.ts","../node_modules/@apollo/src/link/utils/transformOperation.ts","../node_modules/@apollo/src/link/utils/validateOperation.ts","../node_modules/@apollo/src/link/core/execute.ts","../node_modules/graphql/language/visitor.mjs","../node_modules/@apollo/src/utilities/graphql/directives.ts","../node_modules/@apollo/src/link/http/serializeFetchParameter.ts","../node_modules/@apollo/src/utilities/common/canUse.ts","../node_modules/@apollo/src/link/http/iterators/nodeStream.ts","../node_modules/@apollo/src/link/http/iterators/reader.ts","../node_modules/@apollo/src/link/http/responseIterator.ts","../node_modules/@apollo/src/utilities/common/responseIterator.ts","../node_modules/@apollo/src/link/http/iterators/async.ts","../node_modules/@apollo/src/link/http/iterators/promise.ts","../node_modules/@apollo/src/link/utils/throwServerError.ts","../node_modules/@apollo/src/link/http/parseAndCheckHttpResponse.ts","../node_modules/graphql/language/characterClasses.mjs","../node_modules/graphql/language/printString.mjs","../node_modules/graphql/language/printer.mjs","../node_modules/graphql/language/blockString.mjs","../node_modules/@apollo/src/link/http/selectHttpOptionsAndBody.ts","../node_modules/@apollo/src/link/utils/fromError.ts","../node_modules/@apollo/src/link/http/createHttpLink.ts","../node_modules/@apollo/src/link/http/checkFetcher.ts","../node_modules/@apollo/src/link/http/selectURI.ts","../node_modules/@apollo/src/link/http/createSignalIfSupported.ts","../node_modules/@apollo/src/link/http/rewriteURIForGET.ts","../node_modules/@apollo/src/link/http/HttpLink.ts","../node_modules/@wry/equality/src/equality.ts","../node_modules/@apollo/src/utilities/common/arrays.ts","../node_modules/@apollo/src/utilities/common/mergeDeep.ts","../node_modules/@apollo/src/utilities/common/incrementalResult.ts","../node_modules/@wry/trie/src/trie.ts","../node_modules/@apollo/src/cache/inmemory/object-canon.ts","../node_modules/@apollo/src/utilities/observables/asyncMap.ts","../node_modules/@apollo/src/utilities/common/errorHandling.ts","../node_modules/@apollo/src/utilities/graphql/transform.ts","../node_modules/@apollo/src/utilities/common/makeUniqueId.ts","../node_modules/@apollo/src/utilities/observables/iteration.ts","../node_modules/@apollo/src/utilities/observables/subclassing.ts","../node_modules/@apollo/src/utilities/observables/Concast.ts","../node_modules/@apollo/src/errors/index.ts","../node_modules/@apollo/src/core/networkStatus.ts","../node_modules/@apollo/src/utilities/common/cloneDeep.ts","../node_modules/@apollo/src/utilities/common/compact.ts","../node_modules/@apollo/src/core/ObservableQuery.ts","../node_modules/graphql/language/predicates.mjs","../node_modules/@wry/context/src/slot.ts","../node_modules/@wry/context/src/context.ts","../node_modules/optimism/src/cache.ts","../node_modules/optimism/src/context.ts","../node_modules/optimism/src/helpers.ts","../node_modules/optimism/src/entry.ts","../node_modules/optimism/src/dep.ts","../node_modules/optimism/src/index.ts","../node_modules/@apollo/src/cache/inmemory/reactiveVars.ts","../node_modules/@apollo/src/core/LocalState.ts","../node_modules/@apollo/src/core/QueryInfo.ts","../node_modules/@apollo/src/core/QueryManager.ts","../node_modules/@apollo/src/utilities/common/mergeOptions.ts","../node_modules/@apollo/src/core/ApolloClient.ts","../node_modules/@apollo/src/version.ts","../node_modules/@apollo/src/cache/core/cache.ts","../node_modules/@apollo/src/cache/core/types/common.ts","../node_modules/@apollo/src/utilities/common/maybeDeepFreeze.ts","../node_modules/@apollo/src/cache/inmemory/helpers.ts","../node_modules/@apollo/src/cache/inmemory/entityStore.ts","../node_modules/@apollo/src/cache/inmemory/readFromStore.ts","../node_modules/@apollo/src/cache/inmemory/key-extractor.ts","../node_modules/@apollo/src/cache/inmemory/policies.ts","../node_modules/@apollo/src/utilities/common/stringifyForDisplay.ts","../node_modules/@apollo/src/cache/inmemory/writeToStore.ts","../node_modules/@apollo/src/cache/inmemory/inMemoryCache.ts","../node_modules/@apollo/src/react/context/ApolloContext.ts","../node_modules/@apollo/src/react/context/ApolloProvider.tsx","App.jsx","Hooks/scrollToTop.js","ImageRotationContext.jsx","assets/images/icons/chevron-down-2.svg","components/Accordion/index.jsx","components/Button/index.jsx","components/Cards/Style1/index.jsx","components/Footer/index.jsx","assets/images/icons/chevron-down.svg","assets/images/icons/triangle.svg","assets/images/icons/close.svg","assets/images/icons/hamburger.svg","components/Header/index.jsx","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","components/InfiniteLoopBrandSlider/index.jsx","components/Loader/index.jsx","components/MediaCardsSlider/index.jsx","assets/images/icons/arrow-up-long.svg","components/ScrollToTopButton/index.jsx","components/TeamCard/index.jsx","configs/faqConfig.js","configs/footerConfig.js","configs/headerConfigs.js","configs/homeAnimationTextConfig.js","configs/homeMobileAnimationTextConfig.js","configs/mediaAndPressConfig.js","configs/roadmapConfig.js","configs/teamConfig.js","context/AppContext.js","index.jsx","layouts/Layout.jsx","assets/images/about-us/arrow-right.svg","assets/images/about-us/goldbars.svg","assets/images/about-us/pawn.svg","assets/images/about-us/etherium.svg","assets/images/about-us/mint-gpo.svg","assets/images/about-us/mint-gpx.svg","assets/images/about-us/list-gpx.svg","assets/images/about-us/handshake.svg","assets/images/about-us/blockchain.svg","assets/images/about-us/graph.svg","assets/images/about-us/gpo-large.svg","assets/images/about-us/gpx-large.svg","pages/AboutUs/index.jsx","pages/Academy/index.jsx","pages/FAQ/index.jsx","pages/GoldMines/index.jsx","assets/images/icons/arrow-down-circle.svg","pages/Home/index.jsx","pages/MediaAndPress/index.jsx","pages/Roadmap/index.jsx","pages/Stake2Win/index.jsx","pages/Team/index.jsx","pages/Xenii2/index.jsx","reportWebVitals.js","utils/utilityFunctions.js","../@adobe/css-tools/src/CssParseError.ts","../@adobe/css-tools/src/CssPosition.ts","../@adobe/css-tools/src/index.ts","../@adobe/css-tools/src/parse/index.ts","../@adobe/css-tools/src/stringify/compiler.ts","../@adobe/css-tools/src/stringify/index.ts","../@adobe/css-tools/src/type.ts","../@adobe/css-tools/webpack/bootstrap","../@adobe/css-tools/webpack/startup","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/@testing-library/jest-dom/dist/extend-expect.js","../node_modules/@testing-library/jest-dom/dist/index.js","../node_modules/@testing-library/jest-dom/dist/matchers.js","../node_modules/@testing-library/jest-dom/dist/to-be-checked.js","../node_modules/@testing-library/jest-dom/dist/to-be-disabled.js","../node_modules/@testing-library/jest-dom/dist/to-be-empty-dom-element.js","../node_modules/@testing-library/jest-dom/dist/to-be-empty.js","../node_modules/@testing-library/jest-dom/dist/to-be-in-the-document.js","../node_modules/@testing-library/jest-dom/dist/to-be-in-the-dom.js","../node_modules/@testing-library/jest-dom/dist/to-be-invalid.js","../node_modules/@testing-library/jest-dom/dist/to-be-partially-checked.js","../node_modules/@testing-library/jest-dom/dist/to-be-required.js","../node_modules/@testing-library/jest-dom/dist/to-be-visible.js","../node_modules/@testing-library/jest-dom/dist/to-contain-element.js","../node_modules/@testing-library/jest-dom/dist/to-contain-html.js","../node_modules/@testing-library/jest-dom/dist/to-have-accessible-description.js","../node_modules/@testing-library/jest-dom/dist/to-have-accessible-name.js","../node_modules/@testing-library/jest-dom/dist/to-have-attribute.js","../node_modules/@testing-library/jest-dom/dist/to-have-class.js","../node_modules/@testing-library/jest-dom/dist/to-have-description.js","../node_modules/@testing-library/jest-dom/dist/to-have-display-value.js","../node_modules/@testing-library/jest-dom/dist/to-have-errormessage.js","../node_modules/@testing-library/jest-dom/dist/to-have-focus.js","../node_modules/@testing-library/jest-dom/dist/to-have-form-values.js","../node_modules/@testing-library/jest-dom/dist/to-have-style.js","../node_modules/@testing-library/jest-dom/dist/to-have-text-content.js","../node_modules/@testing-library/jest-dom/dist/to-have-value.js","../node_modules/@testing-library/jest-dom/dist/utils.js","../node_modules/ansi-styles/index.js","../node_modules/aria-query/lib/ariaPropsMap.js","../node_modules/aria-query/lib/domMap.js","../node_modules/aria-query/lib/elementRoleMap.js","../node_modules/aria-query/lib/etc/roles/abstract/commandRole.js","../node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js","../node_modules/aria-query/lib/etc/roles/abstract/inputRole.js","../node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js","../node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js","../node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js","../node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js","../node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js","../node_modules/aria-query/lib/etc/roles/abstract/selectRole.js","../node_modules/aria-query/lib/etc/roles/abstract/structureRole.js","../node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js","../node_modules/aria-query/lib/etc/roles/abstract/windowRole.js","../node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js","../node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js","../node_modules/aria-query/lib/etc/roles/ariaGraphicsRoles.js","../node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js","../node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js","../node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js","../node_modules/aria-query/lib/etc/roles/graphics/graphicsDocumentRole.js","../node_modules/aria-query/lib/etc/roles/graphics/graphicsObjectRole.js","../node_modules/aria-query/lib/etc/roles/graphics/graphicsSymbolRole.js","../node_modules/aria-query/lib/etc/roles/literal/alertRole.js","../node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js","../node_modules/aria-query/lib/etc/roles/literal/applicationRole.js","../node_modules/aria-query/lib/etc/roles/literal/articleRole.js","../node_modules/aria-query/lib/etc/roles/literal/bannerRole.js","../node_modules/aria-query/lib/etc/roles/literal/blockquoteRole.js","../node_modules/aria-query/lib/etc/roles/literal/buttonRole.js","../node_modules/aria-query/lib/etc/roles/literal/captionRole.js","../node_modules/aria-query/lib/etc/roles/literal/cellRole.js","../node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js","../node_modules/aria-query/lib/etc/roles/literal/codeRole.js","../node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js","../node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js","../node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js","../node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js","../node_modules/aria-query/lib/etc/roles/literal/definitionRole.js","../node_modules/aria-query/lib/etc/roles/literal/deletionRole.js","../node_modules/aria-query/lib/etc/roles/literal/dialogRole.js","../node_modules/aria-query/lib/etc/roles/literal/directoryRole.js","../node_modules/aria-query/lib/etc/roles/literal/documentRole.js","../node_modules/aria-query/lib/etc/roles/literal/emphasisRole.js","../node_modules/aria-query/lib/etc/roles/literal/feedRole.js","../node_modules/aria-query/lib/etc/roles/literal/figureRole.js","../node_modules/aria-query/lib/etc/roles/literal/formRole.js","../node_modules/aria-query/lib/etc/roles/literal/genericRole.js","../node_modules/aria-query/lib/etc/roles/literal/gridRole.js","../node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js","../node_modules/aria-query/lib/etc/roles/literal/groupRole.js","../node_modules/aria-query/lib/etc/roles/literal/headingRole.js","../node_modules/aria-query/lib/etc/roles/literal/imgRole.js","../node_modules/aria-query/lib/etc/roles/literal/insertionRole.js","../node_modules/aria-query/lib/etc/roles/literal/linkRole.js","../node_modules/aria-query/lib/etc/roles/literal/listRole.js","../node_modules/aria-query/lib/etc/roles/literal/listboxRole.js","../node_modules/aria-query/lib/etc/roles/literal/listitemRole.js","../node_modules/aria-query/lib/etc/roles/literal/logRole.js","../node_modules/aria-query/lib/etc/roles/literal/mainRole.js","../node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js","../node_modules/aria-query/lib/etc/roles/literal/mathRole.js","../node_modules/aria-query/lib/etc/roles/literal/menuRole.js","../node_modules/aria-query/lib/etc/roles/literal/menubarRole.js","../node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js","../node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js","../node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js","../node_modules/aria-query/lib/etc/roles/literal/meterRole.js","../node_modules/aria-query/lib/etc/roles/literal/navigationRole.js","../node_modules/aria-query/lib/etc/roles/literal/noneRole.js","../node_modules/aria-query/lib/etc/roles/literal/noteRole.js","../node_modules/aria-query/lib/etc/roles/literal/optionRole.js","../node_modules/aria-query/lib/etc/roles/literal/paragraphRole.js","../node_modules/aria-query/lib/etc/roles/literal/presentationRole.js","../node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js","../node_modules/aria-query/lib/etc/roles/literal/radioRole.js","../node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js","../node_modules/aria-query/lib/etc/roles/literal/regionRole.js","../node_modules/aria-query/lib/etc/roles/literal/rowRole.js","../node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js","../node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js","../node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js","../node_modules/aria-query/lib/etc/roles/literal/searchRole.js","../node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js","../node_modules/aria-query/lib/etc/roles/literal/separatorRole.js","../node_modules/aria-query/lib/etc/roles/literal/sliderRole.js","../node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js","../node_modules/aria-query/lib/etc/roles/literal/statusRole.js","../node_modules/aria-query/lib/etc/roles/literal/strongRole.js","../node_modules/aria-query/lib/etc/roles/literal/subscriptRole.js","../node_modules/aria-query/lib/etc/roles/literal/superscriptRole.js","../node_modules/aria-query/lib/etc/roles/literal/switchRole.js","../node_modules/aria-query/lib/etc/roles/literal/tabRole.js","../node_modules/aria-query/lib/etc/roles/literal/tableRole.js","../node_modules/aria-query/lib/etc/roles/literal/tablistRole.js","../node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js","../node_modules/aria-query/lib/etc/roles/literal/termRole.js","../node_modules/aria-query/lib/etc/roles/literal/textboxRole.js","../node_modules/aria-query/lib/etc/roles/literal/timeRole.js","../node_modules/aria-query/lib/etc/roles/literal/timerRole.js","../node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js","../node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js","../node_modules/aria-query/lib/etc/roles/literal/treeRole.js","../node_modules/aria-query/lib/etc/roles/literal/treegridRole.js","../node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js","../node_modules/aria-query/lib/index.js","../node_modules/aria-query/lib/roleElementMap.js","../node_modules/aria-query/lib/rolesMap.js","../node_modules/aria-query/lib/util/iterationDecorator.js","../node_modules/aria-query/lib/util/iteratorProxy.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/chalk/source/index.js","../node_modules/chalk/source/templates.js","../node_modules/chalk/source/util.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/index.js","../node_modules/color-convert/route.js","../node_modules/color-name/index.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/css.escape/css.escape.js","../node_modules/deep-equal/index.js","../node_modules/define-properties/index.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/functions-have-names/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-bigints/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/has/src/index.js","../node_modules/indent-string/index.js","../node_modules/internal-slot/index.js","../node_modules/is-arguments/index.js","../node_modules/is-array-buffer/index.js","../node_modules/is-bigint/index.js","../node_modules/is-boolean-object/index.js","../node_modules/is-callable/index.js","../node_modules/is-date-object/index.js","../node_modules/is-map/index.js","../node_modules/is-number-object/index.js","../node_modules/is-regex/index.js","../node_modules/is-set/index.js","../node_modules/is-shared-array-buffer/index.js","../node_modules/is-string/index.js","../node_modules/is-symbol/index.js","../node_modules/is-typed-array/index.js","../node_modules/is-weakmap/index.js","../node_modules/is-weakset/index.js","../node_modules/isarray/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isEqualWith.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/noop.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/uniq.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/min-indent/index.js","../node_modules/object-inspect/index.js","../node_modules/object-is/implementation.js","../node_modules/object-is/index.js","../node_modules/object-is/polyfill.js","../node_modules/object-is/shim.js","../node_modules/object-keys/implementation.js","../node_modules/object-keys/index.js","../node_modules/object-keys/isArguments.js","../node_modules/object.assign/implementation.js","../node_modules/object.assign/index.js","../node_modules/object.assign/polyfill.js","../node_modules/object.assign/shim.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-animated-cursor/dist/index.umd.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/react-query/es/core/focusManager.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react-query/es/core/queryObserver.js","../node_modules/react-query/es/react/QueryErrorResetBoundary.js","../node_modules/react-query/es/react/useQuery.js","../node_modules/react-query/es/react/useBaseQuery.js","../node_modules/react-query/es/react/utils.js","../node_modules/react-router-dom/index.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redent/index.js","../node_modules/regexp.prototype.flags/implementation.js","../node_modules/regexp.prototype.flags/index.js","../node_modules/regexp.prototype.flags/polyfill.js","../node_modules/regexp.prototype.flags/shim.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/side-channel/index.js","../node_modules/stop-iteration-iterator/index.js","../node_modules/strip-indent/index.js","../node_modules/supports-color/browser.js","../node_modules/void-elements/index.js","../node_modules/which-boxed-primitive/index.js","../node_modules/which-typed-array/index.js","webpack://goldpesa-v1/./src/App.scss?b241","assets/styles/main.scss","assets/styles/partials/_fonts.scss","webpack://goldpesa-v1/./src/assets/styles/partials/_global.scss?49af","webpack://goldpesa-v1/./src/assets/styles/partials/_mixins.scss?b63b","webpack://goldpesa-v1/./src/assets/styles/partials/_reset.scss?744a","webpack://goldpesa-v1/./src/assets/styles/partials/_scrollbars.scss?663e","assets/styles/partials/_theme.scss","webpack://goldpesa-v1/./src/assets/styles/partials/default-theme/root-colors.scss?cb1b","webpack://goldpesa-v1/./src/assets/styles/partials/default-theme/theme.scss?383e","webpack://goldpesa-v1/./src/components/Accordion/index.module.scss?c271","webpack://goldpesa-v1/./src/components/Button/index.module.scss?7cda","webpack://goldpesa-v1/./src/components/Cards/Style1/index.module.scss?95ad","webpack://goldpesa-v1/./src/components/Footer/index.module.scss?17c9","webpack://goldpesa-v1/./src/components/Header/index.module.scss?3aec","webpack://goldpesa-v1/./src/components/InfiniteLoopBrandSlider/index.module.scss?3244","webpack://goldpesa-v1/./src/components/Loader/index.module.scss?7feb","webpack://goldpesa-v1/./src/components/MediaCardsSlider/index.module.scss?8224","webpack://goldpesa-v1/./src/components/ScrollToTopButton/index.module.scss?1e9c","webpack://goldpesa-v1/./src/components/TeamCard/index.module.scss?ce92","webpack://goldpesa-v1/./src/layouts/Layout.module.scss?3e11","webpack://goldpesa-v1/./src/pages/AboutUs/index.module.scss?10fe","webpack://goldpesa-v1/./src/pages/Academy/index.module.scss?9935","webpack://goldpesa-v1/./src/pages/FAQ/index.module.scss?f73f","webpack://goldpesa-v1/./src/pages/GoldMines/index.module.scss?d119","webpack://goldpesa-v1/./src/pages/Home/index.module.scss?3b9e","webpack://goldpesa-v1/./src/pages/MediaAndPress/index.module.scss?530d","webpack://goldpesa-v1/./src/pages/Roadmap/index.module.scss?cc4f","webpack://goldpesa-v1/./src/pages/Stake2Win/index.module.scss?384e","webpack://goldpesa-v1/./src/pages/Team/index.module.scss?aa22","webpack://goldpesa-v1/./src/pages/Xenii2/index.module.scss?098a","assets/images/brands|lazy|/^/.//.*/.png$/|groupOptions: {}|namespace object","assets/images/media-logo|sync|/^/.//logo/-.*/.png$","assets/images/media-thumbnail|sync|/^/.//thumbnail/-.*/.png$","assets/images/social-icons|sync|/^/.//.*/.svg$","../src|sync|/^/.//.*$","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/available-typed-arrays/index.js","../node_modules/dom-accessibility-api/sources/index.ts","../node_modules/es-get-iterator/index.js","../node_modules/which-collection/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/dom-accessibility-api/sources/accessible-description.ts","../node_modules/dom-accessibility-api/sources/polyfills/array.from.ts","../node_modules/dom-accessibility-api/sources/polyfills/SetLike.ts","../node_modules/dom-accessibility-api/sources/accessible-name-and-description.ts","../node_modules/dom-accessibility-api/sources/accessible-name.ts","../node_modules/dom-accessibility-api/sources/getRole.ts","../node_modules/dom-accessibility-api/sources/is-inaccessible.ts","../node_modules/dom-accessibility-api/sources/util.ts","../node_modules/i18next/dist/esm/i18next.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/I18nextProvider.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/swiper/components-shared/utils.js","../node_modules/swiper/components-shared/params-list.js","../node_modules/swiper/shared/calc-looped-slides.js","../node_modules/swiper/react/get-children.js","../node_modules/swiper/components-shared/update-swiper.js","../node_modules/swiper/react/use-isomorphic-layout-effect.js","../node_modules/swiper/react/context.js","../node_modules/swiper/react/swiper.js","../node_modules/swiper/components-shared/get-params.js","../node_modules/swiper/components-shared/mount-swiper.js","../node_modules/swiper/components-shared/get-changed-params.js","../node_modules/swiper/components-shared/update-on-virtual-data.js","../node_modules/swiper/react/virtual.js","../node_modules/swiper/react/loop.js","../node_modules/swiper/react/swiper-slide.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/shared/dom.js","../node_modules/swiper/shared/get-support.js","../node_modules/swiper/shared/get-device.js","../node_modules/swiper/shared/get-browser.js","../node_modules/swiper/shared/utils.js","../node_modules/swiper/core/events-emitter.js","../node_modules/swiper/core/update/index.js","../node_modules/swiper/core/update/updateSize.js","../node_modules/swiper/core/update/updateSlides.js","../node_modules/swiper/core/update/updateAutoHeight.js","../node_modules/swiper/core/update/updateSlidesOffset.js","../node_modules/swiper/core/update/updateSlidesProgress.js","../node_modules/swiper/core/update/updateProgress.js","../node_modules/swiper/core/update/updateSlidesClasses.js","../node_modules/swiper/core/update/updateActiveIndex.js","../node_modules/swiper/core/update/updateClickedSlide.js","../node_modules/swiper/core/translate/index.js","../node_modules/swiper/core/translate/getTranslate.js","../node_modules/swiper/core/translate/setTranslate.js","../node_modules/swiper/core/translate/minTranslate.js","../node_modules/swiper/core/translate/maxTranslate.js","../node_modules/swiper/core/translate/translateTo.js","../node_modules/swiper/core/transition/transitionEmit.js","../node_modules/swiper/core/transition/index.js","../node_modules/swiper/core/transition/setTransition.js","../node_modules/swiper/core/transition/transitionStart.js","../node_modules/swiper/core/transition/transitionEnd.js","../node_modules/swiper/core/slide/index.js","../node_modules/swiper/core/slide/slideTo.js","../node_modules/swiper/core/slide/slideToLoop.js","../node_modules/swiper/core/slide/slideNext.js","../node_modules/swiper/core/slide/slidePrev.js","../node_modules/swiper/core/slide/slideReset.js","../node_modules/swiper/core/slide/slideToClosest.js","../node_modules/swiper/core/slide/slideToClickedSlide.js","../node_modules/swiper/core/loop/index.js","../node_modules/swiper/core/loop/loopCreate.js","../node_modules/swiper/core/loop/loopFix.js","../node_modules/swiper/core/loop/loopDestroy.js","../node_modules/swiper/core/events/onTouchStart.js","../node_modules/swiper/core/events/onTouchMove.js","../node_modules/swiper/core/events/onTouchEnd.js","../node_modules/swiper/core/events/onResize.js","../node_modules/swiper/core/events/onClick.js","../node_modules/swiper/core/events/onScroll.js","../node_modules/swiper/core/events/index.js","../node_modules/swiper/core/breakpoints/setBreakpoint.js","../node_modules/swiper/core/breakpoints/index.js","../node_modules/swiper/core/breakpoints/getBreakpoint.js","../node_modules/swiper/core/classes/index.js","../node_modules/swiper/core/classes/addClasses.js","../node_modules/swiper/core/classes/removeClasses.js","../node_modules/swiper/core/check-overflow/index.js","../node_modules/swiper/core/defaults.js","../node_modules/swiper/core/moduleExtendParams.js","../node_modules/swiper/core/core.js","../node_modules/swiper/core/grab-cursor/index.js","../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/core/images/index.js","../node_modules/swiper/core/images/loadImage.js","../node_modules/swiper/core/images/preloadImages.js","../node_modules/swiper/core/modules/resize/resize.js","../node_modules/swiper/core/modules/observer/observer.js","../node_modules/swiper/modules/autoplay/autoplay.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/startup"],"sourcesContent":["var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgExternalLink(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6L13 1M9.66667 1H13V4.33333M13 8.33333V11.6667C13 12.0203 12.8595 12.3594 12.6095 12.6095C12.3594 12.8595 12.0203 13 11.6667 13H2.33333C1.97971 13 1.64057 12.8595 1.39052 12.6095C1.14048 12.3594 1 12.0203 1 11.6667V2.33333C1 1.97971 1.14048 1.64057 1.39052 1.39052C1.64057 1.14048 1.97971 1 2.33333 1H5.66667\",\n stroke: \"#F0CE0E\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgExternalLink);\nexport default __webpack_public_path__ + \"static/media/external-link.5e8604b05554aadc62aa0df3ef366f86.svg\";\nexport { ForwardRef as ReactComponent };","/******************************************************************************\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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 () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","const genericMessage = \"Invariant Violation\";\nconst {\n setPrototypeOf = function (obj: any, proto: any) {\n obj.__proto__ = proto;\n return obj;\n },\n} = Object as any;\n\nexport class InvariantError extends Error {\n framesToPop = 1;\n name = genericMessage;\n constructor(message: string | number = genericMessage) {\n super(\n typeof message === \"number\"\n ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n : message\n );\n setPrototypeOf(this, InvariantError.prototype);\n }\n}\n\nexport function invariant(\n condition: any,\n message?: string | number,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nconst verbosityLevels = [\"debug\", \"log\", \"warn\", \"error\", \"silent\"] as const;\nexport type VerbosityLevel = (typeof verbosityLevels)[number];\nexport type ConsoleMethodName = Exclude<VerbosityLevel, \"silent\">;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod<M extends ConsoleMethodName>(name: M) {\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 const method = console[name] || console.log;\n return method.apply(console, arguments as any);\n }\n } as (typeof console)[M];\n}\n\nexport namespace invariant {\n export const debug = wrapConsoleMethod(\"debug\");\n export const log = wrapConsoleMethod(\"log\");\n export const warn = wrapConsoleMethod(\"warn\");\n export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n const old = verbosityLevels[verbosityLevel];\n verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n return old;\n}\n\nexport default invariant;\n","export function maybe<T>(thunk: () => T): T | undefined {\n try { return thunk() } catch {}\n}\n","import { maybe } from \"./maybe\";\n\ndeclare global {\n // Despite our attempts to reuse the React Native __DEV__ constant instead of\n // inventing something new and Apollo-specific, declaring a useful type for\n // __DEV__ unfortunately conflicts (TS2451) with the global declaration in\n // @types/react-native/index.d.ts.\n //\n // To hide that harmless conflict, we @ts-ignore this line, which should\n // continue to provide a type for __DEV__ elsewhere in the Apollo Client\n // codebase, even when @types/react-native is not in use.\n //\n // However, because TypeScript drops @ts-ignore comments when generating .d.ts\n // files (https://github.com/microsoft/TypeScript/issues/38628), we also\n // sanitize the dist/utilities/globals/global.d.ts file to avoid declaring\n // __DEV__ globally altogether when @apollo/client is installed in the\n // node_modules directory of an application.\n //\n // @ts-ignore\n const __DEV__: boolean | undefined;\n}\n\nexport default (\n maybe(() => globalThis) ||\n maybe(() => window) ||\n maybe(() => self) ||\n maybe(() => 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.\n maybe(function() { return maybe.constructor(\"return this\")() })\n) as typeof globalThis & {\n __DEV__: typeof __DEV__;\n};\n","import global from \"./global\";\nimport { maybe } from \"./maybe\";\n\n// To keep string-based find/replace minifiers from messing with __DEV__ inside\n// string literals or properties like global.__DEV__, we construct the \"__DEV__\"\n// string in a roundabout way that won't be altered by find/replace strategies.\nconst __ = \"__\";\nconst GLOBAL_KEY = [__, __].join(\"DEV\");\n\nfunction getDEV() {\n try {\n return Boolean(__DEV__);\n } catch {\n Object.defineProperty(global, GLOBAL_KEY, {\n // In a buildless browser environment, maybe(() => process.env.NODE_ENV)\n // evaluates as undefined, so __DEV__ becomes true by default, but can be\n // initialized to false instead by a script/module that runs earlier.\n value: maybe(() => process.env.NODE_ENV) !== \"production\",\n enumerable: false,\n configurable: true,\n writable: true,\n });\n // Using computed property access rather than global.__DEV__ here prevents\n // string-based find/replace strategies from munging this to global.false:\n return (global as any)[GLOBAL_KEY];\n }\n}\n\nexport default getDEV();\n","function maybe(thunk) {\n try { return thunk() } catch (_) {}\n}\n\nvar safeGlobal = (\n maybe(function() { return globalThis }) ||\n maybe(function() { return window }) ||\n maybe(function() { return self }) ||\n maybe(function() { 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.\n maybe(function() { return maybe.constructor(\"return this\")() })\n);\n\nvar needToRemove = false;\n\nexport function install() {\n if (safeGlobal &&\n !maybe(function() { return process.env.NODE_ENV }) &&\n !maybe(function() { return process })) {\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}\n\n// Call install() at least once, when this module is imported.\ninstall();\n\nexport function remove() {\n if (needToRemove) {\n delete safeGlobal.process;\n needToRemove = false;\n }\n}\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport 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 ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\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 const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let 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(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\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 */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// === Symbol Support ===\nvar hasSymbols = function () {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function (name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function (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 () {\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 () {\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 (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 (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 (e) {\n observer.error(e);\n },\n complete: function () {\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 (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 (e) {\n observer.error(e);\n },\n complete: function () {\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 (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 (e) {\n observer.error(e);\n },\n complete: function () {\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 (v) {\n observer.next(v);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\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 (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 (value) {\n observer.next(value);\n },\n error: function (e) {\n observer.error(e);\n },\n complete: function () {\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 (e) {\n observer.error(e);\n },\n complete: function () {\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 () {\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 };\n","// The ordering of these imports is important, because it ensures the temporary\n// process.env.NODE_ENV polyfill is defined globally (if necessary) before we\n// import { Source } from 'graphql'. The instanceOf function that we really care\n// about (the one that uses process.env.NODE_ENV) is not exported from the\n// top-level graphql package, but graphql/language/source uses instanceOf, and\n// has relatively few dependencies, so importing it here should not increase\n// bundle sizes as much as other options.\nimport { remove } from 'ts-invariant/process';\nimport { Source } from 'graphql';\n\nexport function removeTemporaryGlobals() {\n // Using Source here here just to make sure it won't be tree-shaken away.\n return typeof Source === \"function\" ? remove() : remove();\n}\n","import { invariant, InvariantError } from \"ts-invariant\";\n\n// Just in case the graphql package switches from process.env.NODE_ENV to\n// __DEV__, make sure __DEV__ is polyfilled before importing graphql.\nimport DEV from \"./DEV\";\nexport { DEV }\nexport function checkDEV() {\n invariant(\"boolean\" === typeof DEV, DEV);\n}\n\n// Import graphql/jsutils/instanceOf safely, working around its unchecked usage\n// of process.env.NODE_ENV and https://github.com/graphql/graphql-js/pull/2894.\nimport { removeTemporaryGlobals } from \"./fix-graphql\";\n\n// Synchronously undo the global process.env.NODE_ENV polyfill that we created\n// temporarily while importing the offending graphql/jsutils/instanceOf module.\nremoveTemporaryGlobals();\n\nexport { maybe } from \"./maybe\";\nexport { default as global } from \"./global\";\nexport { invariant, InvariantError }\n\n// Ensure __DEV__ was properly initialized, and prevent tree-shaking bundlers\n// from mistakenly pruning the ./DEV module (see issue #8674).\ncheckDEV();\n","export function isNonNullObject(obj: any): obj is Record<string | number, any> {\n return obj !== null && typeof obj === 'object';\n}\n","import { invariant, InvariantError } from '../globals';\n\nimport {\n DocumentNode,\n FragmentDefinitionNode,\n InlineFragmentNode,\n SelectionNode,\n} from 'graphql';\n\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype Kind = any;\ntype OperationTypeNode = any;\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string,\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array<FragmentDefinitionNode> = [];\n document.definitions.forEach(definition => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === 'OperationDefinition') {\n throw new InvariantError(\n `Found a ${definition.operation} operation${\n definition.name ? ` named '${definition.name.value}'` : ''\n }. ` +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.',\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === 'undefined') {\n invariant(\n fragments.length === 1,\n `Found ${\n fragments.length\n } fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: 'OperationDefinition' as Kind,\n // OperationTypeNode is an enum\n operation: 'query' as OperationTypeNode,\n selectionSet: {\n kind: 'SelectionSet' as Kind,\n selections: [\n {\n kind: 'FragmentSpread' as Kind,\n name: {\n kind: 'Name' as Kind,\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\nexport type FragmentMapFunction =\n (fragmentName: string) => FragmentDefinitionNode | null;\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\n\nexport function getFragmentFromSelection(\n selection: SelectionNode,\n fragmentMap?: FragmentMap | FragmentMapFunction,\n): InlineFragmentNode | FragmentDefinitionNode | null {\n switch (selection.kind) {\n case 'InlineFragment':\n return selection;\n case 'FragmentSpread': {\n const fragmentName = selection.name.value;\n if (typeof fragmentMap === \"function\") {\n return fragmentMap(fragmentName);\n }\n const fragment = fragmentMap && fragmentMap[fragmentName];\n invariant(fragment, `No fragment named ${fragmentName}`);\n return fragment || null;\n }\n default:\n return null;\n }\n}\n","import { InvariantError } from '../globals';\n\nimport {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n SelectionSetNode,\n DocumentNode,\n} from 'graphql';\n\nimport { isNonNullObject } from '../common/objects';\nimport { FragmentMap, getFragmentFromSelection } from './fragments';\n\nexport interface Reference {\n readonly __ref: string;\n}\n\nexport function makeReference(id: string): Reference {\n return { __ref: String(id) };\n}\n\nexport function isReference(obj: any): obj is Reference {\n return Boolean(obj && typeof obj === 'object' && typeof obj.__ref === 'string');\n}\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | Reference\n | Reference[]\n | null\n | undefined\n | void\n | Object;\n\nexport interface StoreObject {\n __typename?: string;\n [storeFieldName: string]: StoreValue;\n}\n\nexport function isDocumentNode(value: any): value is DocumentNode {\n return (\n isNonNullObject(value) &&\n (value as DocumentNode).kind === \"Document\" &&\n Array.isArray((value as DocumentNode).definitions)\n );\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\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 const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new InvariantError(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport const getStoreKeyName = Object.assign(function (\n fieldName: string,\n args?: Record<string, any> | null,\n directives?: Directives,\n): string {\n if (\n args &&\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = args[key];\n });\n\n return `${directives['connection']['key']}(${stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}, {\n setStringify(s: typeof stringify) {\n const previous = stringify;\n stringify = s;\n return previous;\n },\n});\n\n// Default stable JSON.stringify implementation. Can be updated/replaced with\n// something better by calling getStoreKeyName.setStringify.\nlet stringify = function defaultStringify(value: any): string {\n return JSON.stringify(value, stringifyReplacer);\n};\n\nfunction stringifyReplacer(_key: string, value: any): any {\n if (isNonNullObject(value) && !Array.isArray(value)) {\n value = Object.keys(value).sort().reduce((copy, key) => {\n copy[key] = value[key];\n return copy;\n }, {} as Record<string, any>);\n }\n return value;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables?: Record<string, any>,\n): Object | null {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function getTypenameFromResult(\n result: Record<string, any>,\n selectionSet: SelectionSetNode,\n fragmentMap?: FragmentMap,\n): string | undefined {\n if (typeof result.__typename === 'string') {\n return result.__typename;\n }\n\n for (const selection of selectionSet.selections) {\n if (isField(selection)) {\n if (selection.name.value === '__typename') {\n return result[resultKeyNameFromField(selection)];\n }\n } else {\n const typename = getTypenameFromResult(\n result,\n getFragmentFromSelection(selection, fragmentMap)!.selectionSet,\n fragmentMap,\n );\n if (typeof typename === 'string') {\n return typename;\n }\n }\n }\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n","import { invariant, InvariantError } from '../globals';\n\nimport {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\n\nimport { valueToObjectRepresentation } from './storeUtils';\n\ntype OperationDefinitionWithName = OperationDefinitionNode & {\n name: NonNullable<OperationDefinitionNode['name']>;\n};\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new InvariantError(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n (definition): definition is OperationDefinitionNode =>\n definition.kind === 'OperationDefinition',\n )[0];\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n (definition): definition is OperationDefinitionWithName =>\n definition.kind === 'OperationDefinition' && !!definition.name,\n )\n .map((x) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n (definition): definition is FragmentDefinitionNode =>\n definition.kind === 'FragmentDefinition',\n );\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc)!;\n\n invariant(\n queryDef && queryDef.operation === 'query',\n 'Must contain a query definition.',\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n invariant(\n doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n invariant(\n doc.definitions.length <= 1,\n 'Fragment must have exactly one definition.',\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === 'FragmentDefinition',\n 'Must be a fragment definition.',\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new InvariantError(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): Record<string, any> {\n const defaultValues = Object.create(null);\n const defs = definition && definition.variableDefinitions;\n if (defs && defs.length) {\n defs.forEach(def => {\n if (def.defaultValue) {\n valueToObjectRepresentation(\n defaultValues,\n def.variable.name,\n def.defaultValue as ValueNode,\n );\n }\n });\n }\n return defaultValues;\n}\n","import { InvariantError, invariant } from '../../utilities/globals';\n\nimport { Observable, Observer } from '../../utilities';\nimport {\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n GraphQLRequest\n} from './types';\nimport {\n validateOperation,\n createOperation,\n transformOperation,\n} from '../utils';\n\nfunction passthrough(op: Operation, forward: NextLink) {\n return (forward ? forward(op) : Observable.of()) as Observable<FetchResult>;\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nfunction isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nclass LinkError extends Error {\n public link?: ApolloLink;\n constructor(message?: string, link?: ApolloLink) {\n super(message);\n this.link = link;\n }\n}\n\nexport class ApolloLink {\n public static empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n }\n\n public static from(links: (ApolloLink | RequestHandler)[]): ApolloLink {\n if (links.length === 0) return ApolloLink.empty();\n return links.map(toLink).reduce((x, y) => x.concat(y)) as ApolloLink;\n }\n\n public static split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n ): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(operation => {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink((operation, forward) => {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n }\n\n public static execute(\n link: ApolloLink,\n operation: GraphQLRequest,\n ): Observable<FetchResult> {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation)),\n ),\n ) || Observable.of()\n );\n }\n\n public static concat(\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler,\n ) {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n new LinkError(\n `You are calling concat on a terminating link, which will have no effect`,\n firstLink,\n ),\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(\n operation =>\n firstLink.request(\n operation,\n op => nextLink.request(op) || Observable.of(),\n ) || Observable.of(),\n );\n } else {\n return new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, op => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n }\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n ): ApolloLink {\n return this.concat(\n ApolloLink.split(test, left, right || new ApolloLink(passthrough))\n );\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return ApolloLink.concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink,\n ): Observable<FetchResult> | null {\n throw new InvariantError('request is not implemented');\n }\n\n protected onError(\n error: any,\n observer?: Observer<FetchResult>,\n ): false | void {\n if (observer && observer.error) {\n observer.error(error);\n // Returning false indicates that observer.error does not need to be\n // called again, since it was already called (on the previous line).\n // Calling observer.error again would not cause any real problems,\n // since only the first call matters, but custom onError functions\n // might have other reasons for wanting to prevent the default\n // behavior by returning false.\n return false;\n }\n // Throw errors will be passed to observer.error.\n throw error;\n }\n\n public setOnError(fn: ApolloLink[\"onError\"]): this {\n this.onError = fn;\n return this;\n }\n}\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 */\nexport class Location {\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 constructor(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 get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\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 * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\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 constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\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: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\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: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\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};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","import { GraphQLRequest, Operation } from '../core';\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest,\n): Operation {\n let context = { ...starting };\n const setContext = (next: any) => {\n if (typeof next === 'function') {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n\n return operation as Operation;\n}\n","import { GraphQLRequest, Operation } from '../core';\nimport { getOperationName } from '../../utilities';\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // Best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query) || undefined\n : '';\n }\n\n return transformedOperation as Operation;\n}\n","import { InvariantError } from '../../utilities/globals'\nimport { GraphQLRequest } from '../core';\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new InvariantError(`illegal argument: ${key}`);\n }\n }\n\n return operation;\n}\n","import { ApolloLink } from './ApolloLink';\n\nexport const execute = ApolloLink.execute;\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.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 const 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 * ```ts\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 *\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 three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\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 *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const 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 let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\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 if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : 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 if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\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 // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\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 const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\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(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\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 * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { invariant } from '../globals';\n\n// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n ASTNode,\n visit,\n BREAK,\n} from 'graphql';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function shouldInclude(\n { directives }: SelectionNode,\n variables?: Record<string, any>,\n): boolean {\n if (!directives || !directives.length) {\n return true;\n }\n return getInclusionDirectives(\n directives\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables && variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(root: ASTNode) {\n const names: string[] = [];\n\n visit(root, {\n Directive(node: DirectiveNode) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport const hasAnyDirectives = (\n names: string[],\n root: ASTNode,\n) => hasDirectives(names, root, false);\n\nexport const hasAllDirectives = (\n names: string[],\n root: ASTNode,\n) => hasDirectives(names, root, true);\n\nexport function hasDirectives(\n names: string[],\n root: ASTNode,\n all?: boolean,\n) {\n const nameSet = new Set(names);\n const uniqueCount = nameSet.size;\n\n visit(root, {\n Directive(node) {\n if (\n nameSet.delete(node.name.value) &&\n (!all || !nameSet.size)\n ) {\n return BREAK;\n }\n },\n });\n\n // If we found all the names, nameSet will be empty. If we only care about\n // finding some of them, the < condition is sufficient.\n return all ? !nameSet.size : nameSet.size < uniqueCount;\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return document && hasDirectives(['client', 'export'], document, true);\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray<DirectiveNode>,\n): InclusionDirectives {\n const result: InclusionDirectives = [];\n\n if (directives && directives.length) {\n directives.forEach(directive => {\n if (!isInclusionDirective(directive)) return;\n\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments![0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n result.push({ directive, ifArgument });\n });\n }\n\n return result;\n}\n\n","import { InvariantError } from '../../utilities/globals';\n\nexport type ClientParseError = InvariantError & {\n parseError: Error;\n};\n\nexport const serializeFetchParameter = (p: any, label: string) => {\n let serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n const parseError = new InvariantError(\n `Network request failed. ${label} is not serializable: ${e.message}`,\n ) as ClientParseError;\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n","import { maybe } from \"../globals\";\n\nexport const canUseWeakMap =\n typeof WeakMap === 'function' &&\n maybe(() => navigator.product) !== 'ReactNative';\n\nexport const canUseWeakSet = typeof WeakSet === 'function';\n\nexport const canUseSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.for === 'function';\n\nexport const canUseAsyncIteratorSymbol = canUseSymbol && Symbol.asyncIterator;\n\nexport const canUseDOM =\n typeof maybe(() => window.document.createElement) === \"function\";\n\nconst usingJSDOM: boolean =\n // Following advice found in this comment from @domenic (maintainer of jsdom):\n // https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\n //\n // Since we control the version of Jest and jsdom used when running Apollo\n // Client tests, and that version is recent enought to include \" jsdom/x.y.z\"\n // at the end of the user agent string, I believe this case is all we need to\n // check. Testing for \"Node.js\" was recommended for backwards compatibility\n // with older version of jsdom, but we don't have that problem.\n maybe(() => navigator.userAgent.indexOf(\"jsdom\") >= 0) || false;\n\n// Our tests should all continue to pass if we remove this !usingJSDOM\n// condition, thereby allowing useLayoutEffect when using jsdom. Unfortunately,\n// if we allow useLayoutEffect, then useSyncExternalStore generates many\n// warnings about useLayoutEffect doing nothing on the server. While these\n// warnings are harmless, this !usingJSDOM condition seems to be the best way to\n// prevent them (i.e. skipping useLayoutEffect when using jsdom).\nexport const canUseLayoutEffect = canUseDOM && !usingJSDOM;\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\n\nimport { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities\";\n\ninterface NodeStreamIterator<T> {\n next(): Promise<IteratorResult<T, boolean | undefined>>;\n [Symbol.asyncIterator]?(): AsyncIterator<T>;\n}\n\nexport default function nodeStreamIterator<T>(\n stream: NodeReadableStream\n): AsyncIterableIterator<T> {\n let cleanup: (() => void) | null = null;\n let error: Error | null = null;\n let done = false;\n const data: unknown[] = [];\n\n const waiting: [\n (\n value:\n | IteratorResult<T, boolean | undefined>\n | PromiseLike<IteratorResult<T, boolean | undefined>>\n ) => void,\n (reason?: any) => void\n ][] = [];\n\n function onData(chunk: any) {\n if (error) return;\n if (waiting.length) {\n const shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err: Error) {\n error = err;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n const all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n\n cleanup = function () {\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 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(): Promise<IteratorResult<T, boolean | undefined>> {\n return new Promise(function (resolve, reject) {\n if (error) return reject(error);\n if (data.length) return resolve({ value: data.shift() as T, done: false });\n if (done) return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n\n const iterator: NodeStreamIterator<T> = {\n next(): Promise<IteratorResult<T, boolean | undefined>> {\n return getNext();\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<T> {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator<T>;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\n\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities\";\n\ninterface ReaderIterator<T> {\n next(): Promise<ReadableStreamReadResult<T>>;\n [Symbol.asyncIterator]?(): AsyncIterator<T>;\n}\n\nexport default function readerIterator<T>(\n reader: ReadableStreamDefaultReader<T>\n): AsyncIterableIterator<T> {\n const iterator: ReaderIterator<T> = {\n next() {\n return reader.read();\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<T> {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator<T>;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\n\nimport { Response as NodeResponse } from \"node-fetch\";\nimport {\n isAsyncIterableIterator,\n isBlob,\n isNodeResponse,\n isNodeReadableStream,\n isReadableStream,\n isStreamableBlob,\n} from \"../../utilities/common/responseIterator\";\n\nimport asyncIterator from \"./iterators/async\";\nimport nodeStreamIterator from \"./iterators/nodeStream\";\nimport promiseIterator from \"./iterators/promise\";\nimport readerIterator from \"./iterators/reader\";\n\nexport function responseIterator<T>(\n response: Response | NodeResponse\n): AsyncIterableIterator<T> {\n let body: unknown = response;\n\n if (isNodeResponse(response)) body = response.body;\n\n if (isAsyncIterableIterator(body)) return asyncIterator<T>(body);\n\n if (isReadableStream(body)) return readerIterator<T>(body.getReader());\n\n // this errors without casting to ReadableStream<T>\n // because Blob.stream() returns a NodeJS ReadableStream\n if (isStreamableBlob(body)) {\n return readerIterator<T>(\n (body.stream() as unknown as ReadableStream<T>).getReader()\n );\n }\n\n if (isBlob(body)) return promiseIterator<T>(body.arrayBuffer());\n\n if (isNodeReadableStream(body)) return nodeStreamIterator<T>(body);\n\n throw new Error(\n \"Unknown body type for responseIterator. Please pass a streamable response.\"\n );\n}\n","import { Response as NodeResponse } from \"node-fetch\";\nimport { Readable as NodeReadableStream } from \"stream\";\nimport { canUseAsyncIteratorSymbol } from \"./canUse\";\n\nexport function isNodeResponse(value: any): value is NodeResponse {\n return !!(value as NodeResponse).body;\n}\n\nexport function isReadableStream(value: any): value is ReadableStream<any> {\n return !!(value as ReadableStream<any>).getReader;\n}\n\nexport function isAsyncIterableIterator(\n value: any\n): value is AsyncIterableIterator<any> {\n return !!(\n canUseAsyncIteratorSymbol &&\n (value as AsyncIterableIterator<any>)[Symbol.asyncIterator]\n );\n}\n\nexport function isStreamableBlob(value: any): value is Blob {\n return !!(value as Blob).stream;\n}\n\nexport function isBlob(value: any): value is Blob {\n return !!(value as Blob).arrayBuffer;\n}\n\nexport function isNodeReadableStream(value: any): value is NodeReadableStream {\n return !!(value as NodeReadableStream).pipe;\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\n\nexport default function asyncIterator<T>(\n source: AsyncIterableIterator<T>\n): AsyncIterableIterator<T> {\n const iterator = source[Symbol.asyncIterator]();\n return {\n next(): Promise<IteratorResult<T, boolean>> {\n return iterator.next();\n },\n [Symbol.asyncIterator](): AsyncIterableIterator<T> {\n return this;\n },\n };\n}\n","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\n\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities\";\n\ninterface PromiseIterator<T> {\n next(): Promise<IteratorResult<T, ArrayBuffer | undefined>>;\n [Symbol.asyncIterator]?(): AsyncIterator<T>;\n}\n\nexport default function promiseIterator<T = ArrayBuffer>(\n promise: Promise<ArrayBuffer>\n): AsyncIterableIterator<T> {\n let resolved = false;\n\n const iterator: PromiseIterator<T> = {\n next(): Promise<IteratorResult<T, ArrayBuffer | undefined>> {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value as unknown as T, done: false });\n })\n .catch(reject);\n });\n },\n };\n\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function (): AsyncIterator<T> {\n return this;\n };\n }\n\n return iterator as AsyncIterableIterator<T>;\n}\n","export type ServerError = Error & {\n response: Response;\n result: Record<string, any>;\n statusCode: number;\n};\n\nexport const throwServerError = (\n response: Response,\n result: any,\n message: string\n) => {\n const error = new Error(message) as ServerError;\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n","import { responseIterator } from \"./responseIterator\";\nimport { Operation } from \"../core\";\nimport { throwServerError } from \"../utils\";\nimport { Observer } from \"../../utilities\";\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport type ServerParseError = Error & {\n response: Response;\n statusCode: number;\n bodyText: string;\n};\n\nexport async function readMultipartBody<\n T extends object = Record<string, unknown>\n>(response: Response, observer: Observer<T>) {\n if (TextDecoder === undefined) {\n throw new Error(\n \"TextDecoder must be defined in the environment: please import a polyfill.\"\n );\n }\n const decoder = new TextDecoder(\"utf-8\");\n const contentType = response.headers?.get('content-type');\n const delimiter = \"boundary=\";\n\n // parse boundary value and ignore any subsequent name/value pairs after ;\n // https://www.rfc-editor.org/rfc/rfc9110.html#name-parameters\n // e.g. multipart/mixed;boundary=\"graphql\";deferSpec=20220824\n // if no boundary is specified, default to -\n const boundaryVal = contentType?.includes(delimiter)\n ? contentType\n ?.substring(contentType?.indexOf(delimiter) + delimiter.length)\n .replace(/['\"]/g, \"\")\n .replace(/\\;(.*)/gm, \"\")\n .trim()\n : \"-\";\n\n let boundary = `--${boundaryVal}`;\n let buffer = \"\";\n const iterator = responseIterator(response);\n let running = true;\n\n while (running) {\n const { value, done } = await iterator.next();\n const chunk = typeof value === \"string\" ? value : decoder.decode(value);\n running = !done;\n buffer += chunk;\n let bi = buffer.indexOf(boundary);\n\n while (bi > -1) {\n let message: string;\n [message, buffer] = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ];\n if (message.trim()) {\n const i = message.indexOf(\"\\r\\n\\r\\n\");\n const headers = parseHeaders(message.slice(0, i));\n const contentType = headers[\"content-type\"];\n if (\n contentType &&\n contentType.toLowerCase().indexOf(\"application/json\") === -1\n ) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n const body = message.slice(i);\n\n try {\n const result = parseJsonBody<T>(response, body.replace(\"\\r\\n\", \"\"));\n if (\n Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result\n ) {\n // for the last chunk with only `hasNext: false`,\n // we don't need to call observer.next as there is no data/errors\n observer.next?.(result);\n }\n } catch (err) {\n handleError(err, observer);\n }\n }\n bi = buffer.indexOf(boundary);\n }\n }\n observer.complete?.();\n}\n\nexport function parseHeaders(headerText: string): Record<string, string> {\n const headersInit: Record<string, string> = {};\n headerText.split(\"\\n\").forEach((line) => {\n const i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n const name = line.slice(0, i).trim().toLowerCase();\n const value = line.slice(i + 1).trim();\n headersInit[name] = value;\n }\n });\n return headersInit;\n}\n\nexport function parseJsonBody<T>(response: Response, bodyText: string): T {\n if (response.status >= 300) {\n // Network error\n const getResult = () => {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n return bodyText\n }\n }\n throwServerError(\n response,\n getResult(),\n `Response not successful: Received status code ${response.status}`,\n );\n }\n\n try {\n return JSON.parse(bodyText) as T;\n } catch (err) {\n const parseError = err as ServerParseError;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\n\nexport function handleError(err: any, observer: Observer<any>) {\n if (err.name === \"AbortError\") return;\n // if it is a network error, BUT there is graphql result info fire\n // the next observer before calling error this gives apollo-client\n // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n // pass to UI this should only happen if we *also* have data as\n // part of the response key per the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError\n // because AC didn't get any graphqlErrors this is graphql\n // execution result info (i.e errors and possibly data) this is\n // because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status\n // of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next?.(err.result);\n }\n\n observer.error?.(err);\n}\n\nexport function readJsonBody<T = Record<string, unknown>>(\n response: Response,\n operation: Operation,\n observer: Observer<T>\n) {\n parseAndCheckHttpResponse(operation)(response)\n .then((result) => {\n observer.next?.(result);\n observer.complete?.();\n })\n .catch((err) => handleError(err, observer));\n}\n\nexport function parseAndCheckHttpResponse(operations: Operation | Operation[]) {\n return (response: Response) =>\n response\n .text()\n .then((bodyText) => parseJsonBody(response, bodyText))\n .then((result: any) => {\n if (response.status >= 300) {\n // Network error\n throwServerError(\n response,\n result,\n `Response not successful: Received status code ${response.status}`\n );\n }\n if (\n !Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")\n ) {\n // Data error\n throwServerError(\n response,\n result,\n `Server response was missing for query '${\n Array.isArray(operations)\n ? operations.map((op) => op.operationName)\n : operations.operationName\n }'.`\n );\n }\n return result;\n });\n}\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.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, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let 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 },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\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\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\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\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\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 */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // <space>\n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\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, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","import { ASTNode, print } from 'graphql';\n\nimport { Operation } from '../core';\n\nexport interface Printer {\n (node: ASTNode, originalPrint: typeof print): string\n};\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record<string, any>;\n extensions?: Record<string, any>;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: WindowOrWorkerGlobalScope['fetch'];\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: Record<string, string>;\n\n /**\n * If set to true, header names won't be automatically normalized to\n * lowercase. This allows for non-http-spec-compliant servers that might\n * expect capitalized header names.\n */\n preserveHeaderCase?: boolean;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n\n /**\n * If set to true, the default behavior of stripping unused variables\n * from the request will be disabled.\n *\n * Unused variables are likely to trigger server-side validation errors,\n * per https://spec.graphql.org/draft/#sec-All-Variables-Used, but this\n * includeUnusedVariables option can be useful if your server deviates\n * from the GraphQL specification by not strictly enforcing that rule.\n */\n includeUnusedVariables?: boolean;\n /**\n * A function to substitute for the default query print function. Can be\n * used to apply changes to the results of the print function.\n */\n print?: Printer;\n}\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n preserveHeaderCase?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: Record<string, string>;\n credentials?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: '*/*',\n // The content-type header describes the type of the body of the request, and\n // so it typically only is sent with requests that actually have bodies. One\n // could imagine that Apollo Client would remove this header when constructing\n // a GET request (which has no body), but we historically have not done that.\n // This means that browsers will preflight all Apollo Client requests (even\n // GET requests). Apollo Server's CSRF prevention feature (introduced in\n // AS3.7) takes advantage of this fact and does not block requests with this\n // header. If you want to drop this header from GET requests, then you should\n // probably replace it with a `apollo-require-preflight` header, or servers\n // with CSRF prevention enabled might block your GET request. See\n // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n // for more details.\n 'content-type': 'application/json',\n};\n\nconst defaultOptions = {\n method: 'POST',\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const defaultPrinter: Printer = (ast, printer) => printer(ast);\n\nexport function selectHttpOptionsAndBody(\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array<HttpConfig>\n) {\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal(\n operation,\n defaultPrinter,\n ...configs,\n );\n}\n\nexport function selectHttpOptionsAndBodyInternal(\n operation: Operation,\n printer: Printer,\n ...configs: HttpConfig[]\n) {\n let options = {} as HttpConfig & Record<string, any>;\n let http = {} as HttpQueryOptions;\n\n configs.forEach(config => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n }\n };\n\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n if (options.headers) {\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n }\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = printer(query, print);\n\n return {\n options,\n body,\n };\n};\n\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(\n headers: Record<string, string>,\n preserveHeaderCase: boolean | undefined\n): typeof headers {\n\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n const normalizedHeaders = Object.create(null);\n Object.keys(Object(headers)).forEach(name => {\n normalizedHeaders[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders;\n }\n\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n const headerData = Object.create(null);\n Object.keys(Object(headers)).forEach(name => {\n headerData[name.toLowerCase()] = { originalName: name, value: headers[name] }\n });\n\n const normalizedHeaders = Object.create(null);\n Object.keys(headerData).forEach(name => {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n","import { Observable } from '../../utilities';\n\nexport function fromError<T>(errorValue: any): Observable<T> {\n return new Observable<T>(observer => {\n observer.error(errorValue);\n });\n}\n","import '../../utilities/globals';\n\nimport { visit, DefinitionNode, VariableDefinitionNode } from 'graphql';\n\nimport { ApolloLink } from '../core';\nimport { Observable, hasDirectives } from '../../utilities';\nimport { serializeFetchParameter } from './serializeFetchParameter';\nimport { selectURI } from './selectURI';\nimport {\n handleError,\n readMultipartBody,\n readJsonBody\n} from './parseAndCheckHttpResponse';\nimport { checkFetcher } from './checkFetcher';\nimport {\n selectHttpOptionsAndBodyInternal,\n defaultPrinter,\n fallbackHttpConfig,\n HttpOptions\n} from './selectHttpOptionsAndBody';\nimport { createSignalIfSupported } from './createSignalIfSupported';\nimport { rewriteURIForGET } from './rewriteURIForGET';\nimport { fromError } from '../utils';\nimport { maybe } from '../../utilities';\n\nconst backupFetch = maybe(() => fetch);\n\nexport const createHttpLink = (linkOptions: HttpOptions = {}) => {\n let {\n uri = '/graphql',\n // use default global fetch if nothing passed in\n fetch: preferredFetch,\n print = defaultPrinter,\n includeExtensions,\n preserveHeaderCase,\n useGETForQueries,\n includeUnusedVariables = false,\n ...requestOptions\n } = linkOptions;\n\n if (__DEV__) {\n // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n // defined, so requests won't fail at runtime.\n checkFetcher(preferredFetch || backupFetch);\n }\n\n const linkConfig = {\n http: { includeExtensions, preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink(operation => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders: {\n 'apollographql-client-name'?: string;\n 'apollographql-client-version'?: string;\n } = {};\n\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBodyInternal(\n operation,\n print,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n );\n\n if (body.variables && !includeUnusedVariables) {\n const unusedNames = new Set(Object.keys(body.variables));\n visit(operation.query, {\n Variable(node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (parent && (parent as VariableDefinitionNode).kind !== 'VariableDefinition') {\n unusedNames.delete(node.name.value);\n }\n },\n });\n if (unusedNames.size) {\n // Make a shallow copy of body.variables (with keys in the same\n // order) and then delete unused variables from the copy.\n body.variables = { ...body.variables };\n unusedNames.forEach(name => {\n delete body.variables![name];\n });\n }\n }\n\n let controller: any;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = 'GET';\n }\n\n // does not match custom directives beginning with @defer\n if (hasDirectives(['defer'], operation.query)) {\n options.headers = options.headers || {};\n options.headers.accept = \"multipart/mixed; deferSpec=20220824, application/json\";\n }\n\n if (options.method === 'GET') {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(observer => {\n // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n // fall back to the *current* global window.fetch function (see issue\n // #7832), or (if all else fails) the backupFetch function we saved when\n // this module was first evaluated. This last option protects against the\n // removal of window.fetch, which is unlikely but not impossible.\n const currentFetch = preferredFetch || maybe(() => fetch) || backupFetch;\n\n currentFetch!(chosenURI, options)\n .then(response => {\n operation.setContext({ response });\n const ctype = response.headers?.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 })\n .catch(err => handleError(err, observer));\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n","import { InvariantError } from '../../utilities/globals';\n\nexport const checkFetcher = (fetcher: WindowOrWorkerGlobalScope['fetch'] | undefined) => {\n if (!fetcher && typeof fetch === 'undefined') {\n throw new InvariantError(`\n\"fetch\" has not been found globally and no fetcher has been \\\nconfigured. To fix this, install a fetch package (like \\\nhttps://www.npmjs.com/package/cross-fetch), instantiate the \\\nfetcher, 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 `);\n }\n};\n","import { Operation } from '../core';\n\nexport const selectURI = (\n operation: Operation,\n fallbackURI?: string | ((operation: Operation) => string),\n) => {\n const context = operation.getContext();\n const 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 as string) || '/graphql';\n }\n};\n","export const createSignalIfSupported = () => {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n\n const controller = new AbortController();\n const signal = controller.signal;\n return { controller, signal };\n};\n","import { serializeFetchParameter } from './serializeFetchParameter';\nimport { Body } from './selectHttpOptionsAndBody';\n\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nexport function rewriteURIForGET(chosenURI: string, body: Body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams: string[] = [];\n const addQueryParam = (key: string, value: string) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query!);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = serializeFetchParameter(\n body.variables,\n 'Variables map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = serializeFetchParameter(\n body.extensions,\n 'Extensions map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = '',\n preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n const newURI =\n preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI };\n}\n","import { ApolloLink, RequestHandler } from '../core';\nimport { HttpOptions } from './selectHttpOptionsAndBody';\nimport { createHttpLink } from './createHttpLink';\n\nexport class HttpLink extends ApolloLink {\n public requester: RequestHandler;\n constructor(public options: HttpOptions = {}) {\n super(createHttpLink(options).request);\n }\n}\n","const { toString, hasOwnProperty } = Object.prototype;\nconst fnToStr = Function.prototype.toString;\nconst previousComparisons = new Map<object, Set<object>>();\n\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a: any, b: any): boolean {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\n// Allow default imports as well.\nexport default equal;\n\nfunction check(a: any, b: any): boolean {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n\n // 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 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 case '[object Object]': {\n if (previouslyCompared(a, b)) return true;\n\n const aKeys = definedKeys(a);\n const bKeys = definedKeys(b);\n\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\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 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 if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n\n while (true) {\n const info = aIterator.next();\n if (info.done) break;\n\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n\n // However, we care about deep equality of values only when dealing\n // with Map structures.\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 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 case '[object DataView]': {\n let len = a.byteLength;\n if (len === b.byteLength) {\n while (len-- && a[len] === b[len]) {\n // Keep looping as long as the bytes are equal.\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 const aCode = fnToStr.call(a);\n if (aCode !== fnToStr.call(b)) {\n return false;\n }\n\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 return !endsWith(aCode, nativeCodeSuffix);\n }\n }\n\n // Otherwise the values are not equal.\n return false;\n}\n\nfunction definedKeys<TObject extends object>(obj: TObject) {\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}\nfunction isDefinedKey<TObject extends object>(\n this: TObject,\n key: keyof TObject,\n) {\n return this[key] !== void 0;\n}\n\nconst nativeCodeSuffix = \"{ [native code] }\";\n\nfunction endsWith(full: string, suffix: string) {\n const fromIndex = full.length - suffix.length;\n return fromIndex >= 0 &&\n full.indexOf(suffix, fromIndex) === fromIndex;\n}\n\nfunction previouslyCompared(a: object, b: object): boolean {\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 let bSet = previousComparisons.get(a);\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 bSet.add(b);\n return false;\n}\n","// A version of Array.isArray that works better with readonly arrays.\nexport const isArray: (a: any) => a is any[] | readonly any[] = Array.isArray;\n\nexport function isNonEmptyArray<T>(value?: ArrayLike<T>): value is Array<T> {\n return Array.isArray(value) && value.length > 0;\n}\n","import { isNonNullObject } from \"./objects\";\n\nconst { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection<T extends any[]> =\n T extends [infer A] ? A :\n T extends [infer A, infer B] ? A & B :\n T extends [infer A, infer B, infer C] ? A & B & C :\n T extends [infer A, infer B, infer C, infer D] ? A & B & C & D :\n T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E :\n T extends (infer U)[] ? U : any;\n\nexport function mergeDeep<T extends any[]>(\n ...sources: T\n): TupleToIntersection<T> {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray<T>(sources: T[]): T {\n let target = sources[0] || ({} as T);\n const count = sources.length;\n if (count > 1) {\n const merger = new DeepMerger();\n for (let i = 1; i < count; ++i) {\n target = merger.merge(target, sources[i]);\n }\n }\n return target;\n}\n\nexport type ReconcilerFunction<TContextArgs extends any[]> = (\n this: DeepMerger<TContextArgs>,\n target: Record<string | number, any>,\n source: Record<string | number, any>,\n property: string | number,\n ...context: TContextArgs\n) => any;\n\nconst defaultReconciler: ReconcilerFunction<any[]> =\n function (target, source, property) {\n return this.merge(target[property], source[property]);\n };\n\nexport class DeepMerger<TContextArgs extends any[]> {\n constructor(\n private reconciler: ReconcilerFunction<TContextArgs> = defaultReconciler,\n ) {}\n\n public merge(target: any, source: any, ...context: TContextArgs): any {\n if (isNonNullObject(source) && isNonNullObject(target)) {\n Object.keys(source).forEach(sourceKey => {\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (source[sourceKey] !== targetValue) {\n const result = this.reconciler(target, source, sourceKey, ...context);\n // A well-implemented reconciler may return targetValue to indicate\n // the merge changed nothing about the structure of the target.\n if (result !== targetValue) {\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = result;\n }\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target = this.shallowCopyForMerge(target);\n target[sourceKey] = source[sourceKey];\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n }\n\n public isObject = isNonNullObject;\n\n private pastCopies = new Set<any>();\n\n public shallowCopyForMerge<T>(value: T): T {\n if (isNonNullObject(value)) {\n if (!this.pastCopies.has(value)) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n this.pastCopies.add(value);\n }\n }\n return value;\n }\n}\n","import {\n ExecutionPatchIncrementalResult,\n ExecutionPatchInitialResult,\n ExecutionPatchResult,\n FetchResult,\n} from \"../../link/core\";\nimport { isNonEmptyArray } from \"./arrays\";\nimport { DeepMerger } from \"./mergeDeep\";\n\nexport function isExecutionPatchIncrementalResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchIncrementalResult {\n return \"incremental\" in value;\n}\n\nexport function isExecutionPatchInitialResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchInitialResult<T> {\n return \"hasNext\" in value && \"data\" in value;\n}\n\nexport function isExecutionPatchResult<T>(\n value: FetchResult<T>\n): value is ExecutionPatchResult<T> {\n return (\n isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value)\n );\n}\n\nexport function mergeIncrementalData<TData extends object>(\n prevResult: TData,\n result: ExecutionPatchResult<TData>\n) {\n let mergedData = prevResult;\n const merger = new DeepMerger();\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach(({ data, path }) => {\n for (let i = path.length - 1; i >= 0; --i) {\n const key = path[i];\n const isNumericKey = !isNaN(+key);\n const parent: Record<string | number, any> = isNumericKey ? [] : {};\n parent[key] = data;\n data = parent as typeof data;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData as TData;\n}\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\n// If no makeData function is supplied, the looked-up data will be an empty,\n// null-prototype Object.\nconst defaultMakeData = () => Object.create(null);\n\n// Useful for processing arguments objects as well as arrays.\nconst { forEach, slice } = Array.prototype;\n\nexport class Trie<Data> {\n // Since a `WeakMap` cannot hold primitive values as keys, we need a\n // backup `Map` instance to hold primitive keys. Both `this._weakMap`\n // and `this._strongMap` are lazily initialized.\n private weak?: WeakMap<any, Trie<Data>>;\n private strong?: Map<any, Trie<Data>>;\n private data?: Data;\n\n constructor(\n private weakness = true,\n private makeData: (array: any[]) => Data = defaultMakeData,\n ) {}\n\n public lookup<T extends any[]>(...array: T): Data {\n return this.lookupArray(array);\n }\n\n public lookupArray<T extends IArguments | any[]>(array: T): Data {\n let node: Trie<Data> = this;\n forEach.call(array, key => node = node.getChildTrie(key));\n return node.data || (node.data = this.makeData(slice.call(array)));\n }\n\n private getChildTrie(key: any) {\n const map = this.weakness && isObjRef(key)\n ? this.weak || (this.weak = new WeakMap<any, Trie<Data>>())\n : this.strong || (this.strong = new Map<any, Trie<Data>>());\n let child = map.get(key);\n if (!child) map.set(key, child = new Trie<Data>(this.weakness, this.makeData));\n return child;\n }\n}\n\nfunction isObjRef(value: any) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n","import \"../../utilities/globals\";\n\nimport { Trie } from \"@wry/trie\";\nimport {\n canUseWeakMap,\n canUseWeakSet,\n isNonNullObject as isObjectOrArray,\n} from \"../../utilities\";\nimport { isArray } from \"./helpers\";\n\nfunction shallowCopy<T>(value: T): T {\n if (isObjectOrArray(value)) {\n return isArray(value)\n ? value.slice(0) as any as T\n : { __proto__: Object.getPrototypeOf(value), ...value };\n }\n return value;\n}\n\n// When programmers talk about the \"canonical form\" of an object, they\n// usually have the following meaning in mind, which I've copied from\n// https://en.wiktionary.org/wiki/canonical_form:\n//\n// 1. A standard or normal presentation of a mathematical entity [or\n// object]. A canonical form is an element of a set of representatives\n// of equivalence classes of forms such that there is a function or\n// procedure which projects every element of each equivalence class\n// onto that one element, the canonical form of that equivalence\n// class. The canonical form is expected to be simpler than the rest of\n// the forms in some way.\n//\n// That's a long-winded way of saying any two objects that have the same\n// canonical form may be considered equivalent, even if they are !==,\n// which usually means the objects are structurally equivalent (deeply\n// equal), but don't necessarily use the same memory.\n//\n// Like a literary or musical canon, this ObjectCanon class represents a\n// collection of unique canonical items (JavaScript objects), with the\n// important property that canon.admit(a) === canon.admit(b) if a and b\n// are deeply equal to each other. In terms of the definition above, the\n// canon.admit method is the \"function or procedure which projects every\"\n// object \"onto that one element, the canonical form.\"\n//\n// In the worst case, the canonicalization process may involve looking at\n// every property in the provided object tree, so it takes the same order\n// of time as deep equality checking. Fortunately, already-canonicalized\n// objects are returned immediately from canon.admit, so the presence of\n// canonical subtrees tends to speed up canonicalization.\n//\n// Since consumers of canonical objects can check for deep equality in\n// constant time, canonicalizing cache results can massively improve the\n// performance of application code that skips re-rendering unchanged\n// results, such as \"pure\" UI components in a framework like React.\n//\n// Of course, since canonical objects may be shared widely between\n// unrelated consumers, it's important to think of them as immutable, even\n// though they are not actually frozen with Object.freeze in production,\n// due to the extra performance overhead that comes with frozen objects.\n//\n// Custom scalar objects whose internal class name is neither Array nor\n// Object can be included safely in the admitted tree, but they will not\n// be replaced with a canonical version (to put it another way, they are\n// assumed to be canonical already).\n//\n// If we ignore custom objects, no detection of cycles or repeated object\n// references is currently required by the StoreReader class, since\n// GraphQL result objects are JSON-serializable trees (and thus contain\n// neither cycles nor repeated subtrees), so we can avoid the complexity\n// of keeping track of objects we've already seen during the recursion of\n// the admit method.\n//\n// In the future, we may consider adding additional cases to the switch\n// statement to handle other common object types, such as \"[object Date]\"\n// objects, as needed.\nexport class ObjectCanon {\n // Set of all canonical objects this ObjectCanon has admitted, allowing\n // canon.admit to return previously-canonicalized objects immediately.\n private known = new (canUseWeakSet ? WeakSet : Set)<object>();\n\n // Efficient storage/lookup structure for canonical objects.\n private pool = new Trie<{\n array?: any[];\n object?: Record<string, any>;\n keys?: SortedKeysInfo;\n }>(canUseWeakMap);\n\n public isKnown(value: any): boolean {\n return isObjectOrArray(value) && this.known.has(value);\n }\n\n // Make the ObjectCanon assume this value has already been\n // canonicalized.\n private passes = new WeakMap<object, object>();\n public pass<T>(value: T): T;\n public pass(value: any) {\n if (isObjectOrArray(value)) {\n const copy = shallowCopy(value);\n this.passes.set(copy, value);\n return copy;\n }\n return value;\n }\n\n // Returns the canonical version of value.\n public admit<T>(value: T): T;\n public admit(value: any) {\n if (isObjectOrArray(value)) {\n const original = this.passes.get(value);\n if (original) return original;\n\n const proto = Object.getPrototypeOf(value);\n switch (proto) {\n case Array.prototype: {\n if (this.known.has(value)) return value;\n const array: any[] = (value as any[]).map(this.admit, this);\n // Arrays are looked up in the Trie using their recursively\n // canonicalized elements, and the known version of the array is\n // preserved as node.array.\n const node = this.pool.lookupArray(array);\n if (!node.array) {\n this.known.add(node.array = array);\n // Since canonical arrays may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(array);\n }\n }\n return node.array;\n }\n\n case null:\n case Object.prototype: {\n if (this.known.has(value)) return value;\n const proto = Object.getPrototypeOf(value);\n const array = [proto];\n const keys = this.sortedKeys(value);\n array.push(keys.json);\n const firstValueIndex = array.length;\n keys.sorted.forEach(key => {\n array.push(this.admit((value as any)[key]));\n });\n // Objects are looked up in the Trie by their prototype (which\n // is *not* recursively canonicalized), followed by a JSON\n // representation of their (sorted) keys, followed by the\n // sequence of recursively canonicalized values corresponding to\n // those keys. To keep the final results unambiguous with other\n // sequences (such as arrays that just happen to contain [proto,\n // keys.json, value1, value2, ...]), the known version of the\n // object is stored as node.object.\n const node = this.pool.lookupArray(array);\n if (!node.object) {\n const obj = node.object = Object.create(proto);\n this.known.add(obj);\n keys.sorted.forEach((key, i) => {\n obj[key] = array[firstValueIndex + i];\n });\n // Since canonical objects may be shared widely between\n // unrelated consumers, it's important to regard them as\n // immutable, even if they are not frozen in production.\n if (__DEV__) {\n Object.freeze(obj);\n }\n }\n return node.object;\n }\n }\n }\n return value;\n }\n\n // It's worthwhile to cache the sorting of arrays of strings, since the\n // same initial unsorted arrays tend to be encountered many times.\n // Fortunately, we can reuse the Trie machinery to look up the sorted\n // arrays in linear time (which is faster than sorting large arrays).\n private sortedKeys(obj: object) {\n const keys = Object.keys(obj);\n const node = this.pool.lookupArray(keys);\n if (!node.keys) {\n keys.sort();\n const json = JSON.stringify(keys);\n if (!(node.keys = this.keysByJSON.get(json))) {\n this.keysByJSON.set(json, node.keys = { sorted: keys, json });\n }\n }\n return node.keys;\n }\n // Arrays that contain the same elements in a different order can share\n // the same SortedKeysInfo object, to save memory.\n private keysByJSON = new Map<string, SortedKeysInfo>();\n\n // This has to come last because it depends on keysByJSON.\n public readonly empty = this.admit({});\n}\n\ntype SortedKeysInfo = {\n sorted: string[];\n json: string;\n};\n\n// Since the keys of canonical objects are always created in lexicographically\n// sorted order, we can use the ObjectCanon to implement a fast and stable\n// version of JSON.stringify, which automatically sorts object keys.\nexport const canonicalStringify = Object.assign(function (value: any): string {\n if (isObjectOrArray(value)) {\n if (stringifyCanon === void 0) {\n resetCanonicalStringify();\n }\n const canonical = stringifyCanon.admit(value);\n let json = stringifyCache.get(canonical);\n if (json === void 0) {\n stringifyCache.set(\n canonical,\n json = JSON.stringify(canonical),\n );\n }\n return json;\n }\n return JSON.stringify(value);\n}, {\n reset: resetCanonicalStringify,\n});\n\n// Can be reset by calling canonicalStringify.reset().\nlet stringifyCanon: ObjectCanon;\nlet stringifyCache: WeakMap<object, string>;\n\nfunction resetCanonicalStringify() {\n stringifyCanon = new ObjectCanon;\n stringifyCache = new (canUseWeakMap ? WeakMap : Map)();\n}\n","import { Observable, Observer } from \"./Observable\";\n\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap<V, R>(\n observable: Observable<V>,\n mapFn: (value: V) => R | PromiseLike<R>,\n catchFn?: (error: any) => R | PromiseLike<R>,\n): Observable<R> {\n return new Observable<R>(observer => {\n const { next, error, complete } = observer;\n let activeCallbackCount = 0;\n let completed = false;\n let promiseQueue = {\n // Normally we would initialize promiseQueue to Promise.resolve(), but\n // in this case, for backwards compatibility, we need to be careful to\n // invoke the first callback synchronously.\n then(callback: () => any) {\n return new Promise(resolve => resolve(callback()));\n },\n } as Promise<void>;\n\n function makeCallback(\n examiner: typeof mapFn | typeof catchFn,\n delegate: typeof next | typeof error,\n ): (arg: any) => void {\n if (examiner) {\n return arg => {\n ++activeCallbackCount;\n const both = () => examiner(arg);\n promiseQueue = promiseQueue.then(both, both).then(\n result => {\n --activeCallbackCount;\n next && next.call(observer, result);\n if (completed) {\n handler.complete!();\n }\n },\n error => {\n --activeCallbackCount;\n throw error;\n },\n ).catch(caught => {\n error && error.call(observer, caught);\n });\n };\n } else {\n return arg => delegate && delegate.call(observer, arg);\n }\n }\n\n const handler: Observer<V> = {\n next: makeCallback(mapFn, next),\n error: makeCallback(catchFn, error),\n complete() {\n completed = true;\n if (!activeCallbackCount) {\n complete && complete.call(observer);\n }\n },\n };\n\n const sub = observable.subscribe(handler);\n return () => sub.unsubscribe();\n });\n}\n","import { FetchResult } from \"../../link/core\";\nimport { isNonEmptyArray } from \"../../utilities/common/arrays\";\nimport { isExecutionPatchIncrementalResult } from \"../../utilities/common/incrementalResult\";\n\nexport function graphQLResultHasError<T>(result: FetchResult<T>): boolean {\n const errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\n\nexport function getGraphQLErrorsFromResult<T>(result: FetchResult<T>) {\n const graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n\n if (\n isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)\n ) {\n result.incremental.forEach((incrementalResult) => {\n if (incrementalResult.errors) {\n graphQLErrors.push(...incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n","import { invariant } from '../globals';\n\nimport {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n visit,\n ASTNode,\n Kind,\n ASTVisitor,\n InlineFragmentNode,\n} from 'graphql';\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n getMainDefinition,\n} from './getFromAST';\nimport { isField } from './storeUtils';\nimport {\n createFragmentMap,\n FragmentMap,\n} from './fragments';\nimport { isArray } from '../common/arrays';\n\nexport type RemoveNodeConfig<N> = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig<N> = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig<DirectiveNode>;\nexport type GetDirectiveConfig = GetNodeConfig<DirectiveNode>;\nexport type RemoveArgumentsConfig = RemoveNodeConfig<ArgumentNode>;\nexport type GetFragmentSpreadConfig = GetNodeConfig<FragmentSpreadNode>;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig<FragmentSpreadNode>;\nexport type RemoveFragmentDefinitionConfig = RemoveNodeConfig<\n FragmentDefinitionNode\n>;\nexport type RemoveVariableDefinitionConfig = RemoveNodeConfig<\n VariableDefinitionNode\n>;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: Kind.FIELD,\n name: {\n kind: Kind.NAME,\n value: '__typename',\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragmentMap: FragmentMap,\n): boolean {\n return !op || op.selectionSet.selections.every(\n selection => selection.kind === Kind.FRAGMENT_SPREAD &&\n isEmpty(fragmentMap[selection.name.value], fragmentMap)\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc)),\n )\n ? null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n directives: (RemoveDirectiveConfig | GetDirectiveConfig)[],\n) {\n const nameSet = new Set<string>();\n const tests: Array<(directive: DirectiveNode) => boolean> = [];\n directives.forEach(directive => {\n if (directive.name) {\n nameSet.add(directive.name);\n } else if (directive.test) {\n tests.push(directive.test);\n }\n });\n\n return (directive: DirectiveNode) => (\n nameSet.has(directive.name.value) ||\n tests.some(test => test(directive))\n );\n}\n\n// Helper interface and function used by removeDirectivesFromDocument to keep\n// track of variable references and fragments spreads found within a given\n// operation or fragment definition.\ninterface InternalInUseInfo {\n variables: Set<string>;\n fragmentSpreads: Set<string>;\n // Set to true when we deliberately remove a fragment definition, so we can\n // make sure also to remove dangling ...spreads that refer to it.\n removed?: boolean;\n // Populated by the populateTransitiveVars helper function below.\n transitiveVars?: Set<string>;\n}\nfunction makeInUseGetterFunction<TKey>(defaultKey: TKey) {\n const map = new Map<TKey, InternalInUseInfo>();\n\n return function inUseGetterFunction(\n key: TKey = defaultKey\n ): InternalInUseInfo {\n let inUse = map.get(key);\n if (!inUse) {\n map.set(key, inUse = {\n // Variable and fragment spread names used directly within this\n // operation or fragment definition, as identified by key. These sets\n // will be populated during the first traversal of the document in\n // removeDirectivesFromDocument below.\n variables: new Set,\n fragmentSpreads: new Set,\n });\n }\n return inUse;\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n // Passing empty strings to makeInUseGetterFunction means we handle anonymous\n // operations as if their names were \"\". Anonymous fragment definitions are\n // not supposed to be possible, but the same default naming strategy seems\n // appropriate for that case as well.\n const getInUseByOperationName = makeInUseGetterFunction<string>(\"\");\n const getInUseByFragmentName = makeInUseGetterFunction<string>(\"\");\n const getInUse = (\n ancestors: readonly (ASTNode | readonly ASTNode[])[],\n ): InternalInUseInfo | null => {\n for (\n let p = 0, ancestor: ASTNode | readonly ASTNode[];\n p < ancestors.length && (ancestor = ancestors[p]);\n ++p\n ) {\n if (isArray(ancestor)) continue;\n if (ancestor.kind === Kind.OPERATION_DEFINITION) {\n // If an operation is anonymous, we use the empty string as its key.\n return getInUseByOperationName(ancestor.name && ancestor.name.value);\n }\n if (ancestor.kind === Kind.FRAGMENT_DEFINITION) {\n return getInUseByFragmentName(ancestor.name.value);\n }\n }\n invariant.error(`Could not find operation or fragment`);\n return null;\n };\n\n let operationCount = 0;\n for (let i = doc.definitions.length - 1; i >= 0; --i) {\n if (doc.definitions[i].kind === Kind.OPERATION_DEFINITION) {\n ++operationCount;\n }\n }\n\n const directiveMatcher = getDirectiveMatcher(directives);\n const hasRemoveDirective = directives.some(directive => directive.remove);\n const shouldRemoveField = (\n nodeDirectives: FieldNode[\"directives\"]\n ) => (\n hasRemoveDirective &&\n nodeDirectives &&\n nodeDirectives.some(directiveMatcher)\n );\n\n const originalFragmentDefsByPath = new Map<string, FragmentDefinitionNode>();\n\n // Any time the first traversal of the document below makes a change like\n // removing a fragment (by returning null), this variable should be set to\n // true. Once it becomes true, it should never be set to false again. If this\n // variable remains false throughout the traversal, then we can return the\n // original doc immediately without any modifications.\n let firstVisitMadeChanges = false;\n\n const fieldOrInlineFragmentVisitor: ASTVisitor = {\n enter(node: FieldNode | InlineFragmentNode) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n };\n\n const docWithoutDirectiveSubtrees = visit(doc, {\n // These two AST node types share the same implementation, defined above.\n Field: fieldOrInlineFragmentVisitor,\n InlineFragment: fieldOrInlineFragmentVisitor,\n\n VariableDefinition: {\n enter() {\n // VariableDefinition nodes do not count as variables in use, though\n // they do contain Variable nodes that might be visited below. To avoid\n // counting variable declarations as usages, we skip visiting the\n // contents of this VariableDefinition node by returning false.\n return false;\n },\n },\n\n Variable: {\n enter(node, _key, _parent, _path, ancestors) {\n const inUse = getInUse(ancestors);\n if (inUse) {\n inUse.variables.add(node.name.value);\n }\n },\n },\n\n FragmentSpread: {\n enter(node, _key, _parent, _path, ancestors) {\n if (shouldRemoveField(node.directives)) {\n firstVisitMadeChanges = true;\n return null;\n }\n const inUse = getInUse(ancestors);\n if (inUse) {\n inUse.fragmentSpreads.add(node.name.value);\n }\n // We might like to remove this FragmentSpread by returning null here if\n // the corresponding FragmentDefinition node is also going to be removed\n // by the logic below, but we can't control the relative order of those\n // events, so we have to postpone the removal of dangling FragmentSpread\n // nodes until after the current visit of the document has finished.\n },\n },\n\n FragmentDefinition: {\n enter(node, _key, _parent, path) {\n originalFragmentDefsByPath.set(JSON.stringify(path), node);\n },\n leave(node, _key, _parent, path) {\n const originalNode = originalFragmentDefsByPath.get(JSON.stringify(path));\n if (node === originalNode) {\n // If the FragmentNode received by this leave function is identical to\n // the one received by the corresponding enter function (above), then\n // the visitor must not have made any changes within this\n // FragmentDefinition node. This fragment definition may still be\n // removed if there are no ...spread references to it, but it won't be\n // removed just because it has only a __typename field.\n return node;\n }\n\n if (\n // This logic applies only if the document contains one or more\n // operations, since removing all fragments from a document containing\n // only fragments makes the document useless.\n operationCount > 0 &&\n node.selectionSet.selections.every(selection => (\n selection.kind === Kind.FIELD &&\n selection.name.value === '__typename'\n ))\n ) {\n // This is a somewhat opinionated choice: if a FragmentDefinition ends\n // up having no fields other than __typename, we remove the whole\n // fragment definition, and later prune ...spread references to it.\n getInUseByFragmentName(node.name.value).removed = true;\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n\n Directive: {\n leave(node) {\n // If a matching directive is found, remove the directive itself. Note\n // that this does not remove the target (field, argument, etc) of the\n // directive, but only the directive itself.\n if (directiveMatcher(node)) {\n firstVisitMadeChanges = true;\n return null;\n }\n },\n },\n });\n\n if (!firstVisitMadeChanges) {\n // If our first pass did not change anything about the document, then there\n // is no cleanup we need to do, and we can return the original doc.\n return doc;\n }\n\n // Utility for making sure inUse.transitiveVars is recursively populated.\n // Because this logic assumes inUse.fragmentSpreads has been completely\n // populated and inUse.removed has been set if appropriate,\n // populateTransitiveVars must be called after that information has been\n // collected by the first traversal of the document.\n const populateTransitiveVars = (\n inUse: InternalInUseInfo,\n ) => {\n if (!inUse.transitiveVars) {\n inUse.transitiveVars = new Set(inUse.variables);\n if (!inUse.removed) {\n inUse.fragmentSpreads.forEach(childFragmentName => {\n populateTransitiveVars(\n getInUseByFragmentName(childFragmentName)\n ).transitiveVars!.forEach(varName => {\n inUse.transitiveVars!.add(varName);\n });\n });\n }\n }\n return inUse;\n };\n\n // Since we've been keeping track of fragment spreads used by particular\n // operations and fragment definitions, we now need to compute the set of all\n // spreads used (transitively) by any operations in the document.\n const allFragmentNamesUsed = new Set<string>();\n docWithoutDirectiveSubtrees.definitions.forEach(def => {\n if (def.kind === Kind.OPERATION_DEFINITION) {\n populateTransitiveVars(\n getInUseByOperationName(def.name && def.name.value)\n ).fragmentSpreads.forEach(childFragmentName => {\n allFragmentNamesUsed.add(childFragmentName);\n });\n } else if (\n def.kind === Kind.FRAGMENT_DEFINITION &&\n // If there are no operations in the document, then all fragment\n // definitions count as usages of their own fragment names. This heuristic\n // prevents accidentally removing all fragment definitions from the\n // document just because it contains no operations that use the fragments.\n operationCount === 0 &&\n !getInUseByFragmentName(def.name.value).removed\n ) {\n allFragmentNamesUsed.add(def.name.value);\n }\n });\n // Now that we have added all fragment spreads used by operations to the\n // allFragmentNamesUsed set, we can complete the set by transitively adding\n // all fragment spreads used by those fragments, and so on.\n allFragmentNamesUsed.forEach(fragmentName => {\n // Once all the childFragmentName strings added here have been seen already,\n // the top-level allFragmentNamesUsed.forEach loop will terminate.\n populateTransitiveVars(\n getInUseByFragmentName(fragmentName)\n ).fragmentSpreads.forEach(childFragmentName => {\n allFragmentNamesUsed.add(childFragmentName);\n });\n });\n\n const fragmentWillBeRemoved = (\n fragmentName: string,\n ) => !!(\n // A fragment definition will be removed if there are no spreads that refer\n // to it, or the fragment was explicitly removed because it had no fields\n // other than __typename.\n !allFragmentNamesUsed.has(fragmentName) ||\n getInUseByFragmentName(fragmentName).removed\n );\n\n const enterVisitor: ASTVisitor = {\n enter(node: FragmentSpreadNode | FragmentDefinitionNode) {\n if (fragmentWillBeRemoved(node.name.value)) {\n return null;\n }\n },\n };\n\n return nullIfDocIsEmpty(visit(docWithoutDirectiveSubtrees, {\n // If the fragment is going to be removed, then leaving any dangling\n // FragmentSpread nodes with the same name would be a mistake.\n FragmentSpread: enterVisitor,\n\n // This is where the fragment definition is actually removed.\n FragmentDefinition: enterVisitor,\n\n OperationDefinition: {\n leave(node) {\n // Upon leaving each operation in the depth-first AST traversal, prune\n // any variables that are declared by the operation but unused within.\n if (node.variableDefinitions) {\n const usedVariableNames = populateTransitiveVars(\n // If an operation is anonymous, we use the empty string as its key.\n getInUseByOperationName(node.name && node.name.value)\n ).transitiveVars!;\n\n // According to the GraphQL spec, all variables declared by an\n // operation must either be used by that operation or used by some\n // fragment included transitively into that operation:\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n //\n // To stay on the right side of this validation rule, if/when we\n // remove the last $var references from an operation or its fragments,\n // we must also remove the corresponding $var declaration from the\n // enclosing operation. This pruning applies only to operations and\n // not fragment definitions, at the moment. Fragments may be able to\n // declare variables eventually, but today they can only consume them.\n if (usedVariableNames.size < node.variableDefinitions.length) {\n return {\n ...node,\n variableDefinitions: node.variableDefinitions.filter(\n varDef => usedVariableNames.has(varDef.variable.name.value),\n ),\n };\n }\n }\n },\n },\n }));\n}\n\nexport const addTypenameToDocument = Object.assign(function <\n TNode extends ASTNode\n>(\n doc: TNode\n): TNode {\n return visit(doc, {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind === Kind.OPERATION_DEFINITION\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some(selection => {\n return (\n isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some(d => d.name.value === 'export')\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n}, {\n added(field: FieldNode): boolean {\n return field === TYPENAME_FIELD;\n },\n});\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some(arg => arg.name.value === 'key')\n ) {\n invariant.warn(\n 'Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.',\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc),\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode | undefined,\n nestedCheck = true,\n): boolean {\n return (\n !!selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(selection =>\n hasDirectivesInSelection(directives, selection, nestedCheck),\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true,\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck,\n ))\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === Kind.VARIABLE &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument))),\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions: node.variableDefinitions ? node.variableDefinitions.filter(\n varDef =>\n !config.some(arg => arg.name === varDef.variable.name.value),\n ) : [],\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(argConfig => argConfig.remove);\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n if (node.arguments) {\n node.arguments.forEach(arg => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n }\n\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }),\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode,\n ): null | void {\n if (config.some(def => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n }),\n );\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode,\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (<OperationDefinitionNode>definition).operation;\n\n if (definitionOperation === 'query') {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: 'query',\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode,\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === 'client',\n remove: true,\n },\n ],\n document,\n );\n\n return modifiedDoc;\n}\n","const prefixCounts = new Map<string, number>();\n\n// These IDs won't be globally unique, but they will be unique within this\n// process, thanks to the counter, and unguessable thanks to the random suffix.\nexport function makeUniqueId(prefix: string) {\n const count = prefixCounts.get(prefix) || 1;\n prefixCounts.set(prefix, count + 1);\n return `${prefix}:${count}:${Math.random().toString(36).slice(2)}`;\n}\n","import { Observer } from \"./Observable\";\n\nexport function iterateObserversSafely<E, A>(\n observers: Set<Observer<E>>,\n method: keyof Observer<E>,\n argument?: A,\n) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n const observersWithMethod: Observer<E>[] = [];\n observers.forEach(obs => obs[method] && observersWithMethod.push(obs));\n observersWithMethod.forEach(obs => (obs as any)[method](argument));\n}\n","import { Observable } from \"./Observable\";\nimport { canUseSymbol } from \"../common/canUse\";\n\n// Generic implementations of Observable.prototype methods like map and\n// filter need to know how to create a new Observable from an Observable\n// subclass (like Concast or ObservableQuery). Those methods assume\n// (perhaps unwisely?) that they can call the subtype's constructor with a\n// Subscriber function, even though the subclass constructor might expect\n// different parameters. Defining this static Symbol.species property on\n// the subclass is a hint to generic Observable code to use the default\n// constructor instead of trying to do `new Subclass(observer => ...)`.\nexport function fixObservableSubclass<\n S extends new (...args: any[]) => Observable<any>,\n>(subclass: S): S {\n function set(key: symbol | string) {\n // Object.defineProperty is necessary because the Symbol.species\n // property is a getter by default in modern JS environments, so we\n // can't assign to it with a normal assignment expression.\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n // The \"@@species\" string is used as a fake Symbol.species value in some\n // polyfill systems (including the SymbolSpecies variable used by\n // zen-observable), so we should set it as well, to be safe.\n set(\"@@species\");\n return subclass;\n}\n","import { Observable, Observer, ObservableSubscription, Subscriber } from \"./Observable\";\nimport { iterateObserversSafely } from \"./iteration\";\nimport { fixObservableSubclass } from \"./subclassing\";\n\ntype MaybeAsync<T> = T | PromiseLike<T>;\n\nfunction isPromiseLike<T>(value: MaybeAsync<T>): value is PromiseLike<T> {\n return value && typeof (value as any).then === \"function\";\n}\n\n// Any individual Source<T> can be an Observable<T> or a promise for one.\ntype Source<T> = MaybeAsync<Observable<T>>;\n\nexport type ConcastSourcesIterable<T> = Iterable<Source<T>>;\nexport type ConcastSourcesArray<T> = Array<Source<T>>;\n\n// A Concast<T> observable concatenates the given sources into a single\n// non-overlapping sequence of Ts, automatically unwrapping any promises,\n// and broadcasts the T elements of that sequence to any number of\n// subscribers, all without creating a bunch of intermediary Observable\n// wrapper objects.\n//\n// Even though any number of observers can subscribe to the Concast, each\n// source observable is guaranteed to receive at most one subscribe call,\n// and the results are multicast to all observers.\n//\n// In addition to broadcasting every next/error message to this.observers,\n// the Concast stores the most recent message using this.latest, so any\n// new observers can immediately receive the latest message, even if it\n// was originally delivered in the past. This behavior means we can assume\n// every active observer in this.observers has received the same most\n// recent message.\n//\n// With the exception of this.latest replay, a Concast is a \"hot\"\n// observable in the sense that it does not replay past results from the\n// beginning of time for each new observer.\n//\n// Could we have used some existing RxJS class instead? Concast<T> is\n// similar to a BehaviorSubject<T>, because it is multicast and redelivers\n// the latest next/error message to new subscribers. Unlike Subject<T>,\n// Concast<T> does not expose an Observer<T> interface (this.handlers is\n// intentionally private), since Concast<T> gets its inputs from the\n// concatenated sources. If we ever switch to RxJS, there may be some\n// value in reusing their code, but for now we use zen-observable, which\n// does not contain any Subject implementations.\nexport class Concast<T> extends Observable<T> {\n // Active observers receiving broadcast messages. Thanks to this.latest,\n // we can assume all observers in this Set have received the same most\n // recent message, though possibly at different times in the past.\n private observers = new Set<Observer<T>>();\n\n // This property starts off undefined to indicate the initial\n // subscription has not yet begun, then points to each source\n // subscription in turn, and finally becomes null after the sources have\n // been exhausted. After that, it stays null.\n private sub?: ObservableSubscription | null;\n\n // Not only can the individual elements of the iterable be promises, but\n // also the iterable itself can be wrapped in a promise.\n constructor(sources: MaybeAsync<ConcastSourcesIterable<T>> | Subscriber<T>) {\n super(observer => {\n this.addObserver(observer);\n return () => this.removeObserver(observer);\n });\n\n // Suppress rejection warnings for this.promise, since it's perfectly\n // acceptable to pay no attention to this.promise if you're consuming\n // the results through the normal observable API.\n this.promise.catch(_ => {});\n\n // If someone accidentally tries to create a Concast using a subscriber\n // function, recover by creating an Observable from that subscriber and\n // using it as the source.\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n\n if (isPromiseLike(sources)) {\n sources.then(\n iterable => this.start(iterable),\n this.handlers.error,\n );\n } else {\n this.start(sources);\n }\n }\n\n // A consumable array of source observables, incrementally consumed each time\n // this.handlers.complete is called. This private field is not initialized\n // until the concast.start method is called, which can happen asynchronously\n // if a Promise is passed to the Concast constructor, so undefined is a\n // possible value for this.sources before concast.start is called.\n private sources: Source<T>[] | undefined;\n\n private start(sources: ConcastSourcesIterable<T>) {\n if (this.sub !== void 0) return;\n\n // In practice, sources is most often simply an Array of observables.\n // TODO Consider using sources[Symbol.iterator]() to take advantage\n // of the laziness of non-Array iterables.\n this.sources = Array.from(sources);\n\n // Calling this.handlers.complete() kicks off consumption of the first\n // source observable. It's tempting to do this step lazily in\n // addObserver, but this.promise can be accessed without calling\n // addObserver, so consumption needs to begin eagerly.\n this.handlers.complete();\n }\n\n private deliverLastMessage(observer: Observer<T>) {\n if (this.latest) {\n const nextOrError = this.latest[0];\n const method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n // If the subscription is already closed, and the last message was\n // a 'next' message, simulate delivery of the final 'complete'\n // message again.\n if (this.sub === null &&\n nextOrError === \"next\" &&\n observer.complete) {\n observer.complete();\n }\n }\n }\n\n public addObserver(observer: Observer<T>) {\n if (!this.observers.has(observer)) {\n // Immediately deliver the most recent message, so we can always\n // be sure all observers have the latest information.\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n }\n\n public removeObserver(observer: Observer<T>) {\n if (\n this.observers.delete(observer) &&\n this.observers.size < 1\n ) {\n // In case there are still any listeners in this.nextResultListeners, and\n // no error or completion has been broadcast yet, make sure those\n // observers have a chance to run and then remove themselves from\n // this.observers.\n this.handlers.complete();\n }\n }\n\n // Any Concast object can be trivially converted to a Promise, without\n // having to create a new wrapper Observable. This promise provides an\n // easy way to observe the final state of the Concast.\n private resolve: (result?: T | PromiseLike<T>) => void;\n private reject: (reason: any) => void;\n public readonly promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n\n // Name and argument of the most recently invoked observer method, used\n // to deliver latest results immediately to new observers.\n private latest?: [\"next\", T] | [\"error\", any];\n\n // Bound handler functions that can be reused for every internal\n // subscription.\n private handlers = {\n next: (result: T) => {\n if (this.sub !== null) {\n this.latest = [\"next\", result];\n this.notify(\"next\", result);\n iterateObserversSafely(this.observers, \"next\", result);\n }\n },\n\n error: (error: any) => {\n const { sub } = this;\n if (sub !== null) {\n // Delay unsubscribing from the underlying subscription slightly,\n // so that immediately subscribing another observer can keep the\n // subscription active.\n if (sub) setTimeout(() => sub.unsubscribe());\n this.sub = null;\n this.latest = [\"error\", error];\n this.reject(error);\n this.notify(\"error\", error);\n iterateObserversSafely(this.observers, \"error\", error);\n }\n },\n\n complete: () => {\n const { sub, sources = [] } = this;\n if (sub !== null) {\n // If complete is called before concast.start, this.sources may be\n // undefined, so we use a default value of [] for sources. That works\n // here because it falls into the if (!value) {...} block, which\n // appropriately terminates the Concast, even if this.sources might\n // eventually have been initialized to a non-empty array.\n const value = sources.shift();\n if (!value) {\n if (sub) setTimeout(() => sub.unsubscribe());\n this.sub = null;\n if (this.latest &&\n this.latest[0] === \"next\") {\n this.resolve(this.latest[1]);\n } else {\n this.resolve();\n }\n this.notify(\"complete\");\n // We do not store this.latest = [\"complete\"], because doing so\n // discards useful information about the previous next (or\n // error) message. Instead, if new observers subscribe after\n // this Concast has completed, they will receive the final\n // 'next' message (unless there was an error) immediately\n // followed by a 'complete' message (see addObserver).\n iterateObserversSafely(this.observers, \"complete\");\n } else if (isPromiseLike(value)) {\n value.then(obs => this.sub = obs.subscribe(this.handlers));\n } else {\n this.sub = value.subscribe(this.handlers);\n }\n }\n },\n };\n\n private nextResultListeners = new Set<NextResultListener>();\n\n private notify(\n method: Parameters<NextResultListener>[0],\n arg?: Parameters<NextResultListener>[1],\n ) {\n const { nextResultListeners } = this;\n if (nextResultListeners.size) {\n // Replacing this.nextResultListeners first ensures it does not grow while\n // we are iterating over it, potentially leading to infinite loops.\n this.nextResultListeners = new Set;\n nextResultListeners.forEach(listener => listener(method, arg));\n }\n }\n\n // We need a way to run callbacks just *before* the next result (or error or\n // completion) is delivered by this Concast, so we can be sure any code that\n // runs as a result of delivering that result/error observes the effects of\n // running the callback(s). It was tempting to reuse the Observer type instead\n // of introducing NextResultListener, but that messes with the sizing and\n // maintenance of this.observers, and ends up being more code overall.\n beforeNext(callback: NextResultListener) {\n let called = false;\n this.nextResultListeners.add((method, arg) => {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n }\n\n // A public way to abort observation and broadcast.\n public cancel = (reason: any) => {\n this.reject(reason);\n this.sources = [];\n this.handlers.complete();\n }\n}\n\ntype NextResultListener = (\n method: \"next\" | \"error\" | \"complete\",\n arg?: any,\n) => any;\n\n// Necessary because the Concast constructor has a different signature\n// than the Observable constructor.\nfixObservableSubclass(Concast);\n","import '../utilities/globals';\n\nimport { GraphQLError } from 'graphql';\n\nimport { isNonEmptyArray } from '../utilities';\nimport { ServerParseError } from '../link/http';\nimport { ServerError } from '../link/utils';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors) || isNonEmptyArray(err.clientErrors)) {\n const errors = ((err.graphQLErrors || []) as readonly Error[])\n .concat(err.clientErrors || []);\n errors.forEach((error: Error) => {\n const errorMessage = error\n ? error.message\n : 'Error message not found.';\n message += `${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += `${err.networkError.message}\\n`;\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport type GraphQLErrors = ReadonlyArray<GraphQLError>;\n\nexport type NetworkError = Error | ServerParseError | ServerError | null;\n\nexport class ApolloError extends Error {\n public name: string;\n public message: string;\n public graphQLErrors: GraphQLErrors;\n public clientErrors: ReadonlyArray<Error>;\n public networkError: Error | ServerParseError | ServerError | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n clientErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray<GraphQLError>;\n clientErrors?: ReadonlyArray<Error>;\n networkError?: Error | ServerParseError | ServerError | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.name = 'ApolloError';\n this.graphQLErrors = graphQLErrors || [];\n this.clientErrors = clientErrors || [];\n this.networkError = networkError || null;\n this.message = errorMessage || generateErrorMessage(this);\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n","/**\n * The current status of a query’s execution in our system.\n */\nexport enum NetworkStatus {\n /**\n * The query has never been run before and the query is now currently running. A query will still\n * have this network status even if a partial data result was returned from the cache, but a\n * query was dispatched anyway.\n */\n loading = 1,\n\n /**\n * If `setVariables` was called and a query was fired because of that then the network status\n * will be `setVariables` until the result of that query comes back.\n */\n setVariables = 2,\n\n /**\n * Indicates that `fetchMore` was called on this query and that the query created is currently in\n * flight.\n */\n fetchMore = 3,\n\n /**\n * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n * and the refetch request is currently in flight.\n */\n refetch = 4,\n\n /**\n * Indicates that a polling query is currently in flight. So for example if you are polling a\n * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n * a poll request has been sent but not resolved.\n */\n poll = 6,\n\n /**\n * No request is in flight for this query, and no errors happened. Everything is OK.\n */\n ready = 7,\n\n /**\n * No request is in flight for this query, but one or more errors were detected.\n */\n error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n networkStatus?: NetworkStatus,\n): boolean {\n return networkStatus ? networkStatus < 7 : false;\n}\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep<T>(value: T): T {\n return cloneDeepHelper(value);\n}\n\nfunction cloneDeepHelper<T>(val: T, seen?: Map<any, any>): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n seen = seen || new Map;\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n seen = seen || new Map;\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val as T & Record<string, any>).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","import { TupleToIntersection } from './mergeDeep';\n\n/**\n * Merges the provided objects shallowly and removes\n * all properties with an `undefined` value\n */\nexport function compact<TArgs extends any[]>(\n ...objects: TArgs\n): TupleToIntersection<TArgs> {\n const result = Object.create(null);\n\n objects.forEach(obj => {\n if (!obj) return;\n Object.keys(obj).forEach(key => {\n const value = (obj as any)[key];\n if (value !== void 0) {\n result[key] = value;\n }\n });\n });\n\n return result;\n}\n","import { invariant } from '../utilities/globals';\nimport { DocumentNode } from 'graphql';\nimport { equal } from '@wry/equality';\n\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n Concast,\n cloneDeep,\n compact,\n getOperationDefinition,\n Observable,\n Observer,\n ObservableSubscription,\n iterateObserversSafely,\n isNonEmptyArray,\n fixObservableSubclass,\n getQueryDefinition,\n} from '../utilities';\nimport { ApolloError } from '../errors';\nimport { QueryManager } from './QueryManager';\nimport {\n ApolloQueryResult,\n OperationVariables,\n TypedDocumentNode,\n} from './types';\nimport {\n WatchQueryOptions,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n NextFetchPolicyContext,\n} from './watchQueryOptions';\nimport { QueryInfo } from './QueryInfo';\nimport { MissingFieldError } from '../cache';\nimport { MissingTree } from '../cache/core/types/common';\n\nconst {\n assign,\n hasOwnProperty,\n} = Object;\n\nexport interface FetchMoreOptions<\n TData = any,\n TVariables = OperationVariables\n> {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult?: TData;\n variables?: TVariables;\n },\n ) => TData;\n}\n\nexport interface UpdateQueryOptions<TVariables> {\n variables?: TVariables;\n}\n\ninterface Last<TData, TVariables> {\n result: ApolloQueryResult<TData>;\n variables?: TVariables;\n error?: ApolloError;\n}\n\nexport class ObservableQuery<\n TData = any,\n TVariables extends OperationVariables = OperationVariables\n> extends Observable<ApolloQueryResult<TData>> {\n public readonly options: WatchQueryOptions<TVariables, TData>;\n public readonly queryId: string;\n public readonly queryName?: string;\n\n public get query(): TypedDocumentNode<TData, TVariables> {\n // This transform is heavily cached, so it should not be expensive to\n // transform the same this.options.query document repeatedly.\n return this.queryManager.transform(this.options.query).document;\n }\n\n // Computed shorthand for this.options.variables, preserved for\n // backwards compatibility.\n public get variables(): TVariables | undefined {\n return this.options.variables;\n }\n\n private isTornDown: boolean;\n private queryManager: QueryManager<any>;\n private observers = new Set<Observer<ApolloQueryResult<TData>>>();\n private subscriptions = new Set<ObservableSubscription>();\n\n private last?: Last<TData, TVariables>;\n\n private queryInfo: QueryInfo;\n\n // When this.concast is defined, this.observer is the Observer currently\n // subscribed to that Concast.\n private concast?: Concast<ApolloQueryResult<TData>>;\n private observer?: Observer<ApolloQueryResult<TData>>;\n\n private pollingInfo?: {\n interval: number;\n timeout: ReturnType<typeof setTimeout>;\n };\n\n constructor({\n queryManager,\n queryInfo,\n options,\n }: {\n queryManager: QueryManager<any>;\n queryInfo: QueryInfo;\n options: WatchQueryOptions<TVariables, TData>;\n }) {\n super((observer: Observer<ApolloQueryResult<TData>>) => {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = (observer as any)._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch {}\n\n const first = !this.observers.size;\n this.observers.add(observer);\n\n // Deliver most recent error or result.\n const last = this.last;\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 // Initiate observation of this query if it hasn't been reported to\n // the QueryManager yet.\n if (first) {\n // Blindly catching here prevents unhandled promise rejections,\n // and is safe because the ObservableQuery handles this error with\n // this.observer.error, so we're not just swallowing the error by\n // ignoring it here.\n this.reobserve().catch(() => {});\n }\n\n return () => {\n if (this.observers.delete(observer) && !this.observers.size) {\n this.tearDownQuery();\n }\n };\n });\n\n // related classes\n this.queryInfo = queryInfo;\n this.queryManager = queryManager;\n\n // active state\n this.isTornDown = false;\n\n const {\n watchQuery: {\n fetchPolicy: defaultFetchPolicy = \"cache-first\",\n } = {},\n } = queryManager.defaultOptions;\n\n const {\n fetchPolicy = defaultFetchPolicy,\n initialFetchPolicy = (\n // Make sure we don't store \"standby\" as the initialFetchPolicy.\n fetchPolicy === \"standby\" ? defaultFetchPolicy : fetchPolicy\n ),\n } = options;\n\n this.options = {\n ...options,\n\n // Remember the initial options.fetchPolicy so we can revert back to this\n // policy when variables change. This information can also be specified\n // (or overridden) by providing options.initialFetchPolicy explicitly.\n initialFetchPolicy,\n\n // This ensures this.options.fetchPolicy always has a string value, in\n // case options.fetchPolicy was not provided.\n fetchPolicy,\n };\n\n this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n\n const opDef = getOperationDefinition(this.query);\n this.queryName = opDef && opDef.name && opDef.name.value;\n }\n\n public result(): Promise<ApolloQueryResult<TData>> {\n return new Promise((resolve, reject) => {\n // TODO: this code doesn’t actually make sense insofar as the observer\n // will never exist in this.observers due how zen-observable wraps observables.\n // https://github.com/zenparsing/zen-observable/blob/master/src/Observable.js#L169\n const observer: Observer<ApolloQueryResult<TData>> = {\n next: (result: ApolloQueryResult<TData>) => {\n resolve(result);\n\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n this.observers.delete(observer);\n if (!this.observers.size) {\n this.queryManager.removeQuery(this.queryId);\n }\n\n setTimeout(() => {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n const subscription = this.subscribe(observer);\n });\n }\n\n public getCurrentResult(saveAsLastResult = true): ApolloQueryResult<TData> {\n // Use the last result as long as the variables match this.variables.\n const lastResult = this.getLastResult(true);\n\n const networkStatus =\n this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n\n const result = {\n ...lastResult,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n } as ApolloQueryResult<TData>;\n\n const { fetchPolicy = \"cache-first\" } = this.options;\n if (\n // These fetch policies should never deliver data from the cache, unless\n // redelivering a previously delivered result.\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache' ||\n fetchPolicy === 'standby' ||\n // If this.options.query has @client(always: true) fields, we cannot\n // trust diff.result, since it was read from the cache without running\n // local resolvers (and it's too late to run resolvers now, since we must\n // return a result synchronously).\n this.queryManager.transform(this.options.query).hasForcedResolvers\n ) {\n // Fall through.\n } else {\n const 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 as any;\n }\n\n if (diff.complete) {\n // Similar to setting result.partial to false, but taking advantage of the\n // falsiness of missing fields.\n delete result.partial;\n\n // If the diff is complete, and we're using a FetchPolicy that\n // terminates after a complete cache read, we can assume the next result\n // we receive will have NetworkStatus.ready and !loading.\n if (\n diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === 'cache-first' ||\n fetchPolicy === 'cache-only')\n ) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n } else {\n result.partial = true;\n }\n\n if (\n __DEV__ &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error\n ) {\n logMissingFieldErrors(diff.missing);\n }\n }\n\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n\n return result;\n }\n\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n public isDifferentFromLastResult(\n newResult: ApolloQueryResult<TData>,\n variables?: TVariables\n ) {\n return (\n !this.last ||\n !equal(this.last.result, newResult) ||\n (variables && !equal(this.last.variables, variables))\n );\n }\n\n private getLast<K extends keyof Last<TData, TVariables>>(\n key: K,\n variablesMustMatch?: boolean,\n ) {\n const last = this.last;\n if (\n last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))\n ) {\n return last[key];\n }\n }\n\n public getLastResult(variablesMustMatch?: boolean): ApolloQueryResult<TData> | undefined {\n return this.getLast(\"result\", variablesMustMatch);\n }\n\n public getLastError(variablesMustMatch?: boolean): ApolloError | undefined {\n return this.getLast(\"error\", variablesMustMatch);\n }\n\n public resetLastResults(): void {\n delete this.last;\n this.isTornDown = false;\n }\n\n public resetQueryStoreErrors() {\n this.queryManager.resetErrors(this.queryId);\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public refetch(variables?: Partial<TVariables>): Promise<ApolloQueryResult<TData>> {\n const reobserveOptions: Partial<WatchQueryOptions<TVariables, TData>> = {\n // Always disable polling for refetches.\n pollInterval: 0,\n };\n\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n const { fetchPolicy } = this.options;\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 const queryDef = getQueryDefinition(this.query);\n const vars = queryDef.variableDefinitions;\n if (!vars || !vars.some(v => v.variable.name.value === \"variables\")) {\n invariant.warn(`Called refetch(${\n JSON.stringify(variables)\n }) for query ${\n queryDef.name?.value || JSON.stringify(queryDef)\n }, 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 // Update the existing options with new variables\n reobserveOptions.variables = this.options.variables = {\n ...this.options.variables,\n ...variables,\n } as TVariables;\n }\n\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n }\n\n public fetchMore<\n TFetchData = TData,\n TFetchVars extends OperationVariables = TVariables,\n >(fetchMoreOptions: FetchMoreQueryOptions<TFetchVars, TFetchData> & {\n updateQuery?: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult: TFetchData;\n variables: TFetchVars;\n },\n ) => TData;\n }): Promise<ApolloQueryResult<TFetchData>> {\n const combinedOptions = {\n ...(fetchMoreOptions.query ? fetchMoreOptions : {\n ...this.options,\n query: this.query,\n ...fetchMoreOptions,\n variables: {\n ...this.options.variables,\n ...fetchMoreOptions.variables,\n },\n }),\n // The fetchMore request goes immediately to the network and does\n // not automatically write its result to the cache (hence no-cache\n // instead of network-only), because we allow the caller of\n // fetchMore to provide an updateQuery callback that determines how\n // the data gets written to the cache.\n fetchPolicy: \"no-cache\",\n } as WatchQueryOptions<TFetchVars, TFetchData>;\n\n const qid = this.queryManager.generateQueryId();\n\n // Simulate a loading result for the original query with\n // result.networkStatus === NetworkStatus.fetchMore.\n const { queryInfo } = this;\n const originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n\n const updatedQuerySet = new Set<DocumentNode>();\n\n return this.queryManager.fetchQuery(\n qid,\n combinedOptions,\n NetworkStatus.fetchMore,\n ).then(fetchMoreResult => {\n this.queryManager.removeQuery(qid);\n\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n\n // Performing this cache update inside a cache.batch transaction ensures\n // any affected cache.watch watchers are notified at most once about any\n // updates. Most watchers will be using the QueryInfo class, which\n // responds to notifications by calling reobserveCacheFirst to deliver\n // fetchMore cache results back to this ObservableQuery.\n this.queryManager.cache.batch({\n update: cache => {\n const { updateQuery } = fetchMoreOptions;\n if (updateQuery) {\n cache.updateQuery({\n query: this.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n }, previous => updateQuery(previous!, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables as TFetchVars,\n }));\n\n } else {\n // If we're using a field policy instead of updateQuery, the only\n // thing we need to do is write the new data to the cache using\n // combinedOptions.variables (instead of this.variables, which is\n // what this.updateQuery uses, because it works by abusing the\n // original field value, keyed by the original variables).\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data,\n });\n }\n },\n\n onWatchUpdated: watch => {\n // Record the DocumentNode associated with any watched query whose\n // data were updated by the cache writes above.\n updatedQuerySet.add(watch.query);\n },\n });\n\n return fetchMoreResult;\n\n }).finally(() => {\n // In case the cache writes above did not generate a broadcast\n // notification (which would have been intercepted by onWatchUpdated),\n // likely because the written data were the same as what was already in\n // the cache, we still want fetchMore to deliver its final loading:false\n // result with the unchanged data.\n if (!updatedQuerySet.has(this.query)) {\n reobserveCacheFirst(this);\n }\n });\n }\n\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n public subscribeToMore<\n TSubscriptionData = TData,\n TSubscriptionVariables extends OperationVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >,\n ) {\n const subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: (subscriptionData: { data: TSubscriptionData }) => {\n const { updateQuery } = options;\n if (updateQuery) {\n this.updateQuery<TSubscriptionVariables>(\n (previous, { variables }) =>\n updateQuery(previous, {\n subscriptionData,\n variables,\n }),\n );\n }\n },\n error: (err: any) => {\n if (options.onError) {\n options.onError(err);\n return;\n }\n invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n\n this.subscriptions.add(subscription);\n\n return () => {\n if (this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n }\n\n public setOptions(\n newOptions: Partial<WatchQueryOptions<TVariables, TData>>,\n ): Promise<ApolloQueryResult<TData>> {\n return this.reobserve(newOptions);\n }\n\n /**\n * This is for *internal* use only. Most users should instead use `refetch`\n * in order to be properly notified of results even when they come from cache.\n *\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. If you want to force new results, use `refetch`.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @private\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public setVariables(\n variables: TVariables,\n ): Promise<ApolloQueryResult<TData> | void> {\n if (equal(this.variables, variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size\n ? this.result()\n : Promise.resolve();\n }\n\n this.options.variables = variables;\n\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n return this.reobserve({\n // Reset options.fetchPolicy to its original value.\n fetchPolicy: this.options.initialFetchPolicy,\n variables,\n }, NetworkStatus.setVariables);\n }\n\n public updateQuery<TVars extends OperationVariables = TVariables>(\n mapFn: (\n previousQueryResult: TData,\n options: Pick<WatchQueryOptions<TVars, TData>, \"variables\">,\n ) => TData,\n ): void {\n const { queryManager } = this;\n const { result } = queryManager.cache.diff<TData>({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n const newResult = mapFn(result!, {\n variables: (this as any).variables,\n });\n\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n\n queryManager.broadcastQueries();\n }\n }\n\n public startPolling(pollInterval: number) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n }\n\n public stopPolling() {\n this.options.pollInterval = 0;\n this.updatePolling();\n }\n\n // Update options.fetchPolicy according to options.nextFetchPolicy.\n private applyNextFetchPolicy(\n reason: NextFetchPolicyContext<TData, TVariables>[\"reason\"],\n // It's possible to use this method to apply options.nextFetchPolicy to\n // options.fetchPolicy even if options !== this.options, though that happens\n // most often when the options are temporary, used for only one request and\n // then thrown away, so nextFetchPolicy may not end up mattering.\n options: WatchQueryOptions<TVariables, TData>,\n ) {\n if (options.nextFetchPolicy) {\n const {\n fetchPolicy = \"cache-first\",\n initialFetchPolicy = fetchPolicy,\n } = options;\n\n if (fetchPolicy === \"standby\") {\n // Do nothing, leaving options.fetchPolicy unchanged.\n } else if (typeof options.nextFetchPolicy === \"function\") {\n // When someone chooses \"cache-and-network\" or \"network-only\" as their\n // initial FetchPolicy, they often do not want future cache updates to\n // trigger unconditional network requests, which is what repeatedly\n // applying the \"cache-and-network\" or \"network-only\" policies would\n // seem to imply. Instead, when the cache reports an update after the\n // initial network request, it may be desirable for subsequent network\n // requests to be triggered only if the cache result is incomplete. To\n // that end, the options.nextFetchPolicy option provides an easy way to\n // update options.fetchPolicy after the initial network request, without\n // having to call observableQuery.setOptions.\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason,\n options,\n observable: this,\n 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 private fetch(\n options: WatchQueryOptions<TVariables, TData>,\n newNetworkStatus?: NetworkStatus,\n ): Concast<ApolloQueryResult<TData>> {\n // TODO Make sure we update the networkStatus (and infer fetchVariables)\n // before actually committing to the fetch.\n this.queryManager.setObservableQuery(this);\n return this.queryManager.fetchQueryObservable(\n this.queryId,\n options,\n newNetworkStatus,\n );\n }\n\n // Turns polling on or off based on this.options.pollInterval.\n private updatePolling() {\n // Avoid polling in SSR mode\n if (this.queryManager.ssrMode) {\n return;\n }\n\n const {\n pollingInfo,\n options: {\n pollInterval,\n },\n } = this;\n\n if (!pollInterval) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n\n if (pollingInfo &&\n pollingInfo.interval === pollInterval) {\n return;\n }\n\n invariant(\n pollInterval,\n 'Attempted to start a polling query without a polling interval.',\n );\n\n const info = pollingInfo || (this.pollingInfo = {} as any);\n info.interval = pollInterval;\n\n const maybeFetch = () => {\n if (this.pollingInfo) {\n if (!isNetworkRequestInFlight(this.queryInfo.networkStatus)) {\n this.reobserve({\n // Most fetchPolicy options don't make sense to use in a polling context, as\n // users wouldn't want to be polling the cache directly. However, network-only and\n // no-cache are both useful for when the user wants to control whether or not the\n // polled results are written to the cache.\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 const poll = () => {\n const info = this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n poll();\n }\n\n private updateLastResult(\n newResult: ApolloQueryResult<TData>,\n variables = this.variables,\n ) {\n this.last = {\n ...this.last,\n result: this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult),\n variables,\n };\n if (!isNonEmptyArray(newResult.errors)) {\n delete this.last.error;\n }\n return this.last;\n }\n\n public reobserve(\n newOptions?: Partial<WatchQueryOptions<TVariables, TData>>,\n newNetworkStatus?: NetworkStatus,\n ): Promise<ApolloQueryResult<TData>> {\n this.isTornDown = false;\n\n const useDisposableConcast =\n // Refetching uses a disposable Concast to allow refetches using different\n // options/variables, without permanently altering the options of the\n // original ObservableQuery.\n newNetworkStatus === NetworkStatus.refetch ||\n // The fetchMore method does not actually call the reobserve method, but,\n // if it did, it would definitely use a disposable Concast.\n newNetworkStatus === NetworkStatus.fetchMore ||\n // Polling uses a disposable Concast so the polling options (which force\n // fetchPolicy to be \"network-only\" or \"no-cache\") won't override the original options.\n newNetworkStatus === NetworkStatus.poll;\n\n // Save the old variables, since Object.assign may modify them below.\n const oldVariables = this.options.variables;\n const oldFetchPolicy = this.options.fetchPolicy;\n\n const mergedOptions = compact(this.options, newOptions || {});\n const options = useDisposableConcast\n // Disposable Concast fetches receive a shallow copy of this.options\n // (merged with newOptions), leaving this.options unmodified.\n ? mergedOptions\n : assign(this.options, mergedOptions);\n\n if (!useDisposableConcast) {\n // We can skip calling updatePolling if we're not changing this.options.\n this.updatePolling();\n\n // Reset options.fetchPolicy to its original value when variables change,\n // unless a new fetchPolicy was provided by newOptions.\n if (\n newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n // Don't mess with the fetchPolicy if it's currently \"standby\".\n options.fetchPolicy !== \"standby\" &&\n // If we're changing the fetchPolicy anyway, don't try to change it here\n // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.\n options.fetchPolicy === oldFetchPolicy\n ) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n\n const variables = options.variables && { ...options.variables };\n const concast = this.fetch(options, newNetworkStatus);\n const observer: Observer<ApolloQueryResult<TData>> = {\n next: result => {\n this.reportResult(result, variables);\n },\n error: error => {\n this.reportError(error, variables);\n },\n };\n\n if (!useDisposableConcast) {\n // We use the {add,remove}Observer methods directly to avoid wrapping\n // observer with an unnecessary SubscriptionObserver object.\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\n return concast.promise;\n }\n\n // (Re)deliver the current result to this.observers without applying fetch\n // policies or making network requests.\n private observe() {\n this.reportResult(\n // Passing false is important so that this.getCurrentResult doesn't\n // save the fetchMore result as this.lastResult, causing it to be\n // ignored due to the this.isDifferentFromLastResult check in\n // this.reportResult.\n this.getCurrentResult(false),\n this.variables,\n );\n }\n\n private reportResult(\n result: ApolloQueryResult<TData>,\n variables: TVariables | undefined,\n ) {\n const lastError = this.getLastError();\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 private reportError(\n error: ApolloError,\n variables: TVariables | undefined,\n ) {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n const errorResult = {\n ...this.getLastResult(),\n error,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false,\n } as ApolloQueryResult<TData>;\n\n this.updateLastResult(errorResult, variables);\n\n iterateObserversSafely(this.observers, 'error', this.last!.error = error);\n }\n\n public hasObservers() {\n return this.observers.size > 0;\n }\n\n private tearDownQuery() {\n if (this.isTornDown) return;\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 // stop all active GraphQL subscriptions\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n }\n}\n\n// Necessary because the ObservableQuery constructor has a different\n// signature than the Observable constructor.\nfixObservableSubclass(ObservableQuery);\n\n// Reobserve with fetchPolicy effectively set to \"cache-first\", triggering\n// delivery of any new data from the cache, possibly falling back to the network\n// if any cache data are missing. This allows _complete_ cache results to be\n// delivered without also kicking off unnecessary network requests when\n// this.options.fetchPolicy is \"cache-and-network\" or \"network-only\". When\n// this.options.fetchPolicy is any other policy (\"cache-first\", \"cache-only\",\n// \"standby\", or \"no-cache\"), we call this.reobserve() as usual.\nexport function reobserveCacheFirst<TData, TVars extends OperationVariables>(\n obsQuery: ObservableQuery<TData, TVars>,\n) {\n const { fetchPolicy, nextFetchPolicy } = obsQuery.options;\n\n if (\n fetchPolicy === \"cache-and-network\" ||\n fetchPolicy === \"network-only\"\n ) {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n // Use a temporary nextFetchPolicy function that replaces itself with the\n // previous nextFetchPolicy value and returns the original fetchPolicy.\n nextFetchPolicy(this: WatchQueryOptions<TVars, TData>) {\n // Replace this nextFetchPolicy function in the options object with the\n // original this.options.nextFetchPolicy value.\n this.nextFetchPolicy = nextFetchPolicy;\n // If the original nextFetchPolicy value was a function, give it a\n // chance to decide what happens here.\n if (typeof nextFetchPolicy === \"function\") {\n return nextFetchPolicy.apply(this, arguments);\n }\n // Otherwise go back to the original this.options.fetchPolicy.\n return fetchPolicy!;\n },\n });\n }\n\n return obsQuery.reobserve();\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error: ApolloError) {\n invariant.error('Unhandled error', error.message, error.stack);\n}\n\nexport function logMissingFieldErrors(\n missing: MissingFieldError[] | MissingTree | undefined,\n) {\n if (__DEV__ && missing) {\n invariant.debug(`Missing cache result fields: ${\n JSON.stringify(missing)\n }`, missing);\n }\n}\n","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n return (\n isExecutableDefinitionNode(node) ||\n isTypeSystemDefinitionNode(node) ||\n isTypeSystemExtensionNode(node)\n );\n}\nexport function isExecutableDefinitionNode(node) {\n return (\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n}\nexport function isSelectionNode(node) {\n return (\n node.kind === Kind.FIELD ||\n node.kind === Kind.FRAGMENT_SPREAD ||\n node.kind === Kind.INLINE_FRAGMENT\n );\n}\nexport function isValueNode(node) {\n return (\n node.kind === Kind.VARIABLE ||\n node.kind === Kind.INT ||\n node.kind === Kind.FLOAT ||\n node.kind === Kind.STRING ||\n node.kind === Kind.BOOLEAN ||\n node.kind === Kind.NULL ||\n node.kind === Kind.ENUM ||\n node.kind === Kind.LIST ||\n node.kind === Kind.OBJECT\n );\n}\nexport function isConstValueNode(node) {\n return (\n isValueNode(node) &&\n (node.kind === Kind.LIST\n ? node.values.some(isConstValueNode)\n : node.kind === Kind.OBJECT\n ? node.fields.some((field) => isConstValueNode(field.value))\n : node.kind !== Kind.VARIABLE)\n );\n}\nexport function isTypeNode(node) {\n return (\n node.kind === Kind.NAMED_TYPE ||\n node.kind === Kind.LIST_TYPE ||\n node.kind === Kind.NON_NULL_TYPE\n );\n}\nexport function isTypeSystemDefinitionNode(node) {\n return (\n node.kind === Kind.SCHEMA_DEFINITION ||\n isTypeDefinitionNode(node) ||\n node.kind === Kind.DIRECTIVE_DEFINITION\n );\n}\nexport function isTypeDefinitionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n node.kind === Kind.UNION_TYPE_DEFINITION ||\n node.kind === Kind.ENUM_TYPE_DEFINITION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n );\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n node.kind === Kind.UNION_TYPE_EXTENSION ||\n node.kind === Kind.ENUM_TYPE_EXTENSION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n );\n}\n","type Context = {\n parent: Context | null;\n slots: { [slotId: string]: any };\n}\n\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.\nlet currentContext: Context | null = null;\n\n// 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.\nconst MISSING_VALUE: any = {};\n\nlet idCounter = 1;\n\n// 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.\nconst makeSlotClass = () => class Slot<TValue> {\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 public readonly id = [\n \"slot\",\n idCounter++,\n Date.now(),\n Math.random().toString(36).slice(2),\n ].join(\":\");\n\n public hasValue() {\n for (let context = currentContext; context; context = context.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.slots) {\n const value = context.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context !== 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 return true;\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 return false;\n }\n\n public getValue(): TValue | undefined {\n if (this.hasValue()) {\n return currentContext!.slots[this.id] as TValue;\n }\n }\n\n public withValue<TResult, TArgs extends any[], TThis = any>(\n value: TValue,\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ): TResult {\n const slots = {\n __proto__: null,\n [this.id]: value,\n };\n const parent = currentContext;\n currentContext = { parent, slots };\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 }\n\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n static bind<TArgs extends any[], TResult, TThis = any>(\n callback: (this: TThis, ...args: TArgs) => TResult,\n ) {\n const context = currentContext;\n return function (this: TThis) {\n const saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments as any);\n } finally {\n currentContext = saved;\n }\n } as typeof callback;\n }\n\n // Immediately run a callback function without any captured context.\n static noContext<TResult, TArgs extends any[], TThis = any>(\n callback: (this: TThis, ...args: TArgs) => TResult,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args?: TArgs,\n thisArg?: TThis,\n ) {\n if (currentContext) {\n const saved = currentContext;\n try {\n currentContext = null;\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 = saved;\n }\n } else {\n return callback.apply(thisArg!, args!);\n }\n }\n};\n\nfunction maybe<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (ignored) {}\n}\n\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.\nconst globalKey = \"@wry/context:Slot\";\n\nconst host =\n // Prefer globalThis when available.\n // https://github.com/benjamn/wryware/issues/347\n maybe(() => 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\n maybe(() => 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.\n Object.create(null) as typeof Array;\n\n// Whichever globalHost we're using, make TypeScript happy about the additional\n// globalKey property.\nconst globalHost: typeof host & {\n [globalKey]?: typeof Slot;\n} = host;\n\nexport const Slot: ReturnType<typeof makeSlotClass> =\n globalHost[globalKey] ||\n // 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.\n (Array as typeof globalHost)[globalKey] ||\n (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","import { Slot } from \"./slot\";\nexport { Slot }\nexport const { bind, noContext } = Slot;\n\n// Relying on the @types/node declaration of global.setTimeout can make\n// things tricky for dowstream projects (see PR #7).\ndeclare function setTimeout(\n callback: (...args: any[]) => any,\n ms?: number,\n ...args: any[]\n): any;\n\n// Like global.setTimeout, except the callback runs with captured context.\nexport { setTimeoutWithContext as setTimeout };\nfunction setTimeoutWithContext(callback: () => any, delay: number) {\n return setTimeout(bind(callback), delay);\n}\n\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nexport function asyncFromGen<\n TArgs extends any[],\n TYield = any,\n TReturn = any,\n TNext = any,\n>(\n genFn: (...args: TArgs) => Generator<TYield, TReturn, TNext>\n) {\n return function (this: any) {\n const gen = genFn.apply(this, arguments as any);\n\n type Method = (\n this: Generator<TYield, TReturn, TNext>,\n arg: any,\n ) => IteratorResult<TYield, TReturn>;\n\n const boundNext: Method = bind(gen.next);\n const boundThrow: Method = bind(gen.throw!);\n\n return new Promise((resolve, reject) => {\n function invoke(method: Method, argument: any) {\n try {\n var result: any = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n const next = result.done ? resolve : invokeNext;\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n const invokeNext = (value?: any) => invoke(boundNext, value);\n const invokeThrow = (error: any) => invoke(boundThrow, error);\n invokeNext();\n });\n } as (...args: TArgs) => Promise<any>;\n}\n\nfunction isPromiseLike(value: any): value is PromiseLike<any> {\n return value && typeof value.then === \"function\";\n}\n\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.\nconst wrappedFibers: Function[] = [];\nexport function wrapYieldingFiberMethods<F extends Function>(Fiber: F): F {\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 const wrap = (obj: any, method: string) => {\n const fn = obj[method];\n obj[method] = function () {\n return noContext(fn, arguments as any, this);\n };\n }\n // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n return Fiber;\n}\n","interface Node<K, V> {\n key: K;\n value: V;\n newer: Node<K, V> | null;\n older: Node<K, V> | null;\n}\n\nfunction defaultDispose() {}\n\nexport class Cache<K = any, V = any> {\n private map = new Map<K, Node<K, V>>();\n private newest: Node<K, V> | null = null;\n private oldest: Node<K, V> | null = null;\n\n constructor(\n private max = Infinity,\n public dispose: (value: V, key: K) => void = defaultDispose,\n ) {}\n\n public has(key: K): boolean {\n return this.map.has(key);\n }\n\n public get(key: K): V | undefined {\n const node = this.getNode(key);\n return node && node.value;\n }\n\n private getNode(key: K): Node<K, V> | undefined {\n const node = this.map.get(key);\n\n if (node && node !== this.newest) {\n const { older, newer } = node;\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\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 public set(key: K, value: V): V {\n let node = this.getNode(key);\n if (node) {\n return node.value = value;\n }\n\n node = {\n key,\n 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\n this.map.set(key, node);\n\n return node.value;\n }\n\n public clean() {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n }\n\n public delete(key: K): boolean {\n const node = this.map.get(key);\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\n return true;\n }\n\n return false;\n }\n}\n","import { AnyEntry } from \"./entry\";\nimport { Slot } from \"@wry/context\";\n\nexport const parentEntrySlot = new Slot<AnyEntry>();\n\nexport {\n bind as bindContext,\n noContext,\n setTimeout,\n asyncFromGen,\n} from \"@wry/context\";\n","export const {\n hasOwnProperty,\n} = Object.prototype;\n\nexport const {\n // 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.\n from: toArray = (collection: Set<any>) => {\n const array: any[] = [];\n collection.forEach(item => array.push(item));\n return array;\n },\n} = Array;\n\nexport type Unsubscribable = {\n unsubscribe?: void | (() => any);\n}\n\nexport function maybeUnsubscribe(entryOrDep: Unsubscribable) {\n const { unsubscribe } = entryOrDep;\n if (typeof unsubscribe === \"function\") {\n entryOrDep.unsubscribe = void 0;\n unsubscribe();\n }\n}\n","import { parentEntrySlot } from \"./context\";\nimport { OptimisticWrapOptions } from \"./index\";\nimport { Dep } from \"./dep\";\nimport { maybeUnsubscribe, toArray, Unsubscribable } from \"./helpers\";\n\nconst emptySetPool: Set<any>[] = [];\nconst POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition: any, optionalMessage?: string) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\n// Since exceptions are cached just like normal values, we need an efficient\n// way of representing unknown, ordinary, and exceptional values.\ntype Value<T> =\n | [] // unknown\n | [T] // known value\n | [void, any]; // known exception\n\nfunction valueIs(a: Value<any>, b: Value<any>) {\n const len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet<T>(value: Value<T>): T {\n switch (value.length) {\n case 0: throw new Error(\"unknown value\");\n case 1: return value[0];\n case 2: throw value[1];\n }\n}\n\nfunction valueCopy<T>(value: Value<T>): Value<T> {\n return value.slice(0) as Value<T>;\n}\n\nexport type AnyEntry = Entry<any, any>;\n\nexport class Entry<TArgs extends any[], TValue> {\n public static count = 0;\n\n public subscribe: OptimisticWrapOptions<TArgs>[\"subscribe\"];\n public unsubscribe: Unsubscribable[\"unsubscribe\"];\n\n public readonly parents = new Set<AnyEntry>();\n public readonly childValues = new Map<AnyEntry, Value<any>>();\n\n // 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 public dirtyChildren: Set<AnyEntry> | null = null;\n\n public dirty = true;\n public recomputing = false;\n public readonly value: Value<TValue> = [];\n\n constructor(\n public readonly fn: (...args: TArgs) => TValue,\n ) {\n ++Entry.count;\n }\n\n public peek(): TValue | undefined {\n if (this.value.length === 1 && !mightBeDirty(this)) {\n rememberParent(this);\n return this.value[0];\n }\n }\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 public recompute(args: TArgs): TValue {\n assert(! this.recomputing, \"already recomputing\");\n rememberParent(this);\n return mightBeDirty(this)\n ? reallyRecompute(this, args)\n : valueGet(this.value);\n }\n\n public setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this);\n // 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 maybeUnsubscribe(this);\n }\n\n public dispose() {\n this.setDirty();\n\n // 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 forgetChildren(this);\n\n // 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 eachParent(this, (parent, child) => {\n parent.setDirty();\n forgetChild(parent, this);\n });\n }\n\n public forget() {\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 private deps: Set<Dep<any>> | null = null;\n\n public dependOn(dep: Dep<any>) {\n dep.add(this);\n if (! this.deps) {\n this.deps = emptySetPool.pop() || new Set<Set<AnyEntry>>();\n }\n this.deps.add(dep);\n }\n\n public forgetDeps() {\n if (this.deps) {\n toArray(this.deps).forEach(dep => dep.delete(this));\n this.deps.clear();\n emptySetPool.push(this.deps);\n this.deps = null;\n }\n }\n}\n\nfunction rememberParent(child: AnyEntry) {\n const parent = parentEntrySlot.getValue();\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: AnyEntry, args: any[]) {\n forgetChildren(entry);\n\n // Set entry as the parent entry while calling recomputeNewValue(entry).\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: AnyEntry, args: any[]) {\n entry.recomputing = true;\n // Set entry.value as unknown.\n entry.value.length = 0;\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 }\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry: AnyEntry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry: AnyEntry) {\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: AnyEntry) {\n eachParent(child, reportDirtyChild);\n}\n\nfunction reportClean(child: AnyEntry) {\n eachParent(child, reportCleanChild);\n}\n\nfunction eachParent(\n child: AnyEntry,\n callback: (parent: AnyEntry, child: AnyEntry) => any,\n) {\n const parentCount = child.parents.size;\n if (parentCount) {\n const parents = toArray(child.parents);\n for (let i = 0; i < parentCount; ++i) {\n callback(parents[i], child);\n }\n }\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n const parentWasClean = !mightBeDirty(parent);\n\n if (! parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set;\n\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);\n\n // If parent was clean before, it just became (possibly) dirty (according to\n // mightBeDirty), since we just added child to parent.dirtyChildren.\n if (parentWasClean) {\n reportDirty(parent);\n }\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent: AnyEntry, child: AnyEntry) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(! mightBeDirty(child));\n\n const childValue = parent.childValues.get(child)!;\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: AnyEntry, child: AnyEntry) {\n const dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent: AnyEntry) {\n if (parent.childValues.size > 0) {\n parent.childValues.forEach((_value, child) => {\n forgetChild(parent, child);\n });\n }\n\n // Remove this parent Entry from any sets to which it was added by the\n // addToSet method.\n parent.forgetDeps();\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n}\n\nfunction forgetChild(parent: AnyEntry, child: AnyEntry) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry: AnyEntry, args: any[]) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\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 }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n","import { AnyEntry } from \"./entry\";\nimport { OptimisticWrapOptions } from \"./index\";\nimport { parentEntrySlot } from \"./context\";\nimport { hasOwnProperty, Unsubscribable, maybeUnsubscribe, toArray } from \"./helpers\";\n\ntype EntryMethodName = keyof typeof EntryMethods;\nconst EntryMethods = {\n setDirty: true, // Mark parent Entry as needing to be recomputed (default)\n dispose: true, // Detach parent Entry from parents and children, but leave in LRU cache\n forget: true, // Fully remove parent Entry from LRU cache and computation graph\n};\n\nexport type OptimisticDependencyFunction<TKey> =\n ((key: TKey) => void) & {\n dirty: (key: TKey, entryMethodName?: EntryMethodName) => void;\n };\n\nexport type Dep<TKey> = Set<AnyEntry> & {\n subscribe: OptimisticWrapOptions<[TKey]>[\"subscribe\"];\n} & Unsubscribable;\n\nexport function dep<TKey>(options?: {\n subscribe: Dep<TKey>[\"subscribe\"];\n}) {\n const depsByKey = new Map<TKey, Dep<TKey>>();\n const subscribe = options && options.subscribe;\n\n function depend(key: TKey) {\n const parent = parentEntrySlot.getValue();\n if (parent) {\n let dep = depsByKey.get(key);\n if (!dep) {\n depsByKey.set(key, dep = new Set as Dep<TKey>);\n }\n parent.dependOn(dep);\n if (typeof subscribe === \"function\") {\n maybeUnsubscribe(dep);\n dep.unsubscribe = subscribe(key);\n }\n }\n }\n\n depend.dirty = function dirty(\n key: TKey,\n entryMethodName?: EntryMethodName,\n ) {\n const dep = depsByKey.get(key);\n if (dep) {\n const m: EntryMethodName = (\n entryMethodName &&\n hasOwnProperty.call(EntryMethods, entryMethodName)\n ) ? entryMethodName : \"setDirty\";\n // 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 toArray(dep).forEach(entry => entry[m]());\n depsByKey.delete(key);\n maybeUnsubscribe(dep);\n }\n };\n\n return depend as OptimisticDependencyFunction<TKey>;\n}\n","import { Trie } from \"@wry/trie\";\n\nimport { Cache } from \"./cache\";\nimport { Entry, AnyEntry } from \"./entry\";\nimport { parentEntrySlot } from \"./context\";\n\n// These helper functions are important for making optimism work with\n// asynchronous code. In order to register parent-child dependencies,\n// optimism needs to know about any currently active parent computations.\n// In ordinary synchronous code, the parent context is implicit in the\n// execution stack, but asynchronous code requires some extra guidance in\n// order to propagate context from one async task segment to the next.\nexport {\n bindContext,\n noContext,\n setTimeout,\n asyncFromGen,\n} from \"./context\";\n\n// A lighter-weight dependency, similar to OptimisticWrapperFunction, except\n// with only one argument, no makeCacheKey, no wrapped function to recompute,\n// and no result value. Useful for representing dependency leaves in the graph\n// of computation. Subscriptions are supported.\nexport { dep, OptimisticDependencyFunction } from \"./dep\";\n\nfunction makeDefaultMakeCacheKeyFunction<\n TKeyArgs extends any[],\n TCacheKey = any,\n>(): (...args: TKeyArgs) => TCacheKey {\n const keyTrie = new Trie<TCacheKey>(typeof WeakMap === \"function\");\n return function () {\n return keyTrie.lookupArray(arguments);\n };\n}\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.\nexport const defaultMakeCacheKey = makeDefaultMakeCacheKeyFunction();\n\n// If you're paranoid about memory leaks, or you want to avoid using WeakMap\n// under the hood, but you still need the behavior of defaultMakeCacheKey,\n// import this constructor to create your own tries.\nexport { Trie as KeyTrie }\n\nexport type OptimisticWrapperFunction<\n TArgs extends any[],\n TResult,\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n> = ((...args: TArgs) => TResult) & {\n // Get the current number of Entry objects in the LRU cache.\n readonly size: number;\n\n // \"Dirty\" any cached Entry stored for the given arguments, marking that Entry\n // and its ancestors as potentially needing to be recomputed. The .dirty(...)\n // method of an optimistic function takes the same parameter types as the\n // original function by default, unless a keyArgs function is configured, and\n // then it matters that .dirty takes TKeyArgs instead of TArgs.\n dirty: (...args: TKeyArgs) => void;\n // A version of .dirty that accepts a key returned by .getKey.\n dirtyKey: (key: TCacheKey) => void;\n\n // Examine the current value without recomputing it.\n peek: (...args: TKeyArgs) => TResult | undefined;\n // A version of .peek that accepts a key returned by .getKey.\n peekKey: (key: TCacheKey) => TResult | undefined;\n\n // Completely remove the entry from the cache, dirtying any parent entries.\n forget: (...args: TKeyArgs) => boolean;\n // A version of .forget that accepts a key returned by .getKey.\n forgetKey: (key: TCacheKey) => boolean;\n\n // In order to use the -Key version of the above functions, you need a key\n // rather than the arguments used to compute the key. These two functions take\n // TArgs or TKeyArgs and return the corresponding TCacheKey. If no keyArgs\n // function has been configured, TArgs will be the same as TKeyArgs, and thus\n // getKey and makeCacheKey will be synonymous.\n getKey: (...args: TArgs) => TCacheKey;\n\n // This property is equivalent to the makeCacheKey function provided in the\n // OptimisticWrapOptions, or (if no options.makeCacheKey function is provided)\n // a default implementation of makeCacheKey.\n makeCacheKey: (...args: TKeyArgs) => TCacheKey;\n};\n\nexport type OptimisticWrapOptions<\n TArgs extends any[],\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n> = {\n // The maximum number of cache entries that should be retained before the\n // cache begins evicting the oldest ones.\n max?: number;\n // Transform the raw arguments to some other type of array, which will then\n // be passed to makeCacheKey.\n keyArgs?: (...args: TArgs) => TKeyArgs;\n // The makeCacheKey function takes the same arguments that were passed to\n // the wrapper function and returns a single value that can be used as a key\n // in a Map to identify the cached result.\n makeCacheKey?: (...args: TKeyArgs) => TCacheKey;\n // If provided, the subscribe function should either return an unsubscribe\n // function or return nothing.\n subscribe?: (...args: TArgs) => void | (() => any);\n};\n\nconst caches = new Set<Cache<any, AnyEntry>>();\n\nexport function wrap<\n TArgs extends any[],\n TResult,\n TKeyArgs extends any[] = TArgs,\n TCacheKey = any,\n>(\n originalFunction: (...args: TArgs) => TResult,\n options: OptimisticWrapOptions<TArgs, TKeyArgs> = Object.create(null),\n) {\n const cache = new Cache<TCacheKey, Entry<TArgs, TResult>>(\n options.max || Math.pow(2, 16),\n entry => entry.dispose(),\n );\n\n const keyArgs = options.keyArgs;\n const makeCacheKey = options.makeCacheKey ||\n makeDefaultMakeCacheKeyFunction<TKeyArgs, TCacheKey>();\n\n const optimistic = function (): TResult {\n const key = makeCacheKey.apply(\n null,\n keyArgs ? keyArgs.apply(null, arguments as any) : arguments as any\n );\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments as any);\n }\n\n let entry = cache.get(key)!;\n if (!entry) {\n cache.set(key, entry = new Entry(originalFunction));\n entry.subscribe = options.subscribe;\n // Give the Entry the ability to trigger cache.delete(key), even though\n // the Entry itself does not know about key or cache.\n entry.forget = () => cache.delete(key);\n }\n\n const value = entry.recompute(\n Array.prototype.slice.call(arguments) as TArgs,\n );\n\n // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n cache.set(key, entry);\n\n caches.add(cache);\n\n // 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 if (! parentEntrySlot.hasValue()) {\n caches.forEach(cache => cache.clean());\n caches.clear();\n }\n\n return value;\n } as OptimisticWrapperFunction<TArgs, TResult, TKeyArgs, TCacheKey>;\n\n Object.defineProperty(optimistic, \"size\", {\n get() {\n return cache[\"map\"].size;\n },\n configurable: false,\n enumerable: false,\n });\n\n function dirtyKey(key: TCacheKey) {\n const entry = cache.get(key);\n if (entry) {\n entry.setDirty();\n }\n }\n optimistic.dirtyKey = dirtyKey;\n optimistic.dirty = function dirty() {\n dirtyKey(makeCacheKey.apply(null, arguments as any));\n };\n\n function peekKey(key: TCacheKey) {\n const entry = cache.get(key);\n if (entry) {\n return entry.peek();\n }\n }\n optimistic.peekKey = peekKey;\n optimistic.peek = function peek() {\n return peekKey(makeCacheKey.apply(null, arguments as any));\n };\n\n function forgetKey(key: TCacheKey) {\n return cache.delete(key);\n }\n optimistic.forgetKey = forgetKey;\n optimistic.forget = function forget() {\n return forgetKey(makeCacheKey.apply(null, arguments as any));\n };\n\n optimistic.makeCacheKey = makeCacheKey;\n optimistic.getKey = keyArgs ? function getKey() {\n return makeCacheKey.apply(null, keyArgs.apply(null, arguments as any));\n } : makeCacheKey as (...args: any[]) => TCacheKey;\n\n return Object.freeze(optimistic);\n}\n","import { dep, OptimisticDependencyFunction } from \"optimism\";\nimport { Slot } from \"@wry/context\";\nimport { InMemoryCache } from \"./inMemoryCache\";\nimport { ApolloCache } from '../../core';\n\nexport interface ReactiveVar<T> {\n (newValue?: T): T;\n onNextChange(listener: ReactiveListener<T>): () => void;\n attachCache(cache: ApolloCache<any>): this;\n forgetCache(cache: ApolloCache<any>): boolean;\n}\n\nexport type ReactiveListener<T> = (value: T) => any;\n\n// Contextual Slot that acquires its value when custom read functions are\n// called in Policies#readField.\nexport const cacheSlot = new Slot<ApolloCache<any>>();\n\nconst cacheInfoMap = new WeakMap<ApolloCache<any>, {\n vars: Set<ReactiveVar<any>>;\n dep: OptimisticDependencyFunction<ReactiveVar<any>>;\n}>();\n\nfunction getCacheInfo(cache: ApolloCache<any>) {\n let info = cacheInfoMap.get(cache)!;\n if (!info) {\n cacheInfoMap.set(cache, info = {\n vars: new Set,\n dep: dep(),\n });\n }\n return info;\n}\n\nexport function forgetCache(cache: ApolloCache<any>) {\n getCacheInfo(cache).vars.forEach(rv => rv.forgetCache(cache));\n}\n\n// Calling forgetCache(cache) serves to silence broadcasts and allows the\n// cache to be garbage collected. However, the varsByCache WeakMap\n// preserves the set of reactive variables that were previously associated\n// with this cache, which makes it possible to \"recall\" the cache at a\n// later time, by reattaching it to those variables. If the cache has been\n// garbage collected in the meantime, because it is no longer reachable,\n// you won't be able to call recallCache(cache), and the cache will\n// automatically disappear from the varsByCache WeakMap.\nexport function recallCache(cache: ApolloCache<any>) {\n getCacheInfo(cache).vars.forEach(rv => rv.attachCache(cache));\n}\n\nexport function makeVar<T>(value: T): ReactiveVar<T> {\n const caches = new Set<ApolloCache<any>>();\n const listeners = new Set<ReactiveListener<T>>();\n\n const rv: ReactiveVar<T> = function (newValue) {\n if (arguments.length > 0) {\n if (value !== newValue) {\n value = newValue!;\n caches.forEach(cache => {\n // Invalidate any fields with custom read functions that\n // consumed this variable, so query results involving those\n // fields will be recomputed the next time we read them.\n getCacheInfo(cache).dep.dirty(rv);\n // Broadcast changes to any caches that have previously read\n // from this variable.\n broadcast(cache);\n });\n // Finally, notify any listeners added via rv.onNextChange.\n const oldListeners = Array.from(listeners);\n listeners.clear();\n oldListeners.forEach(listener => listener(value));\n }\n } else {\n // When reading from the variable, obtain the current cache from\n // context via cacheSlot. This isn't entirely foolproof, but it's\n // the same system that powers varDep.\n const cache = cacheSlot.getValue();\n if (cache) {\n attach(cache);\n getCacheInfo(cache).dep(rv);\n }\n }\n\n return value;\n };\n\n rv.onNextChange = listener => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n\n const attach = rv.attachCache = cache => {\n caches.add(cache);\n getCacheInfo(cache).vars.add(rv);\n return rv;\n };\n\n rv.forgetCache = cache => caches.delete(cache);\n\n return rv;\n}\n\ntype Broadcastable = ApolloCache<any> & {\n // This method is protected in InMemoryCache, which we are ignoring, but\n // we still want some semblance of type safety when we call it.\n broadcastWatches?: InMemoryCache[\"broadcastWatches\"];\n};\n\nfunction broadcast(cache: Broadcastable) {\n if (cache.broadcastWatches) {\n cache.broadcastWatches();\n }\n}\n","import { invariant } from '../utilities/globals';\n\nimport {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n visit,\n BREAK,\n isSelectionNode,\n DirectiveNode,\n FragmentSpreadNode,\n ExecutableDefinitionNode,\n} from 'graphql';\n\nimport { ApolloCache } from '../cache';\nimport {\n FragmentMap,\n StoreObject,\n argumentsObjectFromField,\n buildQueryFromSelectionSet,\n createFragmentMap,\n getFragmentDefinitions,\n getMainDefinition,\n hasDirectives,\n isField,\n isInlineFragment,\n mergeDeep,\n mergeDeepArray,\n removeClientSetsFromDocument,\n resultKeyNameFromField,\n shouldInclude,\n} from '../utilities';\nimport { ApolloClient } from './ApolloClient';\nimport { Resolvers, OperationVariables } from './types';\nimport { FetchResult } from '../link/core';\nimport { cacheSlot } from '../cache';\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n },\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any,\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record<string, any>;\n onlyRunForcedResolvers: boolean;\n selectionsToResolve: Set<SelectionNode>;\n};\n\nexport type LocalStateOptions<TCacheShape> = {\n cache: ApolloCache<TCacheShape>;\n client?: ApolloClient<TCacheShape>;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState<TCacheShape> {\n private cache: ApolloCache<TCacheShape>;\n private client: ApolloClient<TCacheShape>;\n private resolvers?: Resolvers;\n private fragmentMatcher: FragmentMatcher;\n private selectionsToResolveCache = new WeakMap<ExecutableDefinitionNode, Set<SelectionNode>>()\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions<TCacheShape>) {\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 public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(resolverGroup => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers<TData>({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: FetchResult<TData>;\n context?: Record<string, any>;\n variables?: Record<string, any>;\n onlyRunForcedResolvers?: boolean;\n }): Promise<FetchResult<TData>> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers,\n ).then(localResult => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n }\n\n // Server queries are stripped of all @client based selection sets.\n public serverQuery(document: DocumentNode) {\n return removeClientSetsFromDocument(document);\n }\n\n public prepareContext(context?: Record<string, any>) {\n const { cache } = this;\n return {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey(obj: StoreObject) {\n return cache.identify(obj);\n },\n };\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: OperationVariables = {},\n context = {},\n ) {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables,\n ).then(data => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(\n arg =>\n arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true,\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record<string, any>,\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument<TData>(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false,\n ) {\n const mainDefinition = getMainDefinition(document) as OperationDefinitionNode;\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n const selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);\n\n const definitionOperation = mainDefinition.operation;\n\n const defaultOperationType = definitionOperation\n ? definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : 'Query';\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n selectionsToResolve,\n onlyRunForcedResolvers,\n };\n const isClientFieldDescendant = false;\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext,\n ).then(result => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet<TData>(\n selectionSet: SelectionSetNode,\n isClientFieldDescendant: boolean,\n rootValue: TData,\n execContext: ExecContext,\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise<void> => {\n if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) {\n // Skip selections without @client directives\n // (still processing if one of the ancestors or one of the child fields has @client directive)\n return ;\n }\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(\n fieldResult => {\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n },\n );\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}`);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext,\n ).then(fragmentResult => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function() {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n rootValue: any,\n execContext: ExecContext,\n ): Promise<any> {\n if (!rootValue) {\n return null;\n }\n\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(\n // In case the resolve function accesses reactive variables,\n // set cacheSlot to the current cache instance.\n cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ])\n );\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach(directive => {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(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 // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n const isClientField = field.directives?.some(d => d.name.value === 'client') ?? false\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n isClientFieldDescendant || isClientField,\n result,\n execContext,\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n result: any[],\n execContext: ExecContext,\n ): any {\n return Promise.all(\n result.map(item => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);\n }\n }),\n );\n }\n\n // Collect selection nodes on paths from document root down to all @client directives.\n // This function takes into account transitive fragment spreads.\n // Complexity equals to a single `visit` over the full document.\n private collectSelectionsToResolve(\n mainDefinition: OperationDefinitionNode,\n fragmentMap: FragmentMap\n ): Set<SelectionNode> {\n const isSingleASTNode = (node: ASTNode | readonly ASTNode[]): node is ASTNode => !Array.isArray(node);\n const selectionsToResolveCache = this.selectionsToResolveCache;\n\n function collectByDefinition(definitionNode: ExecutableDefinitionNode): Set<SelectionNode> {\n if (!selectionsToResolveCache.has(definitionNode)) {\n const matches = new Set<SelectionNode>();\n selectionsToResolveCache.set(definitionNode, matches);\n\n visit(definitionNode, {\n Directive(node: DirectiveNode, _, __, ___, ancestors) {\n if (node.name.value === 'client') {\n ancestors.forEach(node => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n })\n }\n },\n FragmentSpread(spread: FragmentSpreadNode, _, __, ___, ancestors) {\n const fragment = fragmentMap[spread.name.value];\n invariant(fragment, `No fragment named ${spread.name.value}`);\n\n const fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n // Fragment for this spread contains @client directive (either directly or transitively)\n // Collect selection nodes on paths from the root down to fields with the @client directive\n ancestors.forEach(node => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n })\n matches.add(spread);\n fragmentSelections.forEach(selection => {\n matches.add(selection);\n })\n }\n }\n })\n }\n return selectionsToResolveCache.get(definitionNode)!;\n }\n return collectByDefinition(mainDefinition);\n }\n}\n","import { DocumentNode, GraphQLError } from 'graphql';\nimport { equal } from \"@wry/equality\";\n\nimport { Cache, ApolloCache } from '../cache';\nimport { DeepMerger } from \"../utilities\"\nimport { mergeIncrementalData } from '../utilities/common/incrementalResult';\nimport { WatchQueryOptions, ErrorPolicy } from './watchQueryOptions';\nimport { ObservableQuery, reobserveCacheFirst } from './ObservableQuery';\nimport { QueryListener } from './types';\nimport { FetchResult } from '../link/core';\nimport {\n ObservableSubscription,\n isNonEmptyArray,\n graphQLResultHasError,\n canUseWeakMap,\n} from '../utilities';\nimport {\n NetworkStatus,\n isNetworkRequestInFlight,\n} from './networkStatus';\nimport { ApolloError } from '../errors';\nimport { QueryManager } from './QueryManager';\n\nexport type QueryStoreValue = Pick<QueryInfo,\n | \"variables\"\n | \"networkStatus\"\n | \"networkError\"\n | \"graphQLErrors\"\n >;\n\nexport const enum CacheWriteBehavior {\n FORBID,\n OVERWRITE,\n MERGE,\n};\n\nconst destructiveMethodCounts = new (\n canUseWeakMap ? WeakMap : Map\n)<ApolloCache<any>, number>();\n\nfunction wrapDestructiveCacheMethod(\n cache: ApolloCache<any>,\n methodName: keyof ApolloCache<any>,\n) {\n const original = cache[methodName];\n if (typeof original === \"function\") {\n cache[methodName] = function () {\n destructiveMethodCounts.set(\n cache,\n // The %1e15 allows the count to wrap around to 0 safely every\n // quadrillion evictions, so there's no risk of overflow. To be\n // clear, this is more of a pedantic principle than something\n // that matters in any conceivable practical scenario.\n (destructiveMethodCounts.get(cache)! + 1) % 1e15,\n );\n return original.apply(this, arguments);\n };\n }\n}\n\nfunction cancelNotifyTimeout(info: QueryInfo) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n\n// A QueryInfo object represents a single query managed by the\n// QueryManager, which tracks all QueryInfo objects by queryId in its\n// this.queries Map. QueryInfo objects store the latest results and errors\n// for the given query, and are responsible for reporting those results to\n// the corresponding ObservableQuery, via the QueryInfo.notify method.\n// Results are reported asynchronously whenever setDiff marks the\n// QueryInfo object as dirty, though a call to the QueryManager's\n// broadcastQueries method may trigger the notification before it happens\n// automatically. This class used to be a simple interface type without\n// any field privacy or meaningful methods, which is why it still has so\n// many public fields. The effort to lock down and simplify the QueryInfo\n// interface is ongoing, and further improvements are welcome.\nexport class QueryInfo {\n listeners = new Set<QueryListener>();\n document: DocumentNode | null = null;\n lastRequestId = 1;\n subscriptions = new Set<ObservableSubscription>();\n variables?: Record<string, any>;\n networkStatus?: NetworkStatus;\n networkError?: Error | null;\n graphQLErrors?: ReadonlyArray<GraphQLError>;\n stopped = false;\n\n private cache: ApolloCache<any>;\n\n constructor(\n queryManager: QueryManager<any>,\n public readonly queryId = queryManager.generateQueryId(),\n ) {\n const cache = this.cache = queryManager.cache;\n\n // Track how often cache.evict is called, since we want eviction to\n // override the feud-stopping logic in the markResult method, by\n // causing shouldWrite to return true. Wrapping the cache.evict method\n // is a bit of a hack, but it saves us from having to make eviction\n // counting an official part of the ApolloCache API.\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 public init(query: {\n document: DocumentNode;\n variables: Record<string, any> | undefined,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus?: NetworkStatus,\n observableQuery?: ObservableQuery<any>;\n lastRequestId?: number;\n }): this {\n let networkStatus = query.networkStatus || NetworkStatus.loading;\n if (this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !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,\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 private dirty: boolean = false;\n\n private notifyTimeout?: ReturnType<typeof setTimeout>;\n\n reset() {\n cancelNotifyTimeout(this);\n this.dirty = false;\n }\n\n getDiff(variables = this.variables): Cache.DiffResult<any> {\n const 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\n const oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n\n const diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n }\n\n private lastDiff?: {\n diff: Cache.DiffResult<any>,\n options: Cache.DiffOptions,\n };\n\n private updateLastDiff(\n diff: Cache.DiffResult<any> | null,\n options?: Cache.DiffOptions,\n ) {\n this.lastDiff = diff ? {\n diff,\n options: options || this.getDiffOptions(),\n } : void 0;\n }\n\n private getDiffOptions(variables = this.variables): Cache.DiffOptions {\n return {\n query: this.document!,\n variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: this.observableQuery?.options.canonizeResults,\n };\n }\n\n setDiff(diff: Cache.DiffResult<any> | null) {\n const oldDiff = this.lastDiff && this.lastDiff.diff;\n this.updateLastDiff(diff);\n if (!this.dirty &&\n !equal(oldDiff && oldDiff.result,\n diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(() => this.notify(), 0);\n }\n }\n }\n\n public readonly observableQuery: ObservableQuery<any> | null = null;\n private oqListener?: QueryListener;\n\n setObservableQuery(oq: ObservableQuery<any> | null) {\n if (oq === this.observableQuery) return;\n\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n\n (this as any).observableQuery = oq;\n\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add(this.oqListener = () => {\n const diff = this.getDiff();\n if (diff.fromOptimisticTransaction) {\n // If this diff came from an optimistic transaction, deliver the\n // current cache data to the ObservableQuery, but don't perform a\n // reobservation, since oq.reobserveCacheFirst might make a network\n // request, and we never want to trigger network requests in the\n // middle of optimistic updates.\n oq[\"observe\"]();\n } else {\n // Otherwise, make the ObservableQuery \"reobserve\" the latest data\n // using a temporary fetch policy of \"cache-first\", so complete cache\n // results have a chance to be delivered without triggering additional\n // network requests, even when options.fetchPolicy is \"network-only\"\n // or \"cache-and-network\". All other fetch policies are preserved by\n // this method, and are handled by calling oq.reobserve(). If this\n // reobservation is spurious, isDifferentFromLastResult still has a\n // chance to catch it before delivery to ObservableQuery subscribers.\n reobserveCacheFirst(oq);\n }\n });\n } else {\n delete this.oqListener;\n }\n }\n\n notify() {\n cancelNotifyTimeout(this);\n\n if (this.shouldNotify()) {\n this.listeners.forEach(listener => listener(this));\n }\n\n this.dirty = false;\n }\n\n private shouldNotify() {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n\n if (isNetworkRequestInFlight(this.networkStatus) &&\n this.observableQuery) {\n const { fetchPolicy } = this.observableQuery.options;\n if (fetchPolicy !== \"cache-only\" &&\n fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n\n return true;\n }\n\n public stop() {\n if (!this.stopped) {\n this.stopped = true;\n\n // Cancel the pending notify timeout\n this.reset();\n\n this.cancel();\n // Revert back to the no-op version of cancel inherited from\n // QueryInfo.prototype.\n this.cancel = QueryInfo.prototype.cancel;\n\n this.subscriptions.forEach(sub => sub.unsubscribe());\n\n const oq = this.observableQuery;\n if (oq) oq.stopPolling();\n }\n }\n\n // This method is a no-op by default, until/unless overridden by the\n // updateWatch method.\n private cancel() {}\n\n private lastWatch?: Cache.WatchOptions;\n\n private updateWatch(variables = this.variables) {\n const oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n\n const watchOptions: Cache.WatchOptions = {\n // Although this.getDiffOptions returns Cache.DiffOptions instead of\n // Cache.WatchOptions, all the overlapping options should be the same, so\n // we can reuse getDiffOptions here, for consistency.\n ...this.getDiffOptions(variables),\n watcher: this,\n callback: diff => this.setDiff(diff),\n };\n\n if (!this.lastWatch ||\n !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch(this.lastWatch = watchOptions);\n }\n }\n\n private lastWrite?: {\n result: FetchResult<any>;\n variables: WatchQueryOptions[\"variables\"];\n dmCount: number | undefined;\n };\n\n public resetLastWrite() {\n this.lastWrite = void 0;\n }\n\n private shouldWrite(\n result: FetchResult<any>,\n variables: WatchQueryOptions[\"variables\"],\n ) {\n const { lastWrite } = this;\n return !(\n lastWrite &&\n // If cache.evict has been called since the last time we wrote this\n // data into the cache, there's a chance writing this result into\n // the cache will repair what was evicted.\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data)\n );\n }\n\n public markResult<T>(\n result: FetchResult<T>,\n document: DocumentNode,\n options: Pick<WatchQueryOptions,\n | \"variables\"\n | \"fetchPolicy\"\n | \"errorPolicy\">,\n cacheWriteBehavior: CacheWriteBehavior,\n ) {\n const merger = new DeepMerger();\n const graphQLErrors = isNonEmptyArray(result.errors)\n ? result.errors.slice(0)\n : [];\n\n // Cancel the pending notify timeout (if it exists) to prevent extraneous network\n // requests. To allow future notify timeouts, diff and dirty are reset as well.\n this.reset();\n\n if ('incremental' in result && isNonEmptyArray(result.incremental)) {\n const mergedData = mergeIncrementalData(this.getDiff().result, result);\n result.data = mergedData;\n\n // Detect the first chunk of a deferred query and merge it with existing\n // cache data. This ensures a `cache-first` fetch policy that returns\n // partial cache data or a `cache-and-network` fetch policy that already\n // has full data in the cache does not complain when trying to merge the\n // initial deferred server data with existing cache data.\n } else if ('hasNext' in result && result.hasNext) {\n const diff = this.getDiff();\n result.data = merger.merge(diff.result, result.data)\n }\n\n this.graphQLErrors = graphQLErrors;\n\n if (options.fetchPolicy === 'no-cache') {\n this.updateLastDiff(\n { result: result.data, complete: true },\n this.getDiffOptions(options.variables),\n );\n\n } else if (cacheWriteBehavior !== CacheWriteBehavior.FORBID) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n // Using a transaction here so we have a chance to read the result\n // back from the cache before the watch callback fires as a result\n // of writeQuery, so we can store the new diff quietly and ignore\n // it when we receive it redundantly from the watch callback.\n this.cache.performTransaction(cache => {\n if (this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data as T,\n variables: options.variables,\n overwrite: cacheWriteBehavior === CacheWriteBehavior.OVERWRITE,\n });\n\n this.lastWrite = {\n result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(this.cache),\n };\n } else {\n // If result is the same as the last result we received from\n // the network (and the variables match too), avoid writing\n // result into the cache again. The wisdom of skipping this\n // cache write is far from obvious, since any cache write\n // could be the one that puts the cache back into a desired\n // state, fixing corruption or missing data. However, if we\n // always write every network result into the cache, we enable\n // feuds between queries competing to update the same data in\n // incompatible ways, which can lead to an endless cycle of\n // cache broadcasts and useless network requests. As with any\n // feud, eventually one side must step back from the brink,\n // letting the other side(s) have the last word(s). There may\n // be other points where we could break this cycle, such as\n // silencing the broadcast for cache.writeQuery (not a good\n // idea, since it just delays the feud a bit) or somehow\n // avoiding the network request that just happened (also bad,\n // because the server could return useful new data). All\n // options considered, skipping this cache write seems to be\n // the least damaging place to break the cycle, because it\n // reflects the intuition that we recently wrote this exact\n // result into the cache, so the cache *should* already/still\n // contain this data. If some other query has clobbered that\n // data in the meantime, that's too bad, but there will be no\n // winners if every query blindly reverts to its own version\n // of the data. This approach also gives the network a chance\n // to return new data, which will be written into the cache as\n // usual, notifying only those queries that are directly\n // affected by the cache updates, as usual. In the future, an\n // even more sophisticated cache could perhaps prevent or\n // mitigate the clobbering somehow, but that would make this\n // particular cache write even less important, and thus\n // skipping it would be even safer than it is today.\n if (this.lastDiff &&\n this.lastDiff.diff.complete) {\n // Reuse data from the last good (complete) diff that we\n // received, when possible.\n result.data = this.lastDiff.diff.result;\n return;\n }\n // If the previous this.diff was incomplete, fall through to\n // re-reading the latest data with cache.diff, below.\n }\n\n const diffOptions = this.getDiffOptions(options.variables);\n const diff = cache.diff<T>(diffOptions);\n\n // In case the QueryManager stops this QueryInfo before its\n // results are delivered, it's important to avoid restarting the\n // cache watch when markResult is called.\n if (!this.stopped) {\n // Any time we're about to update this.diff, we need to make\n // sure we've started watching the cache.\n this.updateWatch(options.variables);\n }\n\n // If we're allowed to write to the cache, and we can read a\n // complete result from the cache, update result.data to be the\n // result from the cache, rather than the raw network result.\n // Set without setDiff to avoid triggering a notify call, since\n // we have other ways of notifying for this result.\n this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n } else {\n this.lastWrite = void 0;\n }\n }\n }\n\n public markReady() {\n this.networkError = null;\n return this.networkStatus = NetworkStatus.ready;\n }\n\n public markError(error: ApolloError) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n\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\nexport function shouldWriteResult<T>(\n result: FetchResult<T>,\n errorPolicy: ErrorPolicy = \"none\",\n) {\n const ignoreErrors =\n errorPolicy === \"ignore\" ||\n errorPolicy === \"all\";\n let writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n","import { invariant, InvariantError } from '../utilities/globals';\n\nimport { DocumentNode } from 'graphql';\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype OperationTypeNode = any;\nimport { equal } from '@wry/equality';\n\nimport { ApolloLink, execute, FetchResult } from '../link/core';\nimport {\n isExecutionPatchIncrementalResult,\n isExecutionPatchResult,\n} from '../utilities/common/incrementalResult';\nimport { Cache, ApolloCache, canonicalStringify } from '../cache';\n\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n getGraphQLErrorsFromResult,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n ObservableSubscription,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n ConcastSourcesArray,\n makeUniqueId,\n isDocumentNode,\n isNonNullObject,\n} from '../utilities';\nimport { mergeIncrementalData } from '../utilities/common/incrementalResult';\nimport { ApolloError, isApolloError } from '../errors';\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n ErrorPolicy,\n MutationFetchPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery, logMissingFieldErrors } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n ApolloQueryResult,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n InternalRefetchQueriesOptions,\n InternalRefetchQueriesResult,\n InternalRefetchQueriesMap,\n} from './types';\nimport { LocalState } from './LocalState';\n\nimport {\n QueryInfo,\n QueryStoreValue,\n shouldWriteResult,\n CacheWriteBehavior,\n} from './QueryInfo';\n\nconst { hasOwnProperty } = Object.prototype;\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record<string, any>;\n loading: boolean;\n error: Error | null;\n}\n\ntype UpdateQueries<TData> = MutationOptions<TData, any, any>[\"updateQueries\"];\n\ninterface TransformCacheEntry {\n document: DocumentNode;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: DocumentNode | null;\n serverQuery: DocumentNode | null;\n defaultVars: OperationVariables;\n asQuery: DocumentNode;\n}\n\ntype DefaultOptions = import(\"./ApolloClient\").DefaultOptions;\n\nexport class QueryManager<TStore> {\n public cache: ApolloCache<TStore>;\n public link: ApolloLink;\n public defaultOptions: DefaultOptions;\n\n public readonly assumeImmutableResults: boolean;\n public readonly ssrMode: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record<string, string> = {};\n private localState: LocalState<TStore>;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map<string, QueryInfo>();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n private fetchCancelFns = new Map<string, (error: any) => any>();\n\n constructor({\n cache,\n link,\n defaultOptions,\n queryDeduplication = false,\n onBroadcast,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n cache: ApolloCache<TStore>;\n link: ApolloLink;\n defaultOptions?: DefaultOptions;\n queryDeduplication?: boolean;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record<string, string>;\n localState?: LocalState<TStore>;\n assumeImmutableResults?: boolean;\n }) {\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({ cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach(cancel => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<\n TData,\n TVariables extends OperationVariables,\n TContext extends Record<string, any>,\n TCache extends ApolloCache<any>\n >({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n onQueryUpdated,\n fetchPolicy = this.defaultOptions.mutate?.fetchPolicy || \"network-only\",\n errorPolicy = this.defaultOptions.mutate?.errorPolicy || \"none\",\n keepRootFields,\n context,\n }: MutationOptions<TData, TVariables, TContext>): Promise<FetchResult<TData>> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache',\n \"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.\"\n );\n\n const mutationId = this.generateMutationId();\n\n const {\n document,\n hasClientExports,\n } = this.transform(mutation);\n mutation = this.cache.transformForLink(document);\n\n variables = this.getVariables(mutation, variables) as TVariables;\n if (hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context) as TVariables;\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n if (optimisticResponse) {\n this.markMutationOptimistic<\n TData,\n TVariables,\n TContext,\n TCache\n >(optimisticResponse, {\n mutationId,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n updateQueries,\n update: updateWithProxyFn,\n keepRootFields,\n });\n }\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n return asyncMap(\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ),\n\n (result: FetchResult<TData>) => {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: getGraphQLErrorsFromResult(result),\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n const storeResult: typeof result = { ...result };\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n\n if (errorPolicy === 'ignore' &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache\n >({\n mutationId,\n result: storeResult,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n update: updateWithProxyFn,\n updateQueries,\n awaitRefetchQueries,\n refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated,\n keepRootFields,\n });\n },\n\n ).subscribe({\n next(storeResult) {\n self.broadcastQueries();\n\n // Since mutations might receive multiple payloads from the\n // ApolloLink chain (e.g. when used with @defer),\n // we resolve with a SingleExecutionResult or after the final\n // ExecutionPatchResult has arrived and we have assembled the\n // multipart response into a single result.\n if (!('hasNext' in storeResult) || storeResult.hasNext === false) {\n resolve(storeResult);\n }\n },\n\n error(err: Error) {\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\n reject(\n err instanceof ApolloError ? err : new ApolloError({\n networkError: err,\n }),\n );\n },\n });\n });\n }\n\n public markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache<any>\n >(\n mutation: {\n mutationId: string;\n result: FetchResult<TData>;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries<TData>;\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n awaitRefetchQueries?: boolean;\n refetchQueries?: InternalRefetchQueriesInclude;\n removeOptimistic?: string;\n onQueryUpdated?: OnQueryUpdated<any>;\n keepRootFields?: boolean;\n },\n cache = this.cache,\n ): Promise<FetchResult<TData>> {\n let { result } = mutation;\n const cacheWrites: Cache.WriteOptions[] = [];\n const skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n if (!isExecutionPatchIncrementalResult(result)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n if (isExecutionPatchIncrementalResult(result) && isNonEmptyArray(result.incremental)) {\n const diff = cache.diff<TData>({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n let mergedData;\n if (diff.result) {\n mergedData = mergeIncrementalData(diff.result, result);\n }\n if (typeof mergedData !== 'undefined') {\n // cast the ExecutionPatchResult to FetchResult here since\n // ExecutionPatchResult never has `data` when returned from the server\n (result as FetchResult).data = mergedData;\n cacheWrites.push({\n result: mergedData,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n })\n }\n }\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff<TData>({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document!,\n variables,\n });\n }\n }\n });\n }\n }\n\n if (\n cacheWrites.length > 0 ||\n mutation.refetchQueries ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic\n ) {\n const results: any[] = [];\n\n this.refetchQueries({\n updateCache: (cache: TCache) => {\n if (!skipCache) {\n cacheWrites.forEach(write => cache.write(write));\n }\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with\n // a write action.\n const { update } = mutation;\n // Determine whether result is a SingleExecutionResult,\n // or the final ExecutionPatchResult.\n const isFinalResult =\n !isExecutionPatchResult(result) ||\n (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n\n if (update) {\n if (!skipCache) {\n // Re-read the ROOT_MUTATION data we just wrote into the cache\n // (the first cache.write call in the cacheWrites.forEach loop\n // above), so field read functions have a chance to run for\n // fields within mutation result objects.\n const diff = cache.diff<TData>({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (diff.complete) {\n result = { ...result as FetchResult, data: diff.result };\n if ('incremental' in result) {\n delete result.incremental;\n }\n if ('hasNext' in result) {\n delete result.hasNext;\n }\n }\n }\n\n // If we've received the whole response,\n // either a SingleExecutionResult or the final ExecutionPatchResult,\n // call the update function.\n if (isFinalResult) {\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n }\n\n // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n // shallow to allow rolling back optimistic evictions.\n if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields(value, { fieldName, DELETE }) {\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n\n include: mutation.refetchQueries,\n\n // Write the final mutation.result to the root layer of the cache.\n optimistic: false,\n\n // Remove the corresponding optimistic layer at the same time as we\n // write the final non-optimistic result.\n removeOptimistic: mutation.removeOptimistic,\n\n // Let the caller of client.mutate optionally determine the refetching\n // behavior for watched queries after the mutation.update function runs.\n // If no onQueryUpdated function was provided for this mutation, pass\n // null instead of undefined to disable the default refetching behavior.\n onQueryUpdated: mutation.onQueryUpdated || null,\n\n }).forEach(result => results.push(result));\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n // Returning a promise here makes the mutation await that promise, so we\n // include results in that promise's work if awaitRefetchQueries or an\n // onQueryUpdated function was specified.\n return Promise.all(results).then(() => result);\n }\n }\n\n return Promise.resolve(result);\n }\n\n public markMutationOptimistic<TData, TVariables, TContext, TCache extends ApolloCache<any>>(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries<TData>,\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n keepRootFields?: boolean,\n },\n ) {\n const data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n\n return this.cache.recordOptimisticTransaction(cache => {\n try {\n this.markMutationResult<TData, TVariables, TContext, TCache>({\n ...mutation,\n result: { data },\n }, cache);\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n }\n\n public fetchQuery<TData, TVars extends OperationVariables>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n networkStatus?: NetworkStatus,\n ): Promise<ApolloQueryResult<TData>> {\n return this.fetchQueryObservable<TData, TVars>(\n queryId,\n options,\n networkStatus,\n ).promise;\n }\n\n public getQueryStore() {\n const store: Record<string, QueryStoreValue> = Object.create(null);\n this.queries.forEach((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 public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n private transformCache = new (\n canUseWeakMap ? WeakMap : Map\n )<DocumentNode, TransformCacheEntry>();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const transformed = this.cache.transformDocument(document);\n const noConnection = removeConnectionDirectiveFromDocument(transformed);\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = noConnection && this.localState.serverQuery(noConnection);\n\n const cacheEntry: TransformCacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n // Transform any mutation or subscription operations to query operations\n // so we can read/write them from/to the cache.\n asQuery: {\n ...transformed,\n definitions: transformed.definitions.map(def => {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return { ...def, operation: \"query\" as OperationTypeNode };\n }\n return def;\n }),\n }\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables<TVariables>(\n document: DocumentNode,\n variables?: TVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<T, TVariables extends OperationVariables = OperationVariables>(\n options: WatchQueryOptions<TVariables, T>,\n ): ObservableQuery<T, TVariables> {\n // assign variable default values if supplied\n options = {\n ...options,\n variables: this.getVariables(\n options.query,\n options.variables,\n ) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this);\n const observable = new ObservableQuery<T, TVariables>({\n queryManager: this,\n queryInfo,\n options,\n });\n\n this.queries.set(observable.queryId, queryInfo);\n\n queryInfo.init({\n document: observable.query,\n observableQuery: observable,\n variables: observable.variables,\n });\n\n return observable;\n }\n\n public query<TData, TVars extends OperationVariables = OperationVariables>(\n options: QueryOptions<TVars, TData>,\n queryId = this.generateQueryId(),\n ): Promise<ApolloQueryResult<TData>> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n return this.fetchQuery<TData, TVars>(\n queryId,\n options,\n ).finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(options: Cache.ResetOptions = {\n discardWatches: true,\n }): Promise<void> {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n\n this.queries.forEach(queryInfo => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\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 // begin removing data from the store\n return this.cache.reset(options);\n }\n\n public getObservableQueries(\n include: InternalRefetchQueriesInclude = \"active\",\n ) {\n const queries = new Map<string, ObservableQuery<any>>();\n const queryNamesAndDocs = new Map<string | DocumentNode, boolean>();\n const legacyQueryOptions = new Set<QueryOptions>();\n\n if (Array.isArray(include)) {\n include.forEach(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(({ observableQuery: oq, document }, queryId) => {\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n const {\n queryName,\n options: { fetchPolicy },\n } = oq;\n\n if (\n fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())\n ) {\n return;\n }\n\n if (\n include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))\n ) {\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((options: QueryOptions) => {\n // We will be issuing a fresh network request for this query, so we\n // pre-allocate a new query ID here, using a special prefix to enable\n // cleaning up these temporary queries later, after fetching.\n const queryId = makeUniqueId(\"legacyOneTimeQuery\");\n const queryInfo = this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n const oq = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options: {\n ...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((included, nameOrDoc) => {\n if (!included) {\n invariant.warn(`Unknown query ${\n typeof nameOrDoc === \"string\" ? \"named \" : \"\"\n }${\n JSON.stringify(nameOrDoc, null, 2)\n } requested in refetchQueries options.include array`);\n }\n });\n }\n\n return queries;\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise<ApolloQueryResult<any>[]> {\n const observableQueryPromises: Promise<ApolloQueryResult<any>>[] = [];\n\n this.getObservableQueries(\n includeStandby ? \"all\" : \"active\"\n ).forEach((observableQuery, queryId) => {\n const { fetchPolicy } = observableQuery.options;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" &&\n fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n this.getQuery(queryId).setDiff(null);\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery<any, any>) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription<T = any>({\n query,\n fetchPolicy,\n errorPolicy,\n variables,\n context = {},\n }: SubscriptionOptions): Observable<FetchResult<T>> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink<T>(\n query,\n context,\n variables,\n ).map(result => {\n if (fetchPolicy !== 'no-cache') {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n 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 if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n context,\n ).then(makeObservable);\n\n return new Observable<FetchResult<T>>(observer => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(info => info.notify());\n }\n\n public getLocalState(): LocalState<TStore> {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map<string, Observable<FetchResult>>\n >();\n\n private getObservableFromLink<T = any>(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean =\n // Prefer context.queryDeduplication if specified.\n context?.queryDeduplication ??\n this.queryDeduplication,\n ): Observable<FetchResult<T>> {\n let observable: Observable<FetchResult<T>>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = canonicalStringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n\n byVariables.set(varJson, observable = concast);\n\n concast.beforeNext(() => {\n if (byVariables.delete(varJson) &&\n byVariables.size < 1) {\n inFlightLinkObservables.delete(serverQuery);\n }\n });\n }\n\n } else {\n observable = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n }\n } else {\n observable = new Concast([\n Observable.of({ data: {} } as FetchResult<T>)\n ]);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink<TData, TVars extends OperationVariables>(\n queryInfo: QueryInfo,\n cacheWriteBehavior: CacheWriteBehavior,\n options: Pick<WatchQueryOptions<TVars, TData>,\n | \"variables\"\n | \"context\"\n | \"fetchPolicy\"\n | \"errorPolicy\">,\n ): Observable<ApolloQueryResult<TData>> {\n const requestId = queryInfo.lastRequestId = this.generateRequestId();\n\n // Performing transformForLink here gives this.cache a chance to fill in\n // missing fragment definitions (for example) before sending this document\n // through the link chain.\n const linkDocument = this.cache.transformForLink(\n // Use same document originally produced by this.cache.transformDocument.\n this.transform(queryInfo.document!).document\n );\n\n return asyncMap(\n this.getObservableFromLink(\n linkDocument,\n options.context,\n options.variables,\n ),\n\n result => {\n const graphQLErrors = getGraphQLErrorsFromResult(result);\n const hasErrors = graphQLErrors.length > 0;\n\n // If we interrupted this request by calling getResultsFromLink again\n // with the same QueryInfo object, we ignore the old results.\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(new ApolloError({\n graphQLErrors,\n }));\n }\n // Use linkDocument rather than queryInfo.document so the\n // operation/fragments used to write the result are the same as the\n // ones used to obtain it from the link.\n queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult<TData> = {\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 },\n\n networkError => {\n const error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError });\n\n // Avoid storing errors from older interrupted queries.\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n },\n );\n }\n\n public fetchQueryObservable<TData, TVars extends OperationVariables>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n ): Concast<ApolloQueryResult<TData>> {\n const query = this.transform(options.query).document;\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n\n const defaults = this.defaultOptions.watchQuery;\n let {\n fetchPolicy = defaults && defaults.fetchPolicy || \"cache-first\",\n errorPolicy = defaults && defaults.errorPolicy || \"none\",\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n\n const concastSources = this.fetchQueryByPolicy<TData, TVars>(\n queryInfo,\n normalized,\n networkStatus,\n );\n\n if (\n // If we're in standby, postpone advancing options.fetchPolicy using\n // applyNextFetchPolicy.\n normalized.fetchPolicy !== \"standby\" &&\n // The \"standby\" policy currently returns [] from fetchQueryByPolicy, so\n // this is another way to detect when nothing was done/fetched.\n concastSources.length > 0 &&\n queryInfo.observableQuery\n ) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n\n return concastSources;\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n const cleanupCancelFn = () => this.fetchCancelFns.delete(queryId);\n this.fetchCancelFns.set(queryId, reason => {\n cleanupCancelFn();\n // This delay ensures the concast variable has been initialized.\n setTimeout(() => concast.cancel(reason));\n });\n\n // A Concast<T> can be created either from an Iterable<Observable<T>>\n // or from a PromiseLike<Iterable<Observable<T>>>, where T in this\n // case is ApolloQueryResult<TData>.\n const concast = new Concast(\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n this.transform(normalized.query).hasClientExports\n ? this.localState.addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context,\n ).then(fromVariables)\n : fromVariables(normalized.variables!)\n );\n\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n\n return concast;\n }\n\n public refetchQueries<TResult>({\n updateCache,\n include,\n optimistic = false,\n removeOptimistic = optimistic ? makeUniqueId(\"refetchQueries\") : void 0,\n onQueryUpdated,\n }: InternalRefetchQueriesOptions<ApolloCache<TStore>, TResult>\n ): InternalRefetchQueriesMap<TResult> {\n const includedQueriesById = new Map<string, {\n oq: ObservableQuery<any>;\n lastDiff?: Cache.DiffResult<any>;\n diff?: Cache.DiffResult<any>;\n }>();\n\n if (include) {\n this.getObservableQueries(include).forEach((oq, queryId) => {\n includedQueriesById.set(queryId, {\n oq,\n lastDiff: this.getQuery(queryId).getDiff(),\n });\n });\n }\n\n const results: InternalRefetchQueriesMap<TResult> = new Map;\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n\n // Since you can perform any combination of cache reads and/or writes in\n // the cache.batch update function, its optimistic option can be either\n // a boolean or a string, representing three distinct modes of\n // operation:\n //\n // * false: read/write only the root layer\n // * true: read/write the topmost layer\n // * string: read/write a fresh optimistic layer with that ID string\n //\n // When typeof optimistic === \"string\", a new optimistic layer will be\n // temporarily created within cache.batch with that string as its ID. If\n // we then pass that same string as the removeOptimistic option, we can\n // make cache.batch immediately remove the optimistic layer after\n // running the updateCache function, triggering only one broadcast.\n //\n // However, the refetchQueries method accepts only true or false for its\n // optimistic option (not string). We interpret true to mean a temporary\n // optimistic layer should be created, to allow efficiently rolling back\n // the effect of the updateCache function, which involves passing a\n // string instead of true as the optimistic option to cache.batch, when\n // refetchQueries receives optimistic: true.\n //\n // In other words, we are deliberately not supporting the use case of\n // writing to an *existing* optimistic layer (using the refetchQueries\n // updateCache function), since that would potentially interfere with\n // other optimistic updates in progress. Instead, you can read/write\n // only the root layer by passing optimistic: false to refetchQueries,\n // or you can read/write a brand new optimistic layer that will be\n // automatically removed by passing optimistic: true.\n optimistic: optimistic && removeOptimistic || false,\n\n // The removeOptimistic option can also be provided by itself, even if\n // optimistic === false, to remove some previously-added optimistic\n // layer safely and efficiently, like we do in markMutationResult.\n //\n // If an explicit removeOptimistic string is provided with optimistic:\n // true, the removeOptimistic string will determine the ID of the\n // temporary optimistic layer, in case that ever matters.\n removeOptimistic,\n\n onWatchUpdated(watch, diff, lastDiff) {\n const oq =\n watch.watcher instanceof QueryInfo &&\n watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n // Since we're about to handle this query now, remove it from\n // includedQueriesById, in case it was added earlier because of\n // options.include.\n includedQueriesById.delete(oq.queryId);\n\n let result: TResult | boolean | Promise<ApolloQueryResult<any>> =\n onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n // The onQueryUpdated function requested the default refetching\n // behavior by returning true.\n result = oq.refetch();\n }\n\n // Record the result in the results Map, as long as onQueryUpdated\n // did not return false to skip/ignore this result.\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult<TResult>);\n }\n\n // Allow the default cache broadcast to happen, except when\n // onQueryUpdated returns false.\n return result;\n }\n\n if (onQueryUpdated !== null) {\n // If we don't have an onQueryUpdated function, and onQueryUpdated\n // was not disabled by passing null, make sure this query is\n // \"included\" like any other options.include-specified query.\n includedQueriesById.set(oq.queryId, { oq, lastDiff, diff });\n }\n }\n },\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(({ oq, lastDiff, diff }, queryId) => {\n let result: TResult | boolean | Promise<ApolloQueryResult<any>> | undefined;\n\n // If onQueryUpdated is provided, we want to use it for all included\n // queries, even the QueryOptions ones.\n if (onQueryUpdated) {\n if (!diff) {\n const info = oq[\"queryInfo\"];\n info.reset(); // Force info.getDiff() to read from cache.\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n // Otherwise, we fall back to refetching.\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult<TResult>);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n // In case no updateCache callback was provided (so cache.batch was not\n // called above, and thus did not already remove the optimistic layer),\n // remove it here. Since this is a no-op when the layer has already been\n // removed, we do it even if we called cache.batch above, since it's\n // possible this.cache is an instance of some ApolloCache subclass other\n // than InMemoryCache, and does not fully support the removeOptimistic\n // option for cache.batch.\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n }\n\n private fetchQueryByPolicy<TData, TVars extends OperationVariables>(\n queryInfo: QueryInfo,\n { query,\n variables,\n fetchPolicy,\n refetchWritePolicy,\n errorPolicy,\n returnPartialData,\n context,\n notifyOnNetworkStatusChange,\n }: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus,\n ): ConcastSourcesArray<ApolloQueryResult<TData>> {\n const oldNetworkStatus = queryInfo.networkStatus;\n\n queryInfo.init({\n document: this.transform(query).document,\n variables,\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff(variables);\n\n const resultsFromCache = (\n diff: Cache.DiffResult<TData>,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading,\n ) => {\n const data = diff.result;\n\n if (__DEV__ &&\n !returnPartialData &&\n !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n const fromData = (data: TData | undefined) => Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult<TData>);\n\n if (data && this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then(resolved => fromData(resolved.data || void 0));\n }\n\n // Resolves https://github.com/apollographql/apollo-client/issues/10317.\n // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,\n // data was incorrectly returned from the cache on refetch:\n // if diff.missing exists, we should not return cache data.\n if (\n errorPolicy === 'none' &&\n networkStatus === NetworkStatus.refetch &&\n Array.isArray(diff.missing)\n ) {\n return fromData(void 0);\n }\n\n return fromData(data);\n };\n\n const cacheWriteBehavior =\n fetchPolicy === \"no-cache\" ? CacheWriteBehavior.FORBID :\n ( // Watched queries must opt into overwriting existing data on refetch,\n // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\"\n ) ? CacheWriteBehavior.OVERWRITE\n : CacheWriteBehavior.MERGE;\n\n const resultsFromLink = () => this.getResultsFromLink<TData, TVars>(\n queryInfo,\n cacheWriteBehavior,\n {\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n },\n );\n\n const shouldNotify =\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default: case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return [\n resultsFromCache(diff, queryInfo.markReady()),\n ];\n }\n\n if (returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n\n return [\n resultsFromLink(),\n ];\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n\n return [\n resultsFromLink(),\n ];\n }\n\n case \"cache-only\":\n return [\n resultsFromCache(readCache(), queryInfo.markReady()),\n ];\n\n case \"network-only\":\n if (shouldNotify) {\n return [\n resultsFromCache(readCache()),\n resultsFromLink(),\n ];\n }\n\n return [resultsFromLink()];\n\n case \"no-cache\":\n if (shouldNotify) {\n return [\n // Note that queryInfo.getDiff() for no-cache queries does not call\n // cache.diff, but instead returns a { complete: false } stub result\n // when there is no queryInfo.diff already defined.\n resultsFromCache(queryInfo.getDiff()),\n resultsFromLink(),\n ];\n }\n\n return [resultsFromLink()];\n\n case \"standby\":\n return [];\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n","import type {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n OperationVariables,\n} from \"../../core\";\n\nimport { compact } from \"./compact\";\n\ntype OptionsUnion<TData, TVariables extends OperationVariables, TContext> =\n | WatchQueryOptions<TVariables, TData>\n | QueryOptions<TVariables, TData>\n | MutationOptions<TData, TVariables, TContext>;\n\nexport function mergeOptions<\n TOptions extends Partial<OptionsUnion<any, any, any>>\n>(\n defaults: TOptions | Partial<TOptions> | undefined,\n options: TOptions | Partial<TOptions>,\n): TOptions {\n return compact(defaults, options, options.variables && {\n variables: {\n ...(defaults && defaults.variables),\n ...options.variables,\n },\n });\n}\n","import { invariant, InvariantError } from '../utilities/globals';\n\nimport { ExecutionResult, DocumentNode } from 'graphql';\n\nimport { ApolloLink, FetchResult, GraphQLRequest, execute } from '../link/core';\nimport { ApolloCache, DataProxy, Reference } from '../cache';\nimport { Observable } from '../utilities';\nimport { version } from '../version';\nimport { HttpLink, UriFunction } from '../link/http';\n\nimport { QueryManager } from './QueryManager';\nimport { ObservableQuery } from './ObservableQuery';\n\nimport {\n ApolloQueryResult,\n DefaultContext,\n OperationVariables,\n Resolvers,\n RefetchQueriesOptions,\n RefetchQueriesResult,\n InternalRefetchQueriesResult,\n RefetchQueriesInclude,\n} from './types';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n MutationOptions,\n SubscriptionOptions,\n WatchQueryFetchPolicy,\n} from './watchQueryOptions';\n\nimport {\n LocalState,\n FragmentMatcher,\n} from './LocalState';\n\nexport interface DefaultOptions {\n watchQuery?: Partial<WatchQueryOptions<any, any>>;\n query?: Partial<QueryOptions<any, any>>;\n mutate?: Partial<MutationOptions<any, any, any>>;\n}\n\nlet hasSuggestedDevtools = false;\n\nexport type ApolloClientOptions<TCacheShape> = {\n uri?: string | UriFunction;\n credentials?: string;\n headers?: Record<string, string>;\n link?: ApolloLink;\n cache: ApolloCache<TCacheShape>;\n ssrForceFetchDelay?: number;\n ssrMode?: boolean;\n connectToDevTools?: boolean;\n queryDeduplication?: boolean;\n defaultOptions?: DefaultOptions;\n assumeImmutableResults?: boolean;\n resolvers?: Resolvers | Resolvers[];\n typeDefs?: string | string[] | DocumentNode | DocumentNode[];\n fragmentMatcher?: FragmentMatcher;\n name?: string;\n version?: string;\n};\n\n// Though mergeOptions now resides in @apollo/client/utilities, it was\n// previously declared and exported from this module, and then reexported from\n// @apollo/client/core. Since we need to preserve that API anyway, the easiest\n// solution is to reexport mergeOptions where it was previously declared (here).\nimport { mergeOptions } from \"../utilities\";\nexport { mergeOptions }\n\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over a {@link NetworkInterface} instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through {@link Observable} instances.\n */\nexport class ApolloClient<TCacheShape> implements DataProxy {\n public link: ApolloLink;\n public cache: ApolloCache<TCacheShape>;\n public disableNetworkFetches: boolean;\n public version: string;\n public queryDeduplication: boolean;\n public defaultOptions: DefaultOptions;\n public readonly typeDefs: ApolloClientOptions<TCacheShape>['typeDefs'];\n\n private queryManager: QueryManager<TCacheShape>;\n private devToolsHookCb: Function;\n private resetStoreCallbacks: Array<() => Promise<any>> = [];\n private clearStoreCallbacks: Array<() => Promise<any>> = [];\n private localState: LocalState<TCacheShape>;\n\n /**\n * Constructs an instance of {@link ApolloClient}.\n *\n * @param uri The GraphQL endpoint that Apollo Client will connect to. If\n * `link` is configured, this option is ignored.\n * @param link The {@link ApolloLink} over which GraphQL documents will be resolved into a response.\n *\n * @param cache The initial cache to use in the data store.\n *\n * @param ssrMode Determines whether this is being run in Server Side Rendering (SSR) mode.\n *\n * @param ssrForceFetchDelay Determines the time interval before we force fetch queries for a\n * server side render.\n *\n * @param queryDeduplication If set to false, a query will still be sent to the server even if a query\n * with identical parameters (query, variables, operationName) is already in flight.\n *\n * @param defaultOptions Used to set application wide defaults for the\n * options supplied to `watchQuery`, `query`, or\n * `mutate`.\n *\n * @param assumeImmutableResults When this option is true, the client will assume results\n * read from the cache are never mutated by application code,\n * which enables substantial performance optimizations.\n *\n * @param name A custom name that can be used to identify this client, when\n * using Apollo client awareness features. E.g. \"iOS\".\n *\n * @param version A custom version that can be used to identify this client,\n * when using Apollo client awareness features. This is the\n * version of your client, which you may want to increment on\n * new builds. This is NOT the version of Apollo Client that\n * you are using.\n */\n constructor(options: ApolloClientOptions<TCacheShape>) {\n const {\n uri,\n credentials,\n headers,\n cache,\n ssrMode = false,\n ssrForceFetchDelay = 0,\n connectToDevTools =\n // Expose the client instance as window.__APOLLO_CLIENT__ and call\n // onBroadcast in queryManager.broadcastQueries to enable browser\n // devtools, but disable them by default in production.\n typeof window === 'object' &&\n !(window as any).__APOLLO_CLIENT__ &&\n __DEV__,\n queryDeduplication = true,\n defaultOptions,\n assumeImmutableResults = false,\n resolvers,\n typeDefs,\n fragmentMatcher,\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n } = options;\n\n let { link } = options;\n\n if (!link) {\n link = uri\n ? new HttpLink({ uri, credentials, headers })\n : ApolloLink.empty();\n }\n\n if (!cache) {\n throw new InvariantError(\n \"To initialize Apollo Client, you must specify a 'cache' property \" +\n \"in the options object. \\n\" +\n \"For more information, please visit: https://go.apollo.dev/c/docs\"\n );\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(\n () => (this.disableNetworkFetches = false),\n ssrForceFetchDelay,\n );\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 as any).__APOLLO_CLIENT__ = this;\n }\n\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && connectToDevTools && __DEV__) {\n hasSuggestedDevtools = true;\n if (\n typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self &&\n !(window as any).__APOLLO_DEVTOOLS_GLOBAL_HOOK__\n ) {\n const nav = window.navigator;\n const ua = nav && nav.userAgent;\n let url: string | undefined;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url = \"https://chrome.google.com/webstore/detail/\" +\n \"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 if (url) {\n invariant.log(\n \"Download the Apollo DevTools for a better development \" +\n \"experience: \" + url\n );\n }\n }\n }\n\n this.version = version;\n\n this.localState = new LocalState({\n cache,\n client: this,\n resolvers,\n fragmentMatcher,\n });\n\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n queryDeduplication,\n ssrMode,\n clientAwareness: {\n name: clientAwarenessName!,\n version: clientAwarenessVersion!,\n },\n localState: this.localState,\n assumeImmutableResults,\n onBroadcast: connectToDevTools ? () => {\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 /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n public stop() {\n this.queryManager.stop();\n }\n\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an {@link ObservableQuery}. We can subscribe to this {@link ObservableQuery} and\n * receive updated results through a GraphQL observer when the cache store changes.\n *\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifier, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n public watchQuery<T = any, TVariables extends OperationVariables = OperationVariables>(\n options: WatchQueryOptions<TVariables, T>,\n ): ObservableQuery<T, TVariables> {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n\n // XXX Overwriting options is probably not the best way to do this long term...\n if (\n this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.watchQuery<T, TVariables>(options);\n }\n\n /**\n * This resolves a single query according to the options specified and\n * returns a {@link Promise} which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options An object of type {@link QueryOptions} that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n public query<T = any, TVariables extends OperationVariables = OperationVariables>(\n options: QueryOptions<TVariables, T>,\n ): Promise<ApolloQueryResult<T>> {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n\n invariant(\n (options.fetchPolicy as WatchQueryFetchPolicy) !== 'cache-and-network',\n 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.'\n );\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.query<T, TVariables>(options);\n }\n\n /**\n * This resolves a single mutation according to the options specified and returns a\n * {@link Promise} which is either resolved with the resulting data or rejected with an\n * error.\n *\n * It takes options as an object with the following keys and values:\n */\n public mutate<\n TData = any,\n TVariables extends OperationVariables = OperationVariables,\n TContext extends Record<string, any> = DefaultContext,\n TCache extends ApolloCache<any> = ApolloCache<any>\n >(\n options: MutationOptions<TData, TVariables, TContext>,\n ): Promise<FetchResult<TData>> {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate<TData, TVariables, TContext, TCache>(options);\n }\n\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * {@link Observable} which either emits received data or an error.\n */\n public subscribe<T = any, TVariables extends OperationVariables = OperationVariables>(\n options: SubscriptionOptions<TVariables, T>,\n ): Observable<FetchResult<T>> {\n return this.queryManager.startGraphQLSubscription<T>(options);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n public readQuery<T = any, TVariables = OperationVariables>(\n options: DataProxy.Query<TVariables, T>,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readQuery<T, TVariables>(options, optimistic);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n public readFragment<T = any, TVariables = OperationVariables>(\n options: DataProxy.Fragment<TVariables, T>,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readFragment<T, TVariables>(options, optimistic);\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n public writeQuery<TData = any, TVariables = OperationVariables>(\n options: DataProxy.WriteQueryOptions<TData, TVariables>,\n ): Reference | undefined {\n const ref = this.cache.writeQuery<TData, TVariables>(options);\n\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n\n return ref;\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n public writeFragment<TData = any, TVariables = OperationVariables>(\n options: DataProxy.WriteFragmentOptions<TData, TVariables>,\n ): Reference | undefined {\n const ref = this.cache.writeFragment<TData, TVariables>(options);\n\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n\n return ref;\n }\n\n public __actionHookForDevTools(cb: () => any) {\n this.devToolsHookCb = cb;\n }\n\n public __requestRaw(payload: GraphQLRequest): Observable<ExecutionResult> {\n return execute(this.link, payload);\n }\n\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public resetStore(): Promise<ApolloQueryResult<any>[] | null> {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore({\n discardWatches: false,\n }))\n .then(() => Promise.all(this.resetStoreCallbacks.map(fn => fn())))\n .then(() => this.reFetchObservableQueries());\n }\n\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n public clearStore(): Promise<any[]> {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore({\n discardWatches: true,\n }))\n .then(() => Promise.all(this.clearStoreCallbacks.map(fn => fn())));\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onResetStore(cb: () => Promise<any>): () => void {\n this.resetStoreCallbacks.push(cb);\n return () => {\n this.resetStoreCallbacks = this.resetStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onClearStore(cb: () => Promise<any>): () => void {\n this.clearStoreCallbacks.push(cb);\n return () => {\n this.clearStoreCallbacks = this.clearStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n public reFetchObservableQueries(\n includeStandby?: boolean,\n ): Promise<ApolloQueryResult<any>[]> {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n }\n\n /**\n * Refetches specified active queries. Similar to \"reFetchObservableQueries()\" but with a specific list of queries.\n *\n * `refetchQueries()` is useful for use cases to imperatively refresh a selection of queries.\n *\n * It is important to remember that `refetchQueries()` *will* refetch specified active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public refetchQueries<\n TCache extends ApolloCache<any> = ApolloCache<TCacheShape>,\n TResult = Promise<ApolloQueryResult<any>>,\n >(\n options: RefetchQueriesOptions<TCache, TResult>,\n ): RefetchQueriesResult<TResult> {\n const map = this.queryManager.refetchQueries(options);\n const queries: ObservableQuery<any>[] = [];\n const results: InternalRefetchQueriesResult<TResult>[] = [];\n\n map.forEach((result, obsQuery) => {\n queries.push(obsQuery);\n results.push(result);\n });\n\n const result = Promise.all<TResult>(\n results as TResult[]\n ) as RefetchQueriesResult<TResult>;\n\n // In case you need the raw results immediately, without awaiting\n // Promise.all(results):\n result.queries = queries;\n result.results = results;\n\n // If you decide to ignore the result Promise because you're using\n // result.queries and result.results instead, you shouldn't have to worry\n // about preventing uncaught rejections for the Promise.all result.\n result.catch(error => {\n invariant.debug(`In client.refetchQueries, Promise.all promise rejected with error ${error}`);\n });\n\n return result;\n }\n\n /**\n * Get all currently active `ObservableQuery` objects, in a `Map` keyed by\n * query ID strings. An \"active\" query is one that has observers and a\n * `fetchPolicy` other than \"standby\" or \"cache-only\". You can include all\n * `ObservableQuery` objects (including the inactive ones) by passing \"all\"\n * instead of \"active\", or you can include just a subset of active queries by\n * passing an array of query names or DocumentNode objects.\n */\n public getObservableQueries(\n include: RefetchQueriesInclude = \"active\",\n ): Map<string, ObservableQuery<any>> {\n return this.queryManager.getObservableQueries(include);\n }\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public extract(optimistic?: boolean): TCacheShape {\n return this.cache.extract(optimistic);\n }\n\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public restore(serializedState: TCacheShape): ApolloCache<TCacheShape> {\n return this.cache.restore(serializedState);\n }\n\n /**\n * Add additional local resolvers.\n */\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.addResolvers(resolvers);\n }\n\n /**\n * Set (override existing) local resolvers.\n */\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.setResolvers(resolvers);\n }\n\n /**\n * Get all registered local resolvers.\n */\n public getResolvers() {\n return this.localState.getResolvers();\n }\n\n /**\n * Set a custom local state fragment matcher.\n */\n public setLocalStateFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n }\n\n /**\n * Define a new ApolloLink (or link chain) that Apollo Client will use.\n */\n public setLink(newLink: ApolloLink) {\n this.link = this.queryManager.link = newLink;\n }\n}\n","export const version = 'local';\n","import { DocumentNode } from 'graphql';\nimport { wrap } from 'optimism';\n\nimport {\n StoreObject,\n Reference,\n getFragmentQueryDocument,\n} from '../../utilities';\nimport { DataProxy } from './types/DataProxy';\nimport { Cache } from './types/Cache';\n\nexport type Transaction<T> = (c: ApolloCache<T>) => void;\n\nexport abstract class ApolloCache<TSerialized> implements DataProxy {\n // required to implement\n // core API\n public abstract read<TData = any, TVariables = any>(\n query: Cache.ReadOptions<TVariables, TData>,\n ): TData | null;\n public abstract write<TData = any, TVariables = any>(\n write: Cache.WriteOptions<TData, TVariables>,\n ): Reference | undefined;\n public abstract diff<T>(query: Cache.DiffOptions): Cache.DiffResult<T>;\n public abstract watch<TData = any, TVariables = any>(\n watch: Cache.WatchOptions<TData, TVariables>,\n ): () => void;\n\n // Empty the cache and restart all current watches (unless\n // options.discardWatches is true).\n public abstract reset(options?: Cache.ResetOptions): Promise<void>;\n\n // Remove whole objects from the cache by passing just options.id, or\n // specific fields by passing options.field and/or options.args. If no\n // options.args are provided, all fields matching options.field (even\n // those with arguments) will be removed. Returns true iff any data was\n // removed from the cache.\n public abstract evict(options: Cache.EvictOptions): boolean;\n\n // initializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(\n serializedState: TSerialized,\n ): ApolloCache<TSerialized>;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): TSerialized;\n\n // Optimistic API\n\n public abstract removeOptimistic(id: string): void;\n\n // Transactional API\n\n // The batch method is intended to replace/subsume both performTransaction\n // and recordOptimisticTransaction, but performTransaction came first, so we\n // provide a default batch implementation that's just another way of calling\n // performTransaction. Subclasses of ApolloCache (such as InMemoryCache) can\n // override the batch method to do more interesting things with its options.\n public batch<U>(options: Cache.BatchOptions<this, U>): U {\n const optimisticId =\n typeof options.optimistic === \"string\" ? options.optimistic :\n options.optimistic === false ? null : void 0;\n let updateResult: U;\n this.performTransaction(\n () => updateResult = options.update(this),\n optimisticId,\n );\n return updateResult!;\n }\n\n public abstract performTransaction(\n transaction: Transaction<TSerialized>,\n // Although subclasses may implement recordOptimisticTransaction\n // however they choose, the default implementation simply calls\n // performTransaction with a string as the second argument, allowing\n // performTransaction to handle both optimistic and non-optimistic\n // (broadcast-batching) transactions. Passing null for optimisticId is\n // also allowed, and indicates that performTransaction should apply\n // the transaction non-optimistically (ignoring optimistic data).\n optimisticId?: string | null,\n ): void;\n\n public recordOptimisticTransaction(\n transaction: Transaction<TSerialized>,\n optimisticId: string,\n ) {\n this.performTransaction(transaction, optimisticId);\n }\n\n // Optional API\n\n // Called once per input document, allowing the cache to make static changes\n // to the query, such as adding __typename fields.\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // Called before each ApolloLink request, allowing the cache to make dynamic\n // changes to the query, such as filling in missing fragment definitions.\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n public identify(object: StoreObject | Reference): string | undefined {\n return;\n }\n\n public gc(): string[] {\n return [];\n }\n\n public modify(options: Cache.ModifyOptions): boolean {\n return false;\n }\n\n // DataProxy API\n /**\n *\n * @param options\n * @param optimistic\n */\n public readQuery<QueryType, TVariables = any>(\n options: Cache.ReadQueryOptions<QueryType, TVariables>,\n optimistic = !!options.optimistic,\n ): QueryType | null {\n return this.read({\n ...options,\n rootId: options.id || 'ROOT_QUERY',\n optimistic,\n });\n }\n\n // Make sure we compute the same (===) fragment query document every\n // time we receive the same fragment in readFragment.\n private getFragmentDoc = wrap(getFragmentQueryDocument);\n\n public readFragment<FragmentType, TVariables = any>(\n options: Cache.ReadFragmentOptions<FragmentType, TVariables>,\n optimistic = !!options.optimistic,\n ): FragmentType | null {\n return this.read({\n ...options,\n query: this.getFragmentDoc(options.fragment, options.fragmentName),\n rootId: options.id,\n optimistic,\n });\n }\n\n public writeQuery<TData = any, TVariables = any>({\n id,\n data,\n ...options\n }: Cache.WriteQueryOptions<TData, TVariables>): Reference | undefined {\n return this.write(Object.assign(options, {\n dataId: id || 'ROOT_QUERY',\n result: data,\n }));\n }\n\n public writeFragment<TData = any, TVariables = any>({\n id,\n data,\n fragment,\n fragmentName,\n ...options\n }: Cache.WriteFragmentOptions<TData, TVariables>): Reference | undefined {\n return this.write(Object.assign(options, {\n query: this.getFragmentDoc(fragment, fragmentName),\n dataId: id,\n result: data,\n }));\n }\n\n public updateQuery<TData = any, TVariables = any>(\n options: Cache.UpdateQueryOptions<TData, TVariables>,\n update: (data: TData | null) => TData | null | void,\n ): TData | null {\n return this.batch({\n update(cache) {\n const value = cache.readQuery<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeQuery<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n\n public updateFragment<TData = any, TVariables = any>(\n options: Cache.UpdateFragmentOptions<TData, TVariables>,\n update: (data: TData | null) => TData | null | void,\n ): TData | null {\n return this.batch({\n update(cache) {\n const value = cache.readFragment<TData, TVariables>(options);\n const data = update(value);\n if (data === void 0 || data === null) return value;\n cache.writeFragment<TData, TVariables>({ ...options, data });\n return data;\n },\n });\n }\n}\n","import { DocumentNode, FieldNode } from 'graphql';\n\nimport {\n Reference,\n StoreObject,\n StoreValue,\n isReference,\n} from '../../../utilities';\n\nimport { StorageType } from '../../inmemory/policies';\n\n// The Readonly<T> type only really works for object types, since it marks\n// all of the object's properties as readonly, but there are many cases when\n// a generic type parameter like TExisting might be a string or some other\n// primitive type, in which case we need to avoid wrapping it with Readonly.\n// SafeReadonly<string> collapses to just string, which makes string\n// assignable to SafeReadonly<any>, whereas string is not assignable to\n// Readonly<any>, somewhat surprisingly.\nexport type SafeReadonly<T> = T extends object ? Readonly<T> : T;\n\nexport type MissingTree = string | {\n readonly [key: string]: MissingTree;\n};\n\nexport class MissingFieldError extends Error {\n constructor(\n public readonly message: string,\n public readonly path: MissingTree | Array<string | number>,\n public readonly query: DocumentNode,\n public readonly variables?: Record<string, any>,\n ) {\n // 'Error' breaks prototype chain here\n super(message);\n\n if (Array.isArray(this.path)) {\n this.missing = this.message;\n for (let i = this.path.length - 1; i >= 0; --i) {\n this.missing = { [this.path[i]]: this.missing };\n }\n } else {\n this.missing = this.path;\n }\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully supported\n // on Android (see issue #3236).\n (this as any).__proto__ = MissingFieldError.prototype;\n }\n\n public readonly missing: MissingTree;\n}\n\nexport interface FieldSpecifier {\n typename?: string;\n fieldName: string;\n field?: FieldNode;\n args?: Record<string, any>;\n variables?: Record<string, any>;\n}\n\nexport interface ReadFieldOptions extends FieldSpecifier {\n from?: StoreObject | Reference;\n}\n\nexport interface ReadFieldFunction {\n <V = StoreValue>(options: ReadFieldOptions): SafeReadonly<V> | undefined;\n <V = StoreValue>(\n fieldName: string,\n from?: StoreObject | Reference,\n ): SafeReadonly<V> | undefined;\n}\n\nexport type ToReferenceFunction = (\n objOrIdOrRef: StoreObject | string | Reference,\n mergeIntoStore?: boolean,\n) => Reference | undefined;\n\nexport type CanReadFunction = (value: StoreValue) => boolean;\n\nexport type ModifierDetails = {\n DELETE: any;\n INVALIDATE: any;\n fieldName: string;\n storeFieldName: string;\n readField: ReadFieldFunction;\n canRead: CanReadFunction;\n isReference: typeof isReference;\n toReference: ToReferenceFunction;\n storage: StorageType;\n}\n\nexport type Modifier<T> = (value: T, details: ModifierDetails) => T;\n\nexport type Modifiers = {\n [fieldName: string]: Modifier<any>;\n};\n","import '../globals'; // For __DEV__\nimport { isNonNullObject } from './objects';\n\nfunction deepFreeze(value: any) {\n const workSet = new Set([value]);\n workSet.forEach(obj => {\n if (isNonNullObject(obj) && shallowFreeze(obj) === obj) {\n Object.getOwnPropertyNames(obj).forEach(name => {\n if (isNonNullObject(obj[name])) workSet.add(obj[name]);\n });\n }\n });\n return value;\n}\n\nfunction shallowFreeze<T extends object>(obj: T): T | null {\n if (__DEV__ && !Object.isFrozen(obj)) {\n try {\n Object.freeze(obj);\n } catch (e) {\n // Some types like Uint8Array and Node.js's Buffer cannot be frozen, but\n // they all throw a TypeError when you try, so we re-throw any exceptions\n // that are not TypeErrors, since that would be unexpected.\n if (e instanceof TypeError) return null;\n throw e;\n }\n }\n return obj;\n}\n\nexport function maybeDeepFreeze<T>(obj: T): T {\n if (__DEV__) {\n deepFreeze(obj);\n }\n return obj;\n}\n","import { DocumentNode, FragmentDefinitionNode, SelectionSetNode } from 'graphql';\n\nimport {\n NormalizedCache,\n InMemoryCacheConfig,\n} from './types';\n\nimport { KeyFieldsContext } from './policies';\nimport { FragmentRegistryAPI } from './fragmentRegistry';\n\nimport {\n Reference,\n isReference,\n StoreValue,\n StoreObject,\n isField,\n DeepMerger,\n resultKeyNameFromField,\n shouldInclude,\n isNonNullObject,\n compact,\n FragmentMap,\n FragmentMapFunction,\n createFragmentMap,\n getFragmentDefinitions,\n isArray,\n} from '../../utilities';\n\nexport const {\n hasOwnProperty: hasOwn,\n} = Object.prototype;\n\nexport function isNullish(value: any): value is null | undefined {\n return value === null || value === void 0;\n}\n\nexport { isArray };\n\nexport function defaultDataIdFromObject(\n { __typename, id, _id }: Readonly<StoreObject>,\n context?: KeyFieldsContext,\n): string | undefined {\n if (typeof __typename === \"string\") {\n if (context) {\n context.keyObject =\n !isNullish(id) ? { id } :\n !isNullish(_id) ? { _id } :\n void 0;\n }\n\n // If there is no object.id, fall back to object._id.\n if (isNullish(id) && !isNullish(_id)) {\n id = _id;\n }\n\n if (!isNullish(id)) {\n return `${__typename}:${(\n typeof id === \"number\" ||\n typeof id === \"string\"\n ) ? id : JSON.stringify(id)}`;\n }\n }\n}\n\nconst defaultConfig = {\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n // Thanks to the shouldCanonizeResults helper, this should be the only line\n // you have to change to reenable canonization by default in the future.\n canonizeResults: false,\n};\n\nexport function normalizeConfig(config: InMemoryCacheConfig) {\n return compact(defaultConfig, config);\n}\n\nexport function shouldCanonizeResults(\n config: Pick<InMemoryCacheConfig, \"canonizeResults\">,\n): boolean {\n const value = config.canonizeResults;\n return value === void 0 ? defaultConfig.canonizeResults : value;\n}\n\nexport function getTypenameFromStoreObject(\n store: NormalizedCache,\n objectOrReference: StoreObject | Reference,\n): string | undefined {\n return isReference(objectOrReference)\n ? store.get(objectOrReference.__ref, \"__typename\") as string\n : objectOrReference && objectOrReference.__typename;\n}\n\nexport const TypeOrFieldNameRegExp = /^[_a-z][_0-9a-z]*/i;\n\nexport function fieldNameFromStoreName(storeFieldName: string): string {\n const match = storeFieldName.match(TypeOrFieldNameRegExp);\n return match ? match[0] : storeFieldName;\n}\n\nexport function selectionSetMatchesResult(\n selectionSet: SelectionSetNode,\n result: Record<string, any>,\n variables?: Record<string, any>,\n): boolean {\n if (isNonNullObject(result)) {\n return isArray(result)\n ? result.every(item => selectionSetMatchesResult(selectionSet, item, variables))\n : selectionSet.selections.every(field => {\n if (isField(field) && shouldInclude(field, variables)) {\n const key = resultKeyNameFromField(field);\n return hasOwn.call(result, key) &&\n (!field.selectionSet ||\n selectionSetMatchesResult(field.selectionSet, result[key], variables));\n }\n // If the selection has been skipped with @skip(true) or\n // @include(false), it should not count against the matching. If\n // the selection is not a field, it must be a fragment (inline or\n // named). We will determine if selectionSetMatchesResult for that\n // fragment when we get to it, so for now we return true.\n return true;\n });\n }\n return false;\n}\n\nexport function storeValueIsStoreObject(\n value: StoreValue,\n): value is StoreObject {\n return isNonNullObject(value) &&\n !isReference(value) &&\n !isArray(value);\n}\n\nexport function makeProcessedFieldsMerger() {\n return new DeepMerger;\n}\n\nexport function extractFragmentContext(\n document: DocumentNode,\n fragments?: FragmentRegistryAPI,\n): {\n fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n} {\n // FragmentMap consisting only of fragments defined directly in document, not\n // including other fragments registered in the FragmentRegistry.\n const fragmentMap = createFragmentMap(getFragmentDefinitions(document));\n return {\n fragmentMap,\n lookupFragment(name) {\n let def: FragmentDefinitionNode | null = fragmentMap[name];\n if (!def && fragments) {\n def = fragments.lookup(name);\n }\n return def || null;\n },\n };\n}\n","import { invariant } from '../../utilities/globals';\nimport { dep, OptimisticDependencyFunction } from 'optimism';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\n\nimport {\n isReference,\n StoreValue,\n StoreObject,\n Reference,\n makeReference,\n DeepMerger,\n maybeDeepFreeze,\n canUseWeakMap,\n isNonNullObject,\n} from '../../utilities';\nimport { NormalizedCache, NormalizedCacheObject } from './types';\nimport { hasOwn, fieldNameFromStoreName } from './helpers';\nimport { Policies, StorageType } from './policies';\nimport { Cache } from '../core/types/Cache';\nimport {\n SafeReadonly,\n Modifier,\n Modifiers,\n ReadFieldOptions,\n ToReferenceFunction,\n CanReadFunction,\n} from '../core/types/common';\n\nconst DELETE: any = Object.create(null);\nconst delModifier: Modifier<any> = () => DELETE;\nconst INVALIDATE: any = Object.create(null);\n\nexport abstract class EntityStore implements NormalizedCache {\n protected data: NormalizedCacheObject = Object.create(null);\n\n constructor(\n public readonly policies: Policies,\n public readonly group: CacheGroup,\n ) {}\n\n public abstract addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any,\n ): Layer;\n\n public abstract removeLayer(layerId: string): EntityStore;\n\n // Although the EntityStore class is abstract, it contains concrete\n // implementations of the various NormalizedCache interface methods that\n // are inherited by the Root and Layer subclasses.\n\n public toObject(): NormalizedCacheObject {\n return { ...this.data };\n }\n\n public has(dataId: string): boolean {\n return this.lookup(dataId, true) !== void 0;\n }\n\n public get(dataId: string, fieldName: string): StoreValue {\n this.group.depend(dataId, fieldName);\n if (hasOwn.call(this.data, dataId)) {\n const storeObject = this.data[dataId];\n if (storeObject && hasOwn.call(storeObject, fieldName)) {\n return storeObject[fieldName];\n }\n }\n if (fieldName === \"__typename\" &&\n hasOwn.call(this.policies.rootTypenamesById, dataId)) {\n return this.policies.rootTypenamesById[dataId];\n }\n if (this instanceof Layer) {\n return this.parent.get(dataId, fieldName);\n }\n }\n\n protected lookup(dataId: string, dependOnExistence?: boolean): StoreObject | undefined {\n // The has method (above) calls lookup with dependOnExistence = true, so\n // that it can later be invalidated when we add or remove a StoreObject for\n // this dataId. Any consumer who cares about the contents of the StoreObject\n // should not rely on this dependency, since the contents could change\n // without the object being added or removed.\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 public merge(\n older: string | StoreObject,\n newer: StoreObject | string,\n ): void {\n let dataId: string | undefined;\n\n // Convert unexpected references to ID strings.\n if (isReference(older)) older = older.__ref;\n if (isReference(newer)) newer = newer.__ref;\n\n const existing: StoreObject | undefined =\n typeof older === \"string\"\n ? this.lookup(dataId = older)\n : older;\n\n const incoming: StoreObject | undefined =\n typeof newer === \"string\"\n ? this.lookup(dataId = newer)\n : newer;\n\n // If newer was a string ID, but that ID was not defined in this store,\n // then there are no fields to be merged, so we're done.\n if (!incoming) return;\n\n invariant(\n typeof dataId === \"string\",\n \"store.merge expects a string ID\",\n );\n\n const merged: StoreObject =\n new DeepMerger(storeObjectReconciler).merge(existing, incoming);\n\n // Even if merged === existing, existing may have come from a lower\n // layer, so we always need to set this.data[dataId] on this level.\n this.data[dataId] = merged;\n\n if (merged !== existing) {\n delete this.refs[dataId];\n if (this.group.caching) {\n const fieldsToDirty: Record<string, 1> = Object.create(null);\n\n // If we added a new StoreObject where there was previously none, dirty\n // anything that depended on the existence of this dataId, such as the\n // EntityStore#has method.\n if (!existing) fieldsToDirty.__exists = 1;\n\n // Now invalidate dependents who called getFieldValue for any fields\n // that are changing as a result of this merge.\n Object.keys(incoming).forEach(storeFieldName => {\n if (!existing || existing[storeFieldName] !== merged[storeFieldName]) {\n // Always dirty the full storeFieldName, which may include\n // serialized arguments following the fieldName prefix.\n fieldsToDirty[storeFieldName] = 1;\n\n // Also dirty fieldNameFromStoreName(storeFieldName) if it's\n // different from storeFieldName and this field does not have\n // keyArgs configured, because that means the cache can't make\n // any assumptions about how field values with the same field\n // name but different arguments might be interrelated, so it\n // must err on the side of invalidating all field values that\n // share the same short fieldName, regardless of arguments.\n const fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName &&\n !this.policies.hasKeyArgs(merged.__typename, fieldName)) {\n fieldsToDirty[fieldName] = 1;\n }\n\n // If merged[storeFieldName] has become undefined, and this is the\n // Root layer, actually delete the property from the merged object,\n // which is guaranteed to have been created fresh in this method.\n if (merged[storeFieldName] === void 0 && !(this instanceof Layer)) {\n delete merged[storeFieldName];\n }\n }\n });\n\n if (fieldsToDirty.__typename &&\n !(existing && existing.__typename) &&\n // Since we return default root __typename strings\n // automatically from store.get, we don't need to dirty the\n // ROOT_QUERY.__typename field if merged.__typename is equal\n // to the default string (usually \"Query\").\n this.policies.rootTypenamesById[dataId] === merged.__typename) {\n delete fieldsToDirty.__typename;\n }\n\n Object.keys(fieldsToDirty).forEach(\n fieldName => this.group.dirty(dataId as string, fieldName));\n }\n }\n }\n\n public modify(\n dataId: string,\n fields: Modifier<any> | Modifiers,\n ): boolean {\n const storeObject = this.lookup(dataId);\n\n if (storeObject) {\n const changedFields: Record<string, any> = Object.create(null);\n let needToMerge = false;\n let allDeleted = true;\n\n const sharedDetails = {\n DELETE,\n INVALIDATE,\n isReference,\n toReference: this.toReference,\n canRead: this.canRead,\n readField: <V = StoreValue>(\n fieldNameOrOptions: string | ReadFieldOptions,\n from?: StoreObject | Reference,\n ) => this.policies.readField<V>(\n typeof fieldNameOrOptions === \"string\" ? {\n fieldName: fieldNameOrOptions,\n from: from || makeReference(dataId),\n } : fieldNameOrOptions,\n { store: this },\n ),\n };\n\n Object.keys(storeObject).forEach(storeFieldName => {\n const fieldName = fieldNameFromStoreName(storeFieldName);\n let fieldValue = storeObject[storeFieldName];\n if (fieldValue === void 0) return;\n const modify: Modifier<StoreValue> = typeof fields === \"function\"\n ? fields\n : fields[storeFieldName] || fields[fieldName];\n if (modify) {\n let newValue = modify === delModifier ? DELETE :\n modify(maybeDeepFreeze(fieldValue), {\n ...sharedDetails,\n fieldName,\n storeFieldName,\n storage: this.getStorage(dataId, storeFieldName),\n });\n if (newValue === INVALIDATE) {\n this.group.dirty(dataId, storeFieldName);\n } else {\n if (newValue === DELETE) newValue = void 0;\n if (newValue !== fieldValue) {\n changedFields[storeFieldName] = newValue;\n needToMerge = true;\n fieldValue = newValue;\n }\n }\n }\n if (fieldValue !== void 0) {\n allDeleted = false;\n }\n });\n\n if (needToMerge) {\n this.merge(dataId, changedFields);\n\n if (allDeleted) {\n if (this instanceof Layer) {\n this.data[dataId] = void 0;\n } else {\n delete this.data[dataId];\n }\n this.group.dirty(dataId, \"__exists\");\n }\n\n return true;\n }\n }\n\n return false;\n }\n\n // If called with only one argument, removes the entire entity\n // identified by dataId. If called with a fieldName as well, removes all\n // fields of that entity whose names match fieldName according to the\n // fieldNameFromStoreName helper function. If called with a fieldName\n // and variables, removes all fields of that entity whose names match fieldName\n // and whose arguments when cached exactly match the variables passed.\n public delete(\n dataId: string,\n fieldName?: string,\n args?: Record<string, any>,\n ) {\n const storeObject = this.lookup(dataId);\n if (storeObject) {\n const typename = this.getFieldValue<string>(storeObject, \"__typename\");\n const storeFieldName = fieldName && args\n ? this.policies.getStoreFieldName({ typename, fieldName, args })\n : fieldName;\n return this.modify(dataId, storeFieldName ? {\n [storeFieldName]: delModifier,\n } : delModifier);\n }\n return false;\n }\n\n public evict(\n options: Cache.EvictOptions,\n limit: EntityStore,\n ): boolean {\n let evicted = false;\n if (options.id) {\n if (hasOwn.call(this.data, options.id)) {\n evicted = this.delete(options.id, options.fieldName, options.args);\n }\n if (this instanceof Layer && this !== limit) {\n evicted = this.parent.evict(options, limit) || evicted;\n }\n // Always invalidate the field to trigger rereading of watched\n // queries, even if no cache data was modified by the eviction,\n // because queries may depend on computed fields with custom read\n // functions, whose values are not stored in the EntityStore.\n if (options.fieldName || evicted) {\n this.group.dirty(options.id, options.fieldName || \"__exists\");\n }\n }\n return evicted;\n }\n\n public clear(): void {\n this.replace(null);\n }\n\n public extract(): NormalizedCacheObject {\n const obj = this.toObject();\n const extraRootIds: string[] = [];\n this.getRootIdSet().forEach(id => {\n if (!hasOwn.call(this.policies.rootTypenamesById, id)) {\n extraRootIds.push(id);\n }\n });\n if (extraRootIds.length) {\n obj.__META = { extraRootIds: extraRootIds.sort() };\n }\n return obj;\n }\n\n public replace(newData: NormalizedCacheObject | null): void {\n Object.keys(this.data).forEach(dataId => {\n if (!(newData && hasOwn.call(newData, dataId))) {\n this.delete(dataId);\n }\n });\n if (newData) {\n const { __META, ...rest } = newData;\n Object.keys(rest).forEach(dataId => {\n this.merge(dataId, rest[dataId] as StoreObject);\n });\n if (__META) {\n __META.extraRootIds.forEach(this.retain, this);\n }\n }\n }\n\n public abstract getStorage(\n idOrObj: string | StoreObject,\n ...storeFieldNames: (string | number)[]\n ): StorageType;\n\n // Maps root entity IDs to the number of times they have been retained, minus\n // the number of times they have been released. Retained entities keep other\n // entities they reference (even indirectly) from being garbage collected.\n private rootIds: {\n [rootId: string]: number;\n } = Object.create(null);\n\n public retain(rootId: string): number {\n return this.rootIds[rootId] = (this.rootIds[rootId] || 0) + 1;\n }\n\n public release(rootId: string): number {\n if (this.rootIds[rootId] > 0) {\n const count = --this.rootIds[rootId];\n if (!count) delete this.rootIds[rootId];\n return count;\n }\n return 0;\n }\n\n // Return a Set<string> of all the ID strings that have been retained by\n // this layer/root *and* any layers/roots beneath it.\n public getRootIdSet(ids = new Set<string>()) {\n Object.keys(this.rootIds).forEach(ids.add, ids);\n if (this instanceof Layer) {\n this.parent.getRootIdSet(ids);\n } else {\n // Official singleton IDs like ROOT_QUERY and ROOT_MUTATION are\n // always considered roots for garbage collection, regardless of\n // their retainment counts in this.rootIds.\n Object.keys(this.policies.rootTypenamesById).forEach(ids.add, ids);\n }\n return ids;\n }\n\n // The goal of garbage collection is to remove IDs from the Root layer of the\n // store that are no longer reachable starting from any IDs that have been\n // explicitly retained (see retain and release, above). Returns an array of\n // dataId strings that were removed from the store.\n public gc() {\n const ids = this.getRootIdSet();\n const snapshot = this.toObject();\n ids.forEach(id => {\n if (hasOwn.call(snapshot, id)) {\n // Because we are iterating over an ECMAScript Set, the IDs we add here\n // will be visited in later iterations of the forEach loop only if they\n // were not previously contained by the Set.\n Object.keys(this.findChildRefIds(id)).forEach(ids.add, ids);\n // By removing IDs from the snapshot object here, we protect them from\n // getting removed from the root store layer below.\n delete snapshot[id];\n }\n });\n const idsToRemove = Object.keys(snapshot);\n if (idsToRemove.length) {\n let root: EntityStore = this;\n while (root instanceof Layer) root = root.parent;\n idsToRemove.forEach(id => root.delete(id));\n }\n return idsToRemove;\n }\n\n // Lazily tracks { __ref: <dataId> } strings contained by this.data[dataId].\n private refs: {\n [dataId: string]: Record<string, true>;\n } = Object.create(null);\n\n public findChildRefIds(dataId: string): Record<string, true> {\n if (!hasOwn.call(this.refs, dataId)) {\n const found = this.refs[dataId] = Object.create(null);\n const root = this.data[dataId];\n if (!root) return found;\n\n const workSet = new Set<Record<string | number, any>>([root]);\n // Within the store, only arrays and objects can contain child entity\n // references, so we can prune the traversal using this predicate:\n workSet.forEach(obj => {\n if (isReference(obj)) {\n found[obj.__ref] = true;\n // In rare cases, a { __ref } Reference object may have other fields.\n // This often indicates a mismerging of References with StoreObjects,\n // but garbage collection should not be fooled by a stray __ref\n // property in a StoreObject (ignoring all the other fields just\n // because the StoreObject looks like a Reference). To avoid this\n // premature termination of findChildRefIds recursion, we fall through\n // to the code below, which will handle any other properties of obj.\n }\n if (isNonNullObject(obj)) {\n Object.keys(obj).forEach(key => {\n const child = obj[key];\n // No need to add primitive values to the workSet, since they cannot\n // contain reference objects.\n if (isNonNullObject(child)) {\n workSet.add(child);\n }\n });\n }\n });\n }\n return this.refs[dataId];\n }\n\n // Used to compute cache keys specific to this.group.\n public makeCacheKey(...args: any[]): object;\n public makeCacheKey() {\n return this.group.keyMaker.lookupArray(arguments);\n }\n\n // Bound function that can be passed around to provide easy access to fields\n // of Reference objects as well as ordinary objects.\n public getFieldValue = <T = StoreValue>(\n objectOrReference: StoreObject | Reference | undefined,\n storeFieldName: string,\n ) => maybeDeepFreeze(\n isReference(objectOrReference)\n ? this.get(objectOrReference.__ref, storeFieldName)\n : objectOrReference && objectOrReference[storeFieldName]\n ) as SafeReadonly<T>;\n\n // Returns true for non-normalized StoreObjects and non-dangling\n // References, indicating that readField(name, objOrRef) has a chance of\n // working. Useful for filtering out dangling references from lists.\n public canRead: CanReadFunction = objOrRef => {\n return isReference(objOrRef)\n ? this.has(objOrRef.__ref)\n : typeof objOrRef === \"object\";\n };\n\n // Bound function that converts an id or an object with a __typename and\n // primary key fields to a Reference object. If called with a Reference object,\n // that same Reference object is returned. Pass true for mergeIntoStore to persist\n // an object into the store.\n public toReference: ToReferenceFunction = (\n objOrIdOrRef,\n mergeIntoStore,\n ) => {\n if (typeof objOrIdOrRef === \"string\") {\n return makeReference(objOrIdOrRef);\n }\n\n if (isReference(objOrIdOrRef)) {\n return objOrIdOrRef;\n }\n\n const [id] = this.policies.identify(objOrIdOrRef);\n\n if (id) {\n const ref = makeReference(id);\n if (mergeIntoStore) {\n this.merge(id, objOrIdOrRef);\n }\n return ref;\n }\n };\n}\n\nexport type FieldValueGetter = EntityStore[\"getFieldValue\"];\n\n// A single CacheGroup represents a set of one or more EntityStore objects,\n// typically the Root store in a CacheGroup by itself, and all active Layer\n// stores in a group together. A single EntityStore object belongs to only\n// one CacheGroup, store.group. The CacheGroup is responsible for tracking\n// dependencies, so store.group is helpful for generating unique keys for\n// cached results that need to be invalidated when/if those dependencies\n// change. If we used the EntityStore objects themselves as cache keys (that\n// is, store rather than store.group), the cache would become unnecessarily\n// fragmented by all the different Layer objects. Instead, the CacheGroup\n// approach allows all optimistic Layer objects in the same linked list to\n// belong to one CacheGroup, with the non-optimistic Root object belonging\n// to another CacheGroup, allowing resultCaching dependencies to be tracked\n// separately for optimistic and non-optimistic entity data.\nclass CacheGroup {\n private d: OptimisticDependencyFunction<string> | null = null;\n\n // Used by the EntityStore#makeCacheKey method to compute cache keys\n // specific to this CacheGroup.\n public keyMaker: Trie<object>;\n\n constructor(\n public readonly caching: boolean,\n private parent: CacheGroup | null = null,\n ) {\n this.resetCaching();\n }\n\n public resetCaching() {\n this.d = this.caching ? dep<string>() : null;\n this.keyMaker = new Trie(canUseWeakMap);\n }\n\n public depend(dataId: string, storeFieldName: string) {\n if (this.d) {\n this.d(makeDepKey(dataId, storeFieldName));\n const fieldName = fieldNameFromStoreName(storeFieldName);\n if (fieldName !== storeFieldName) {\n // Fields with arguments that contribute extra identifying\n // information to the fieldName (thus forming the storeFieldName)\n // depend not only on the full storeFieldName but also on the\n // short fieldName, so the field can be invalidated using either\n // level of specificity.\n this.d(makeDepKey(dataId, fieldName));\n }\n if (this.parent) {\n this.parent.depend(dataId, storeFieldName);\n }\n }\n }\n\n public dirty(dataId: string, storeFieldName: string) {\n if (this.d) {\n this.d.dirty(\n makeDepKey(dataId, storeFieldName),\n // When storeFieldName === \"__exists\", that means the entity identified\n // by dataId has either disappeared from the cache or was newly added,\n // so the result caching system would do well to \"forget everything it\n // knows\" about that object. To achieve that kind of invalidation, we\n // not only dirty the associated result cache entry, but also remove it\n // completely from the dependency graph. For the optimism implementation\n // details, see https://github.com/benjamn/optimism/pull/195.\n storeFieldName === \"__exists\" ? \"forget\" : \"setDirty\",\n );\n }\n }\n}\n\nfunction makeDepKey(dataId: string, storeFieldName: string) {\n // Since field names cannot have '#' characters in them, this method\n // of joining the field name and the ID should be unambiguous, and much\n // cheaper than JSON.stringify([dataId, fieldName]).\n return storeFieldName + '#' + dataId;\n}\n\nexport function maybeDependOnExistenceOfEntity(\n store: NormalizedCache,\n entityId: string,\n) {\n if (supportsResultCaching(store)) {\n // We use this pseudo-field __exists elsewhere in the EntityStore code to\n // represent changes in the existence of the entity object identified by\n // entityId. This dependency gets reliably dirtied whenever an object with\n // this ID is deleted (or newly created) within this group, so any result\n // cache entries (for example, StoreReader#executeSelectionSet results) that\n // depend on __exists for this entityId will get dirtied as well, leading to\n // the eventual recomputation (instead of reuse) of those result objects the\n // next time someone reads them from the cache.\n store.group.depend(entityId, \"__exists\");\n }\n}\n\nexport namespace EntityStore {\n // Refer to this class as EntityStore.Root outside this namespace.\n export class Root extends EntityStore {\n constructor({\n policies,\n resultCaching = true,\n seed,\n }: {\n policies: Policies;\n resultCaching?: boolean;\n seed?: NormalizedCacheObject;\n }) {\n super(policies, new CacheGroup(resultCaching));\n if (seed) this.replace(seed);\n }\n\n public readonly stump = new Stump(this);\n\n public addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any,\n ): Layer {\n // Adding an optimistic Layer on top of the Root actually adds the Layer\n // on top of the Stump, so the Stump always comes between the Root and\n // any Layer objects that we've added.\n return this.stump.addLayer(layerId, replay);\n }\n\n public removeLayer(): Root {\n // Never remove the root layer.\n return this;\n }\n\n public readonly storageTrie = new Trie<StorageType>(canUseWeakMap);\n public getStorage(): StorageType {\n return this.storageTrie.lookupArray(arguments);\n }\n }\n}\n\n// Not exported, since all Layer instances are created by the addLayer method\n// of the EntityStore.Root class.\nclass Layer extends EntityStore {\n constructor(\n public readonly id: string,\n public readonly parent: EntityStore,\n public readonly replay: (layer: EntityStore) => any,\n public readonly group: CacheGroup,\n ) {\n super(parent.policies, group);\n replay(this);\n }\n\n public addLayer(\n layerId: string,\n replay: (layer: EntityStore) => any,\n ): Layer {\n return new Layer(layerId, this, replay, this.group);\n }\n\n public removeLayer(layerId: string): EntityStore {\n // Remove all instances of the given id, not just the first one.\n const parent = this.parent.removeLayer(layerId);\n\n if (layerId === this.id) {\n if (this.group.caching) {\n // Dirty every ID we're removing. Technically we might be able to avoid\n // dirtying fields that have values in higher layers, but we don't have\n // easy access to higher layers here, and we're about to recreate those\n // layers anyway (see parent.addLayer below).\n Object.keys(this.data).forEach(dataId => {\n const ownStoreObject = this.data[dataId];\n const parentStoreObject = parent[\"lookup\"](dataId);\n if (!parentStoreObject) {\n // The StoreObject identified by dataId was defined in this layer\n // but will be undefined in the parent layer, so we can delete the\n // whole entity using this.delete(dataId). Since we're about to\n // throw this layer away, the only goal of this deletion is to dirty\n // the removed fields.\n this.delete(dataId);\n } else if (!ownStoreObject) {\n // This layer had an entry for dataId but it was undefined, which\n // means the entity was deleted in this layer, and it's about to\n // become undeleted when we remove this layer, so we need to dirty\n // all fields that are about to be reexposed.\n this.group.dirty(dataId, \"__exists\");\n Object.keys(parentStoreObject).forEach(storeFieldName => {\n this.group.dirty(dataId, storeFieldName);\n });\n } else if (ownStoreObject !== parentStoreObject) {\n // If ownStoreObject is not exactly the same as parentStoreObject,\n // dirty any fields whose values will change as a result of this\n // removal.\n Object.keys(ownStoreObject).forEach(storeFieldName => {\n if (!equal(ownStoreObject[storeFieldName],\n parentStoreObject[storeFieldName])) {\n this.group.dirty(dataId, storeFieldName);\n }\n });\n }\n });\n }\n\n return parent;\n }\n\n // No changes are necessary if the parent chain remains identical.\n if (parent === this.parent) return this;\n\n // Recreate this layer on top of the new parent.\n return parent.addLayer(this.id, this.replay);\n }\n\n public toObject(): NormalizedCacheObject {\n return {\n ...this.parent.toObject(),\n ...this.data,\n };\n }\n\n public findChildRefIds(dataId: string): Record<string, true> {\n const fromParent = this.parent.findChildRefIds(dataId);\n return hasOwn.call(this.data, dataId) ? {\n ...fromParent,\n ...super.findChildRefIds(dataId),\n } : fromParent;\n }\n\n public getStorage(): StorageType {\n let p: EntityStore = this.parent;\n while ((p as Layer).parent) p = (p as Layer).parent;\n return p.getStorage.apply(p, arguments);\n }\n}\n\n// Represents a Layer permanently installed just above the Root, which allows\n// reading optimistically (and registering optimistic dependencies) even when\n// no optimistic layers are currently active. The stump.group CacheGroup object\n// is shared by any/all Layer objects added on top of the Stump.\nclass Stump extends Layer {\n constructor(root: EntityStore.Root) {\n super(\n \"EntityStore.Stump\",\n root,\n () => {},\n new CacheGroup(root.group.caching, root.group),\n );\n }\n\n public removeLayer() {\n // Never remove the Stump layer.\n return this;\n }\n\n public merge() {\n // We never want to write any data into the Stump, so we forward any merge\n // calls to the Root instead. Another option here would be to throw an\n // exception, but the toReference(object, true) function can sometimes\n // trigger Stump writes (which used to be Root writes, before the Stump\n // concept was introduced).\n return this.parent.merge.apply(this.parent, arguments);\n }\n}\n\nfunction storeObjectReconciler(\n existingObject: StoreObject,\n incomingObject: StoreObject,\n property: string,\n): StoreValue {\n const existingValue = existingObject[property];\n const incomingValue = incomingObject[property];\n // Wherever there is a key collision, prefer the incoming value, unless\n // it is deeply equal to the existing value. It's worth checking deep\n // equality here (even though blindly returning incoming would be\n // logically correct) because preserving the referential identity of\n // existing data can prevent needless rereading and rerendering.\n return equal(existingValue, incomingValue) ? existingValue : incomingValue;\n}\n\nexport function supportsResultCaching(store: any): store is EntityStore {\n // When result caching is disabled, store.depend will be null.\n return !!(store instanceof EntityStore && store.group.caching);\n}\n","import { invariant, InvariantError } from '../../utilities/globals';\n\nimport {\n DocumentNode,\n FieldNode,\n Kind,\n SelectionSetNode,\n} from 'graphql';\nimport { wrap, OptimisticWrapperFunction } from 'optimism';\n\nimport {\n isField,\n resultKeyNameFromField,\n Reference,\n isReference,\n makeReference,\n StoreObject,\n FragmentMap,\n shouldInclude,\n addTypenameToDocument,\n getDefaultValues,\n getMainDefinition,\n getQueryDefinition,\n getFragmentFromSelection,\n maybeDeepFreeze,\n mergeDeepArray,\n DeepMerger,\n isNonNullObject,\n canUseWeakMap,\n compact,\n FragmentMapFunction,\n} from '../../utilities';\nimport { Cache } from '../core/types/Cache';\nimport {\n DiffQueryAgainstStoreOptions,\n InMemoryCacheConfig,\n NormalizedCache,\n ReadMergeModifyContext,\n} from './types';\nimport { maybeDependOnExistenceOfEntity, supportsResultCaching } from './entityStore';\nimport { isArray, extractFragmentContext, getTypenameFromStoreObject, shouldCanonizeResults } from './helpers';\nimport { Policies } from './policies';\nimport { InMemoryCache } from './inMemoryCache';\nimport { MissingFieldError, MissingTree } from '../core/types/common';\nimport { canonicalStringify, ObjectCanon } from './object-canon';\n\nexport type VariableMap = { [name: string]: any };\n\ninterface ReadContext extends ReadMergeModifyContext {\n query: DocumentNode;\n policies: Policies;\n canonizeResults: boolean;\n fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n};\n\nexport type ExecResult<R = any> = {\n result: R;\n missing?: MissingTree;\n};\n\ntype ExecSelectionSetOptions = {\n selectionSet: SelectionSetNode;\n objectOrReference: StoreObject | Reference;\n enclosingRef: Reference;\n context: ReadContext;\n};\n\ntype ExecSubSelectedArrayOptions = {\n field: FieldNode;\n array: readonly any[];\n enclosingRef: Reference;\n context: ReadContext;\n};\n\nexport interface StoreReaderConfig {\n cache: InMemoryCache,\n addTypename?: boolean;\n resultCacheMaxSize?: number;\n canonizeResults?: boolean;\n canon?: ObjectCanon;\n fragments?: InMemoryCacheConfig[\"fragments\"];\n}\n\n// Arguments type after keyArgs translation.\ntype ExecSelectionSetKeyArgs = [\n SelectionSetNode,\n StoreObject | Reference,\n ReadMergeModifyContext,\n boolean,\n];\n\nfunction execSelectionSetKeyArgs(\n options: ExecSelectionSetOptions,\n): ExecSelectionSetKeyArgs {\n return [\n options.selectionSet,\n options.objectOrReference,\n options.context,\n // We split out this property so we can pass different values\n // independently without modifying options.context itself.\n options.context.canonizeResults,\n ];\n}\n\nexport class StoreReader {\n // cached version of executeSelectionSet\n private executeSelectionSet: OptimisticWrapperFunction<\n [ExecSelectionSetOptions], // Actual arguments tuple type.\n ExecResult, // Actual return type.\n ExecSelectionSetKeyArgs\n >;\n\n // cached version of executeSubSelectedArray\n private executeSubSelectedArray: OptimisticWrapperFunction<\n [ExecSubSelectedArrayOptions],\n ExecResult<any>,\n [ExecSubSelectedArrayOptions]>;\n\n private config: {\n cache: InMemoryCache,\n addTypename: boolean;\n resultCacheMaxSize?: number;\n canonizeResults: boolean;\n fragments?: InMemoryCacheConfig[\"fragments\"];\n };\n\n private knownResults = new (\n canUseWeakMap ? WeakMap : Map\n )<Record<string, any>, SelectionSetNode>();\n\n public canon: ObjectCanon;\n public resetCanon() {\n this.canon = new ObjectCanon;\n }\n\n constructor(config: StoreReaderConfig) {\n this.config = compact(config, {\n addTypename: config.addTypename !== false,\n canonizeResults: shouldCanonizeResults(config),\n });\n\n this.canon = config.canon || new ObjectCanon;\n\n this.executeSelectionSet = wrap(options => {\n const { canonizeResults } = options.context;\n\n const peekArgs = execSelectionSetKeyArgs(options);\n\n // Negate this boolean option so we can find out if we've already read\n // this result using the other boolean value.\n peekArgs[3] = !canonizeResults;\n\n const other = this.executeSelectionSet.peek(...peekArgs);\n\n if (other) {\n if (canonizeResults) {\n return {\n ...other,\n // If we previously read this result without canonizing it, we can\n // reuse that result simply by canonizing it now.\n result: this.canon.admit(other.result),\n };\n }\n // If we previously read this result with canonization enabled, we can\n // return that canonized result as-is.\n return other;\n }\n\n maybeDependOnExistenceOfEntity(\n options.context.store,\n options.enclosingRef.__ref,\n );\n\n // Finally, if we didn't find any useful previous results, run the real\n // execSelectionSetImpl method with the given options.\n return this.execSelectionSetImpl(options);\n\n }, {\n max: this.config.resultCacheMaxSize,\n keyArgs: execSelectionSetKeyArgs,\n // Note that the parameters of makeCacheKey are determined by the\n // array returned by keyArgs.\n makeCacheKey(selectionSet, parent, context, canonizeResults) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(\n selectionSet,\n isReference(parent) ? parent.__ref : parent,\n context.varString,\n canonizeResults,\n );\n }\n }\n });\n\n this.executeSubSelectedArray = wrap((options: ExecSubSelectedArrayOptions) => {\n maybeDependOnExistenceOfEntity(\n options.context.store,\n options.enclosingRef.__ref,\n );\n return this.execSubSelectedArrayImpl(options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey({ field, array, context }) {\n if (supportsResultCaching(context.store)) {\n return context.store.makeCacheKey(\n field,\n array,\n context.varString,\n );\n }\n }\n });\n }\n\n /**\n * Given a store and a query, return as much of the result as possible and\n * identify if any data was missing from the store.\n * @param {DocumentNode} query A parsed GraphQL query document\n * @param {Store} store The Apollo Client store object\n * @return {result: Object, complete: [boolean]}\n */\n public diffQueryAgainstStore<T>({\n store,\n query,\n rootId = 'ROOT_QUERY',\n variables,\n returnPartialData = true,\n canonizeResults = this.config.canonizeResults,\n }: DiffQueryAgainstStoreOptions): Cache.DiffResult<T> {\n const policies = this.config.cache.policies;\n\n variables = {\n ...getDefaultValues(getQueryDefinition(query)),\n ...variables!,\n };\n\n const rootRef = makeReference(rootId);\n const execResult = this.executeSelectionSet({\n selectionSet: getMainDefinition(query).selectionSet,\n objectOrReference: rootRef,\n enclosingRef: rootRef,\n context: {\n store,\n query,\n policies,\n variables,\n varString: canonicalStringify(variables),\n canonizeResults,\n ...extractFragmentContext(query, this.config.fragments),\n },\n });\n\n let missing: MissingFieldError[] | undefined;\n if (execResult.missing) {\n // For backwards compatibility we still report an array of\n // MissingFieldError objects, even though there will only ever be at most\n // one of them, now that all missing field error messages are grouped\n // together in the execResult.missing tree.\n missing = [new MissingFieldError(\n firstMissing(execResult.missing)!,\n execResult.missing,\n query,\n variables,\n )];\n if (!returnPartialData) {\n throw missing[0];\n }\n }\n\n return {\n result: execResult.result,\n complete: !missing,\n missing,\n };\n }\n\n public isFresh(\n result: Record<string, any>,\n parent: StoreObject | Reference,\n selectionSet: SelectionSetNode,\n context: ReadMergeModifyContext,\n ): boolean {\n if (supportsResultCaching(context.store) &&\n this.knownResults.get(result) === selectionSet) {\n const latest = this.executeSelectionSet.peek(\n selectionSet,\n parent,\n context,\n // If result is canonical, then it could only have been previously\n // cached by the canonizing version of executeSelectionSet, so we can\n // avoid checking both possibilities here.\n this.canon.isKnown(result),\n );\n if (latest && result === latest.result) {\n return true;\n }\n }\n return false;\n }\n\n // Uncached version of executeSelectionSet.\n private execSelectionSetImpl({\n selectionSet,\n objectOrReference,\n enclosingRef,\n context,\n }: ExecSelectionSetOptions): ExecResult {\n if (isReference(objectOrReference) &&\n !context.policies.rootTypenamesById[objectOrReference.__ref] &&\n !context.store.has(objectOrReference.__ref)) {\n return {\n result: this.canon.empty,\n missing: `Dangling reference to missing ${objectOrReference.__ref} object`,\n };\n }\n\n const { variables, policies, store } = context;\n const typename = store.getFieldValue<string>(objectOrReference, \"__typename\");\n\n const objectsToMerge: Record<string, any>[] = [];\n let missing: MissingTree | undefined;\n const missingMerger = new DeepMerger();\n\n if (this.config.addTypename &&\n typeof typename === \"string\" &&\n !policies.rootIdsByTypename[typename]) {\n // Ensure we always include a default value for the __typename\n // field, if we have one, and this.config.addTypename is true. Note\n // that this field can be overridden by other merged objects.\n objectsToMerge.push({ __typename: typename });\n }\n\n function handleMissing<T>(result: ExecResult<T>, resultName: string): T {\n if (result.missing) {\n missing = missingMerger.merge(missing, { [resultName]: result.missing });\n }\n return result.result;\n }\n\n const workSet = new Set(selectionSet.selections);\n\n workSet.forEach(selection => {\n // Omit fields with directives @skip(if: <truthy value>) or\n // @include(if: <falsy value>).\n if (!shouldInclude(selection, variables)) return;\n\n if (isField(selection)) {\n let fieldValue = policies.readField({\n fieldName: selection.name.value,\n field: selection,\n variables: context.variables,\n from: objectOrReference,\n }, context);\n\n const resultName = resultKeyNameFromField(selection);\n\n if (fieldValue === void 0) {\n if (!addTypenameToDocument.added(selection)) {\n missing = missingMerger.merge(missing, {\n [resultName]: `Can't find field '${\n selection.name.value\n }' on ${\n isReference(objectOrReference)\n ? objectOrReference.__ref + \" object\"\n : \"object \" + JSON.stringify(objectOrReference, null, 2)\n }`\n });\n }\n\n } else if (isArray(fieldValue)) {\n fieldValue = handleMissing(this.executeSubSelectedArray({\n field: selection,\n array: fieldValue,\n enclosingRef,\n context,\n }), resultName);\n\n } else if (!selection.selectionSet) {\n // If the field does not have a selection set, then we handle it\n // as a scalar value. To keep this.canon from canonicalizing\n // this value, we use this.canon.pass to wrap fieldValue in a\n // Pass object that this.canon.admit will later unwrap as-is.\n if (context.canonizeResults) {\n fieldValue = this.canon.pass(fieldValue);\n }\n\n } else if (fieldValue != null) {\n // In this case, because we know the field has a selection set,\n // it must be trying to query a GraphQLObjectType, which is why\n // fieldValue must be != null.\n fieldValue = handleMissing(this.executeSelectionSet({\n selectionSet: selection.selectionSet,\n objectOrReference: fieldValue as StoreObject | Reference,\n enclosingRef: isReference(fieldValue) ? fieldValue : enclosingRef,\n context,\n }), resultName);\n }\n\n if (fieldValue !== void 0) {\n objectsToMerge.push({ [resultName]: fieldValue });\n }\n\n } else {\n const fragment = getFragmentFromSelection(\n selection,\n context.lookupFragment,\n );\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw new InvariantError(`No fragment named ${selection.name.value}`);\n }\n\n if (fragment && policies.fragmentMatches(fragment, typename)) {\n fragment.selectionSet.selections.forEach(workSet.add, workSet);\n }\n }\n });\n\n const result = mergeDeepArray(objectsToMerge);\n const finalResult: ExecResult = { result, missing };\n const frozen = context.canonizeResults\n ? this.canon.admit(finalResult)\n // Since this.canon is normally responsible for freezing results (only in\n // development), freeze them manually if canonization is disabled.\n : maybeDeepFreeze(finalResult);\n\n // Store this result with its selection set so that we can quickly\n // recognize it again in the StoreReader#isFresh method.\n if (frozen.result) {\n this.knownResults.set(frozen.result, selectionSet);\n }\n\n return frozen;\n }\n\n // Uncached version of executeSubSelectedArray.\n private execSubSelectedArrayImpl({\n field,\n array,\n enclosingRef,\n context,\n }: ExecSubSelectedArrayOptions): ExecResult {\n let missing: MissingTree | undefined;\n let missingMerger = new DeepMerger<MissingTree[]>();\n\n function handleMissing<T>(childResult: ExecResult<T>, i: number): T {\n if (childResult.missing) {\n missing = missingMerger.merge(missing, { [i]: childResult.missing });\n }\n return childResult.result;\n }\n\n if (field.selectionSet) {\n array = array.filter(context.store.canRead);\n }\n\n array = array.map((item, i) => {\n // null value in array\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse\n if (isArray(item)) {\n return handleMissing(this.executeSubSelectedArray({\n field,\n array: item,\n enclosingRef,\n context,\n }), i);\n }\n\n // This is an object, run the selection set on it\n if (field.selectionSet) {\n return handleMissing(this.executeSelectionSet({\n selectionSet: field.selectionSet,\n objectOrReference: item,\n enclosingRef: isReference(item) ? item : enclosingRef,\n context,\n }), i);\n }\n\n if (__DEV__) {\n assertSelectionSetForIdValue(context.store, field, item);\n }\n\n return item;\n });\n\n return {\n result: context.canonizeResults ? this.canon.admit(array) : array,\n missing,\n };\n }\n}\n\nfunction firstMissing(tree: MissingTree): string | undefined {\n try {\n JSON.stringify(tree, (_, value) => {\n if (typeof value === \"string\") throw value;\n return value;\n });\n } catch (result) {\n return result;\n }\n}\n\nfunction assertSelectionSetForIdValue(\n store: NormalizedCache,\n field: FieldNode,\n fieldValue: any,\n) {\n if (!field.selectionSet) {\n const workSet = new Set([fieldValue]);\n workSet.forEach(value => {\n if (isNonNullObject(value)) {\n invariant(\n !isReference(value),\n `Missing selection set for object of type ${\n getTypenameFromStoreObject(store, value)\n } returned for query field ${field.name.value}`,\n );\n Object.values(value).forEach(workSet.add, workSet);\n }\n });\n }\n}\n","import { invariant } from \"../../utilities/globals\";\n\nimport {\n argumentsObjectFromField,\n DeepMerger,\n isNonEmptyArray,\n isNonNullObject,\n} from \"../../utilities\";\n\nimport { hasOwn, isArray } from \"./helpers\";\nimport {\n KeySpecifier,\n KeyFieldsFunction,\n KeyArgsFunction,\n} from \"./policies\";\n\n// Mapping from JSON-encoded KeySpecifier strings to associated information.\nconst specifierInfoCache: Record<string, {\n paths?: string[][];\n keyFieldsFn?: KeyFieldsFunction;\n keyArgsFn?: KeyArgsFunction;\n}> = Object.create(null);\n\nfunction lookupSpecifierInfo(spec: KeySpecifier) {\n // It's safe to encode KeySpecifier arrays with JSON.stringify, since they're\n // just arrays of strings or nested KeySpecifier arrays, and the order of the\n // array elements is important (and suitably preserved by JSON.stringify).\n const cacheKey = JSON.stringify(spec);\n return specifierInfoCache[cacheKey] ||\n (specifierInfoCache[cacheKey] = Object.create(null));\n}\n\nexport function keyFieldsFnFromSpecifier(\n specifier: KeySpecifier,\n): KeyFieldsFunction {\n const info = lookupSpecifierInfo(specifier);\n\n return info.keyFieldsFn || (info.keyFieldsFn = (\n object,\n context,\n ) => {\n const extract: typeof extractKey =\n (from, key) => context.readField(key, from);\n\n const keyObject = context.keyObject = collectSpecifierPaths(\n specifier,\n schemaKeyPath => {\n let extracted = extractKeyPath(\n context.storeObject,\n schemaKeyPath,\n // Using context.readField to extract paths from context.storeObject\n // allows the extraction to see through Reference objects and respect\n // custom read functions.\n extract,\n );\n\n if (\n extracted === void 0 &&\n object !== context.storeObject &&\n hasOwn.call(object, schemaKeyPath[0])\n ) {\n // If context.storeObject fails to provide a value for the requested\n // path, fall back to the raw result object, if it has a top-level key\n // matching the first key in the path (schemaKeyPath[0]). This allows\n // key fields included in the written data to be saved in the cache\n // even if they are not selected explicitly in context.selectionSet.\n // Not being mentioned by context.selectionSet is convenient here,\n // since it means these extra fields cannot be affected by field\n // aliasing, which is why we can use extractKey instead of\n // context.readField for this extraction.\n extracted = extractKeyPath(object, schemaKeyPath, extractKey);\n }\n\n invariant(\n extracted !== void 0,\n `Missing field '${schemaKeyPath.join('.')}' while extracting keyFields from ${\n JSON.stringify(object)\n }`,\n );\n\n return extracted;\n },\n );\n\n return `${context.typename}:${JSON.stringify(keyObject)}`;\n });\n}\n\n// The keyArgs extraction process is roughly analogous to keyFields extraction,\n// but there are no aliases involved, missing fields are tolerated (by merely\n// omitting them from the key), and drawing from field.directives or variables\n// is allowed (in addition to drawing from the field's arguments object).\n// Concretely, these differences mean passing a different key path extractor\n// function to collectSpecifierPaths, reusing the shared extractKeyPath helper\n// wherever possible.\nexport function keyArgsFnFromSpecifier(specifier: KeySpecifier): KeyArgsFunction {\n const info = lookupSpecifierInfo(specifier);\n\n return info.keyArgsFn || (info.keyArgsFn = (args, {\n field,\n variables,\n fieldName,\n }) => {\n const collected = collectSpecifierPaths(specifier, keyPath => {\n const firstKey = keyPath[0];\n const firstChar = firstKey.charAt(0);\n\n if (firstChar === \"@\") {\n if (field && isNonEmptyArray(field.directives)) {\n const directiveName = firstKey.slice(1);\n // If the directive appears multiple times, only the first\n // occurrence's arguments will be used. TODO Allow repetition?\n // TODO Cache this work somehow, a la aliasMap?\n const d = field.directives.find(d => d.name.value === directiveName);\n // Fortunately argumentsObjectFromField works for DirectiveNode!\n const directiveArgs = d && argumentsObjectFromField(d, variables);\n // For directives without arguments (d defined, but directiveArgs ===\n // null), the presence or absence of the directive still counts as\n // part of the field key, so we return null in those cases. If no\n // directive with this name was found for this field (d undefined and\n // thus directiveArgs undefined), we return undefined, which causes\n // this value to be omitted from the key object returned by\n // collectSpecifierPaths.\n return directiveArgs && extractKeyPath(\n directiveArgs,\n // If keyPath.length === 1, this code calls extractKeyPath with an\n // empty path, which works because it uses directiveArgs as the\n // extracted value.\n keyPath.slice(1),\n );\n }\n // If the key started with @ but there was no corresponding directive,\n // we want to omit this value from the key object, not fall through to\n // treating @whatever as a normal argument name.\n return;\n }\n\n if (firstChar === \"$\") {\n const variableName = firstKey.slice(1);\n if (variables && hasOwn.call(variables, variableName)) {\n const varKeyPath = keyPath.slice(0);\n varKeyPath[0] = variableName;\n return extractKeyPath(variables, varKeyPath);\n }\n // If the key started with $ but there was no corresponding variable, we\n // want to omit this value from the key object, not fall through to\n // treating $whatever as a normal argument name.\n return;\n }\n\n if (args) {\n return extractKeyPath(args, keyPath);\n }\n });\n\n const suffix = JSON.stringify(collected);\n\n // If no arguments were passed to this field, and it didn't have any other\n // field key contributions from directives or variables, hide the empty\n // :{} suffix from the field key. However, a field passed no arguments can\n // still end up with a non-empty :{...} suffix if its key configuration\n // refers to directives or variables.\n if (args || suffix !== \"{}\") {\n fieldName += \":\" + suffix;\n }\n\n return fieldName;\n });\n}\n\nexport function collectSpecifierPaths(\n specifier: KeySpecifier,\n extractor: (path: string[]) => any,\n): Record<string, any> {\n // For each path specified by specifier, invoke the extractor, and repeatedly\n // merge the results together, with appropriate ancestor context.\n const merger = new DeepMerger;\n return getSpecifierPaths(specifier).reduce((collected, path) => {\n let toMerge = extractor(path);\n if (toMerge !== void 0) {\n // This path is not expected to contain array indexes, so the toMerge\n // reconstruction will not contain arrays. TODO Fix this?\n for (let i = path.length - 1; i >= 0; --i) {\n toMerge = { [path[i]]: toMerge };\n }\n collected = merger.merge(collected, toMerge);\n }\n return collected;\n }, Object.create(null));\n}\n\nexport function getSpecifierPaths(spec: KeySpecifier): string[][] {\n const info = lookupSpecifierInfo(spec);\n\n if (!info.paths) {\n const paths: string[][] = info.paths = [];\n const currentPath: string[] = [];\n\n spec.forEach((s, i) => {\n if (isArray(s)) {\n getSpecifierPaths(s).forEach(p => paths.push(currentPath.concat(p)));\n currentPath.length = 0;\n } else {\n currentPath.push(s);\n if (!isArray(spec[i + 1])) {\n paths.push(currentPath.slice(0));\n currentPath.length = 0;\n }\n }\n });\n }\n\n return info.paths!;\n}\n\nfunction extractKey<\n TObj extends Record<string, any>,\n TKey extends string,\n>(object: TObj, key: TKey): TObj[TKey] | undefined {\n return object[key];\n}\n\nexport function extractKeyPath(\n object: Record<string, any>,\n path: string[],\n extract?: typeof extractKey,\n): any {\n // For each key in path, extract the corresponding child property from obj,\n // flattening arrays if encountered (uncommon for keyFields and keyArgs, but\n // possible). The final result of path.reduce is normalized so unexpected leaf\n // objects have their keys safely sorted. That final result is difficult to\n // type as anything other than any. You're welcome to try to improve the\n // return type, but keep in mind extractKeyPath is not a public function\n // (exported only for testing), so the effort may not be worthwhile unless the\n // limited set of actual callers (see above) pass arguments that TypeScript\n // can statically type. If we know only that path is some array of strings\n // (and not, say, a specific tuple of statically known strings), any (or\n // possibly unknown) is the honest answer.\n extract = extract || extractKey;\n return normalize(path.reduce(function reducer(obj, key): any {\n return isArray(obj)\n ? obj.map(child => reducer(child, key))\n : obj && extract!(obj, key);\n }, object));\n}\n\nfunction normalize<T>(value: T): T {\n // Usually the extracted value will be a scalar value, since most primary\n // key fields are scalar, but just in case we get an object or an array, we\n // need to do some normalization of the order of (nested) keys.\n if (isNonNullObject(value)) {\n if (isArray(value)) {\n return value.map(normalize) as any;\n }\n return collectSpecifierPaths(\n Object.keys(value).sort(),\n path => extractKeyPath(value, path),\n ) as T;\n }\n return value;\n}\n","import { invariant, InvariantError } from '../../utilities/globals';\n\nimport {\n InlineFragmentNode,\n FragmentDefinitionNode,\n SelectionSetNode,\n FieldNode,\n} from 'graphql';\n\nimport {\n FragmentMap,\n storeKeyNameFromField,\n StoreValue,\n StoreObject,\n argumentsObjectFromField,\n Reference,\n isReference,\n getStoreKeyName,\n isNonNullObject,\n stringifyForDisplay,\n} from '../../utilities';\nimport {\n IdGetter,\n MergeInfo,\n NormalizedCache,\n ReadMergeModifyContext,\n} from \"./types\";\nimport {\n hasOwn,\n fieldNameFromStoreName,\n storeValueIsStoreObject,\n selectionSetMatchesResult,\n TypeOrFieldNameRegExp,\n defaultDataIdFromObject,\n isArray,\n} from './helpers';\nimport { cacheSlot } from './reactiveVars';\nimport { InMemoryCache } from './inMemoryCache';\nimport {\n SafeReadonly,\n FieldSpecifier,\n ToReferenceFunction,\n ReadFieldFunction,\n ReadFieldOptions,\n CanReadFunction,\n} from '../core/types/common';\nimport { WriteContext } from './writeToStore';\n\n// Upgrade to a faster version of the default stable JSON.stringify function\n// used by getStoreKeyName. This function is used when computing storeFieldName\n// strings (when no keyArgs has been configured for a field).\nimport { canonicalStringify } from './object-canon';\nimport { keyArgsFnFromSpecifier, keyFieldsFnFromSpecifier } from './key-extractor';\n\ngetStoreKeyName.setStringify(canonicalStringify);\n\nexport type TypePolicies = {\n [__typename: string]: TypePolicy;\n}\n\n// TypeScript 3.7 will allow recursive type aliases, so this should work:\n// type KeySpecifier = (string | KeySpecifier)[]\nexport type KeySpecifier = ReadonlyArray<string | KeySpecifier>;\n\nexport type KeyFieldsContext = {\n // The __typename of the incoming object, even if the __typename field was\n // aliased to another name in the raw result object. May be undefined when\n // dataIdFromObject is called for objects without __typename fields.\n typename: string | undefined;\n\n // The object to be identified, after processing to remove aliases and\n // normalize identifiable child objects with references.\n storeObject: StoreObject;\n\n // Handy tool for reading additional fields from context.storeObject, either\n // readField(\"fieldName\") to read storeObject[fieldName], or readField(\"name\",\n // objectOrReference) to read from another object or Reference. If you read a\n // field with a read function, that function will be invoked.\n readField: ReadFieldFunction;\n\n // If you are writing a custom keyFields function, and you plan to use the raw\n // result object passed as the first argument, you may also need access to the\n // selection set and available fragments for this object, just in case any\n // fields have aliases. Since this logic is tricky to get right, and these\n // context properties are not even always provided (for example, they are\n // omitted when calling cache.identify(object), where object is assumed to be\n // a StoreObject), we recommend you use context.storeObject (which has already\n // been de-aliased) and context.readField (which can read from references as\n // well as objects) instead of the raw result object in your keyFields\n // functions, or just rely on the internal implementation of keyFields:[...]\n // syntax to get these details right for you.\n selectionSet?: SelectionSetNode;\n fragmentMap?: FragmentMap;\n\n // Internal. May be set by the KeyFieldsFunction to report fields that were\n // involved in computing the ID. Never passed in by the caller.\n keyObject?: Record<string, any>;\n};\n\nexport type KeyFieldsFunction = (\n object: Readonly<StoreObject>,\n context: KeyFieldsContext,\n) => KeySpecifier | false | ReturnType<IdGetter>;\n\ntype KeyFieldsResult = Exclude<ReturnType<KeyFieldsFunction>, KeySpecifier>;\n\n// TODO Should TypePolicy be a generic type, with a TObject or TEntity\n// type parameter?\nexport type TypePolicy = {\n // Allows defining the primary key fields for this type, either using an\n // array of field names or a function that returns an arbitrary string.\n keyFields?: KeySpecifier | KeyFieldsFunction | false;\n\n // Allows defining a merge function (or merge:true/false shorthand) to\n // be used for merging objects of this type wherever they appear, unless\n // the parent field also defines a merge function/boolean (that is,\n // parent field merge functions take precedence over type policy merge\n // functions). In many cases, defining merge:true for a given type\n // policy can save you from specifying merge:true for all the field\n // policies where that type might be encountered.\n merge?: FieldMergeFunction | boolean;\n\n // In the rare event that your schema happens to use a different\n // __typename for the root Query, Mutation, and/or Schema types, you can\n // express your deviant preferences by enabling one of these options.\n queryType?: true,\n mutationType?: true,\n subscriptionType?: true,\n\n fields?: {\n [fieldName: string]:\n | FieldPolicy<any>\n | FieldReadFunction<any>;\n }\n};\n\nexport type KeyArgsFunction = (\n args: Record<string, any> | null,\n context: {\n typename: string;\n fieldName: string;\n field: FieldNode | null;\n variables?: Record<string, any>;\n },\n) => KeySpecifier | false | ReturnType<IdGetter>;\n\nexport type FieldPolicy<\n // The internal representation used to store the field's data in the\n // cache. Must be JSON-serializable if you plan to serialize the result\n // of cache.extract() using JSON.\n TExisting = any,\n // The type of the incoming parameter passed to the merge function,\n // typically matching the GraphQL response format, but with Reference\n // objects substituted for any identifiable child objects. Often the\n // same as TExisting, but not necessarily.\n TIncoming = TExisting,\n // The type that the read function actually returns, using TExisting\n // data and options.args as input. Usually the same as TIncoming.\n TReadResult = TIncoming,\n // Allows FieldFunctionOptions definition to be overwritten by the\n // developer\n TOptions extends FieldFunctionOptions = FieldFunctionOptions\n> = {\n keyArgs?: KeySpecifier | KeyArgsFunction | false;\n read?: FieldReadFunction<TExisting, TReadResult, TOptions>;\n merge?: FieldMergeFunction<TExisting, TIncoming, TOptions> | boolean;\n};\n\nexport type StorageType = Record<string, any>;\n\nfunction argsFromFieldSpecifier(spec: FieldSpecifier) {\n return spec.args !== void 0 ? spec.args :\n spec.field ? argumentsObjectFromField(spec.field, spec.variables) : null;\n}\n\nexport interface FieldFunctionOptions<\n TArgs = Record<string, any>,\n TVars = Record<string, any>,\n> {\n args: TArgs | null;\n\n // The name of the field, equal to options.field.name.value when\n // options.field is available. Useful if you reuse the same function for\n // multiple fields, and you need to know which field you're currently\n // processing. Always a string, even when options.field is null.\n fieldName: string;\n\n // The full field key used internally, including serialized key arguments.\n storeFieldName: string;\n\n // The FieldNode object used to read this field. Useful if you need to\n // know about other attributes of the field, such as its directives. This\n // option will be null when a string was passed to options.readField.\n field: FieldNode | null;\n\n variables?: TVars;\n\n // Utilities for dealing with { __ref } objects.\n isReference: typeof isReference;\n toReference: ToReferenceFunction;\n\n // A handy place to put field-specific data that you want to survive\n // across multiple read function calls. Useful for field-level caching,\n // if your read function does any expensive work.\n storage: StorageType;\n\n cache: InMemoryCache;\n\n // Helper function for reading other fields within the current object.\n // If a foreign object or reference is provided, the field will be read\n // from that object instead of the current object, so this function can\n // be used (together with isReference) to examine the cache outside the\n // current object. If a FieldNode is passed instead of a string, and\n // that FieldNode has arguments, the same options.variables will be used\n // to compute the argument values. Note that this function will invoke\n // custom read functions for other fields, if defined. Always returns\n // immutable data (enforced with Object.freeze in development).\n readField: ReadFieldFunction;\n\n // Returns true for non-normalized StoreObjects and non-dangling\n // References, indicating that readField(name, objOrRef) has a chance of\n // working. Useful for filtering out dangling references from lists.\n canRead: CanReadFunction;\n\n // Instead of just merging objects with { ...existing, ...incoming }, this\n // helper function can be used to merge objects in a way that respects any\n // custom merge functions defined for their fields.\n mergeObjects: MergeObjectsFunction;\n}\n\ntype MergeObjectsFunction = <T extends StoreObject | Reference>(\n existing: T,\n incoming: T,\n) => T;\n\nexport type FieldReadFunction<\n TExisting = any,\n TReadResult = TExisting,\n TOptions extends FieldFunctionOptions = FieldFunctionOptions\n> = (\n // When reading a field, one often needs to know about any existing\n // value stored for that field. If the field is read before any value\n // has been written to the cache, this existing parameter will be\n // undefined, which makes it easy to use a default parameter expression\n // to supply the initial value. This parameter is positional (rather\n // than one of the named options) because that makes it possible for the\n // developer to annotate it with a type, without also having to provide\n // a whole new type for the options object.\n existing: SafeReadonly<TExisting> | undefined,\n options: TOptions,\n) => TReadResult | undefined;\n\nexport type FieldMergeFunction<\n TExisting = any,\n TIncoming = TExisting,\n // Passing the whole FieldFunctionOptions makes the current definition\n // independent from its implementation\n TOptions extends FieldFunctionOptions = FieldFunctionOptions\n> = (\n existing: SafeReadonly<TExisting> | undefined,\n // The incoming parameter needs to be positional as well, for the same\n // reasons discussed in FieldReadFunction above.\n incoming: SafeReadonly<TIncoming>,\n options: TOptions,\n) => SafeReadonly<TExisting>;\n\nconst nullKeyFieldsFn: KeyFieldsFunction = () => void 0;\nconst simpleKeyArgsFn: KeyArgsFunction = (_args, context) => context.fieldName;\n\n// These merge functions can be selected by specifying merge:true or\n// merge:false in a field policy.\nconst mergeTrueFn: FieldMergeFunction<any> =\n (existing, incoming, { mergeObjects }) => mergeObjects(existing, incoming);\nconst mergeFalseFn: FieldMergeFunction<any> = (_, incoming) => incoming;\n\nexport type PossibleTypesMap = {\n [supertype: string]: string[];\n};\n\nexport class Policies {\n private typePolicies: {\n [__typename: string]: {\n keyFn?: KeyFieldsFunction;\n merge?: FieldMergeFunction<any>;\n fields: {\n [fieldName: string]: {\n keyFn?: KeyArgsFunction;\n read?: FieldReadFunction<any>;\n merge?: FieldMergeFunction<any>;\n };\n };\n };\n } = Object.create(null);\n\n private toBeAdded: {\n [__typename: string]: TypePolicy[];\n } = Object.create(null);\n\n // Map from subtype names to sets of supertype names. Note that this\n // representation inverts the structure of possibleTypes (whose keys are\n // supertypes and whose values are arrays of subtypes) because it tends\n // to be much more efficient to search upwards than downwards.\n private supertypeMap = new Map<string, Set<string>>();\n\n // Any fuzzy subtypes specified by possibleTypes will be converted to\n // RegExp objects and recorded here. Every key of this map can also be\n // found in supertypeMap. In many cases this Map will be empty, which\n // means no fuzzy subtype checking will happen in fragmentMatches.\n private fuzzySubtypes = new Map<string, RegExp>();\n\n public readonly cache: InMemoryCache;\n\n public readonly rootIdsByTypename: Record<string, string> = Object.create(null);\n public readonly rootTypenamesById: Record<string, string> = Object.create(null);\n\n public readonly usingPossibleTypes = false;\n\n constructor(private config: {\n cache: InMemoryCache;\n dataIdFromObject?: KeyFieldsFunction;\n possibleTypes?: PossibleTypesMap;\n typePolicies?: TypePolicies;\n }) {\n this.config = {\n dataIdFromObject: defaultDataIdFromObject,\n ...config,\n };\n\n this.cache = this.config.cache;\n\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 public identify(\n object: StoreObject,\n partialContext?: Partial<KeyFieldsContext>,\n ): [string?, StoreObject?] {\n const policies = this;\n\n const typename = partialContext && (\n partialContext.typename ||\n partialContext.storeObject?.__typename\n ) || object.__typename;\n\n // It should be possible to write root Query fields with writeFragment,\n // using { __typename: \"Query\", ... } as the data, but it does not make\n // sense to allow the same identification behavior for the Mutation and\n // Subscription types, since application code should never be writing\n // directly to (or reading directly from) those root objects.\n if (typename === this.rootTypenamesById.ROOT_QUERY) {\n return [\"ROOT_QUERY\"];\n }\n\n // Default context.storeObject to object if not otherwise provided.\n const storeObject = partialContext && partialContext.storeObject || object;\n\n const context: KeyFieldsContext = {\n ...partialContext,\n typename,\n storeObject,\n readField: partialContext && partialContext.readField || function () {\n const options = normalizeReadFieldOptions(arguments, storeObject);\n return policies.readField(options, {\n store: policies.cache[\"data\"],\n variables: options.variables,\n });\n },\n };\n\n let id: KeyFieldsResult;\n\n const policy = typename && this.getTypePolicy(typename);\n let keyFn = policy && policy.keyFn || this.config.dataIdFromObject;\n while (keyFn) {\n const specifierOrId = keyFn(object, context);\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 public addTypePolicies(typePolicies: TypePolicies) {\n Object.keys(typePolicies).forEach(typename => {\n const {\n queryType,\n mutationType,\n subscriptionType,\n ...incoming\n } = typePolicies[typename];\n\n // Though {query,mutation,subscription}Type configurations are rare,\n // it's important to call setRootTypename as early as possible,\n // since these configurations should apply consistently for the\n // entire lifetime of the cache. Also, since only one __typename can\n // qualify as one of these root types, these three properties cannot\n // be inherited, unlike the rest of the incoming properties. That\n // restriction is convenient, because the purpose of this.toBeAdded\n // is to delay the processing of type/field policies until the first\n // time they're used, allowing policies to be added in any order as\n // long as all relevant policies (including policies for supertypes)\n // have been added by the time a given policy is used for the first\n // time. In other words, since inheritance doesn't matter for these\n // properties, there's also no need to delay their processing using\n // the this.toBeAdded queue.\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 private updateTypePolicy(typename: string, incoming: TypePolicy) {\n const existing = this.getTypePolicy(typename);\n const { keyFields, fields } = incoming;\n\n function setMerge(\n existing: { merge?: FieldMergeFunction | boolean; },\n merge?: FieldMergeFunction | boolean,\n ) {\n existing.merge =\n typeof merge === \"function\" ? merge :\n // Pass merge:true as a shorthand for a merge implementation\n // that returns options.mergeObjects(existing, incoming).\n merge === true ? mergeTrueFn :\n // Pass merge:false to make incoming always replace existing\n // without any warnings about data clobbering.\n merge === false ? mergeFalseFn :\n existing.merge;\n }\n\n // Type policies can define merge functions, as an alternative to\n // using field policies to merge child objects.\n setMerge(existing, incoming.merge);\n\n existing.keyFn =\n // Pass false to disable normalization for this typename.\n keyFields === false ? nullKeyFieldsFn :\n // Pass an array of strings to use those fields to compute a\n // composite ID for objects of this typename.\n isArray(keyFields) ? keyFieldsFnFromSpecifier(keyFields) :\n // Pass a function to take full control over identification.\n typeof keyFields === \"function\" ? keyFields :\n // Leave existing.keyFn unchanged if above cases fail.\n existing.keyFn;\n\n if (fields) {\n Object.keys(fields).forEach(fieldName => {\n const existing = this.getFieldPolicy(typename, fieldName, true)!;\n const incoming = fields[fieldName];\n\n if (typeof incoming === \"function\") {\n existing.read = incoming;\n } else {\n const { keyArgs, read, merge } = incoming;\n\n existing.keyFn =\n // Pass false to disable argument-based differentiation of\n // field identities.\n keyArgs === false ? simpleKeyArgsFn :\n // Pass an array of strings to use named arguments to\n // compute a composite identity for the field.\n isArray(keyArgs) ? keyArgsFnFromSpecifier(keyArgs) :\n // Pass a function to take full control over field identity.\n typeof keyArgs === \"function\" ? keyArgs :\n // Leave existing.keyFn unchanged if above cases fail.\n 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 // If we have both a read and a merge function, assume\n // keyArgs:false, because read and merge together can take\n // responsibility for interpreting arguments in and out. This\n // default assumption can always be overridden by specifying\n // keyArgs explicitly in the FieldPolicy.\n existing.keyFn = existing.keyFn || simpleKeyArgsFn;\n }\n });\n }\n }\n\n private setRootTypename(\n which: \"Query\" | \"Mutation\" | \"Subscription\",\n typename: string = which,\n ) {\n const rootId = \"ROOT_\" + which.toUpperCase();\n const old = this.rootTypenamesById[rootId];\n if (typename !== old) {\n invariant(!old || old === which, `Cannot change root ${which} __typename more than once`);\n // First, delete any old __typename associated with this rootId from\n // rootIdsByTypename.\n if (old) delete this.rootIdsByTypename[old];\n // Now make this the only __typename that maps to this rootId.\n this.rootIdsByTypename[typename] = rootId;\n // Finally, update the __typename associated with this rootId.\n this.rootTypenamesById[rootId] = typename;\n }\n }\n\n public addPossibleTypes(possibleTypes: PossibleTypesMap) {\n (this.usingPossibleTypes as boolean) = true;\n Object.keys(possibleTypes).forEach(supertype => {\n // Make sure all types have an entry in this.supertypeMap, even if\n // their supertype set is empty, so we can return false immediately\n // from policies.fragmentMatches for unknown supertypes.\n this.getSupertypeSet(supertype, true);\n\n possibleTypes[supertype].forEach(subtype => {\n this.getSupertypeSet(subtype, true)!.add(supertype);\n const match = subtype.match(TypeOrFieldNameRegExp);\n if (!match || match[0] !== subtype) {\n // TODO Don't interpret just any invalid typename as a RegExp.\n this.fuzzySubtypes.set(subtype, new RegExp(subtype));\n }\n });\n });\n }\n\n private getTypePolicy(typename: string): Policies[\"typePolicies\"][string] {\n if (!hasOwn.call(this.typePolicies, typename)) {\n const policy: Policies[\"typePolicies\"][string] =\n this.typePolicies[typename] = Object.create(null);\n policy.fields = Object.create(null);\n\n // When the TypePolicy for typename is first accessed, instead of\n // starting with an empty policy object, inherit any properties or\n // fields from the type policies of the supertypes of typename.\n //\n // Any properties or fields defined explicitly within the TypePolicy\n // for typename will take precedence, and if there are multiple\n // supertypes, the properties of policies whose types were added\n // later via addPossibleTypes will take precedence over those of\n // earlier supertypes. TODO Perhaps we should warn about these\n // conflicts in development, and recommend defining the property\n // explicitly in the subtype policy?\n //\n // Field policy inheritance is atomic/shallow: you can't inherit a\n // field policy and then override just its read function, since read\n // and merge functions often need to cooperate, so changing only one\n // of them would be a recipe for inconsistency.\n //\n // Once the TypePolicy for typename has been accessed, its\n // properties can still be updated directly using addTypePolicies,\n // but future changes to supertype policies will not be reflected in\n // this policy, because this code runs at most once per typename.\n const supertypes = this.supertypeMap.get(typename);\n if (supertypes && supertypes.size) {\n supertypes.forEach(supertype => {\n const { fields, ...rest } = this.getTypePolicy(supertype);\n Object.assign(policy, rest);\n Object.assign(policy.fields, fields);\n });\n }\n }\n\n const inbox = this.toBeAdded[typename];\n if (inbox && inbox.length) {\n // Merge the pending policies into this.typePolicies, in the order they\n // were originally passed to addTypePolicy.\n inbox.splice(0).forEach(policy => {\n this.updateTypePolicy(typename, policy);\n });\n }\n\n return this.typePolicies[typename];\n }\n\n private getFieldPolicy(\n typename: string | undefined,\n fieldName: string,\n createIfMissing: boolean,\n ): {\n keyFn?: KeyArgsFunction;\n read?: FieldReadFunction<any>;\n merge?: FieldMergeFunction<any>;\n } | undefined {\n if (typename) {\n const fieldPolicies = this.getTypePolicy(typename).fields;\n return fieldPolicies[fieldName] || (\n createIfMissing && (fieldPolicies[fieldName] = Object.create(null)));\n }\n }\n\n private getSupertypeSet(\n subtype: string,\n createIfMissing: boolean,\n ): Set<string> | undefined {\n let supertypeSet = this.supertypeMap.get(subtype);\n if (!supertypeSet && createIfMissing) {\n this.supertypeMap.set(subtype, supertypeSet = new Set<string>());\n }\n return supertypeSet;\n }\n\n public fragmentMatches(\n fragment: InlineFragmentNode | FragmentDefinitionNode,\n typename: string | undefined,\n result?: Record<string, any>,\n variables?: Record<string, any>,\n ): boolean {\n if (!fragment.typeCondition) return true;\n\n // If the fragment has a type condition but the object we're matching\n // against does not have a __typename, the fragment cannot match.\n if (!typename) return false;\n\n const supertype = fragment.typeCondition.name.value;\n // Common case: fragment type condition and __typename are the same.\n if (typename === supertype) return true;\n\n if (this.usingPossibleTypes &&\n this.supertypeMap.has(supertype)) {\n const typenameSupertypeSet = this.getSupertypeSet(typename, true)!;\n const workQueue = [typenameSupertypeSet];\n const maybeEnqueue = (subtype: string) => {\n const supertypeSet = this.getSupertypeSet(subtype, false);\n if (supertypeSet &&\n supertypeSet.size &&\n workQueue.indexOf(supertypeSet) < 0) {\n workQueue.push(supertypeSet);\n }\n };\n\n // We need to check fuzzy subtypes only if we encountered fuzzy\n // subtype strings in addPossibleTypes, and only while writing to\n // the cache, since that's when selectionSetMatchesResult gives a\n // strong signal of fragment matching. The StoreReader class calls\n // policies.fragmentMatches without passing a result object, so\n // needToCheckFuzzySubtypes is always false while reading.\n let needToCheckFuzzySubtypes = !!(result && this.fuzzySubtypes.size);\n let checkingFuzzySubtypes = false;\n\n // It's important to keep evaluating workQueue.length each time through\n // the loop, because the queue can grow while we're iterating over it.\n for (let i = 0; i < workQueue.length; ++i) {\n const supertypeSet = workQueue[i];\n\n if (supertypeSet.has(supertype)) {\n if (!typenameSupertypeSet.has(supertype)) {\n if (checkingFuzzySubtypes) {\n invariant.warn(`Inferring subtype ${typename} of supertype ${supertype}`);\n }\n // Record positive results for faster future lookup.\n // Unfortunately, we cannot safely cache negative results,\n // because new possibleTypes data could always be added to the\n // Policies class.\n typenameSupertypeSet.add(supertype);\n }\n return true;\n }\n\n supertypeSet.forEach(maybeEnqueue);\n\n if (needToCheckFuzzySubtypes &&\n // Start checking fuzzy subtypes only after exhausting all\n // non-fuzzy subtypes (after the final iteration of the loop).\n i === workQueue.length - 1 &&\n // We could wait to compare fragment.selectionSet to result\n // after we verify the supertype, but this check is often less\n // expensive than that search, and we will have to do the\n // comparison anyway whenever we find a potential match.\n selectionSetMatchesResult(fragment.selectionSet, result!, variables)) {\n // We don't always need to check fuzzy subtypes (if no result\n // was provided, or !this.fuzzySubtypes.size), but, when we do,\n // we only want to check them once.\n needToCheckFuzzySubtypes = false;\n checkingFuzzySubtypes = true;\n\n // If we find any fuzzy subtypes that match typename, extend the\n // workQueue to search through the supertypes of those fuzzy\n // subtypes. Otherwise the for-loop will terminate and we'll\n // return false below.\n this.fuzzySubtypes.forEach((regExp, fuzzyString) => {\n const match = typename.match(regExp);\n if (match && match[0] === typename) {\n maybeEnqueue(fuzzyString);\n }\n });\n }\n }\n }\n\n return false;\n }\n\n public hasKeyArgs(typename: string | undefined, fieldName: string) {\n const policy = this.getFieldPolicy(typename, fieldName, false);\n return !!(policy && policy.keyFn);\n }\n\n public getStoreFieldName(fieldSpec: FieldSpecifier): string {\n const { typename, fieldName } = fieldSpec;\n const policy = this.getFieldPolicy(typename, fieldName, false);\n let storeFieldName: Exclude<ReturnType<KeyArgsFunction>, KeySpecifier>;\n\n let keyFn = policy && policy.keyFn;\n if (keyFn && typename) {\n const context: Parameters<KeyArgsFunction>[1] = {\n typename,\n fieldName,\n field: fieldSpec.field || null,\n variables: fieldSpec.variables,\n };\n const args = argsFromFieldSpecifier(fieldSpec);\n while (keyFn) {\n const specifierOrString = keyFn(args, context);\n if (isArray(specifierOrString)) {\n keyFn = keyArgsFnFromSpecifier(specifierOrString);\n } else {\n // If the custom keyFn returns a falsy value, fall back to\n // fieldName instead.\n storeFieldName = specifierOrString || fieldName;\n break;\n }\n }\n }\n\n if (storeFieldName === void 0) {\n storeFieldName = fieldSpec.field\n ? storeKeyNameFromField(fieldSpec.field, fieldSpec.variables)\n : getStoreKeyName(fieldName, argsFromFieldSpecifier(fieldSpec));\n }\n\n // Returning false from a keyArgs function is like configuring\n // keyArgs: false, but more dynamic.\n if (storeFieldName === false) {\n return fieldName;\n }\n\n // Make sure custom field names start with the actual field.name.value\n // of the field, so we can always figure out which properties of a\n // StoreObject correspond to which original field names.\n return fieldName === fieldNameFromStoreName(storeFieldName)\n ? storeFieldName\n : fieldName + \":\" + storeFieldName;\n }\n\n public readField<V = StoreValue>(\n options: ReadFieldOptions,\n context: ReadMergeModifyContext,\n ): SafeReadonly<V> | undefined {\n const objectOrReference = options.from;\n if (!objectOrReference) return;\n\n const nameOrField = options.field || options.fieldName;\n if (!nameOrField) return;\n\n if (options.typename === void 0) {\n const typename = context.store.getFieldValue<string>(objectOrReference, \"__typename\");\n if (typename) options.typename = typename;\n }\n\n const storeFieldName = this.getStoreFieldName(options);\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const existing = context.store.getFieldValue<V>(objectOrReference, storeFieldName);\n const policy = this.getFieldPolicy(options.typename, fieldName, false);\n const read = policy && policy.read;\n\n if (read) {\n const readOptions = makeFieldFunctionOptions(\n this,\n objectOrReference,\n options,\n context,\n context.store.getStorage(\n isReference(objectOrReference)\n ? objectOrReference.__ref\n : objectOrReference,\n storeFieldName,\n ),\n );\n\n // Call read(existing, readOptions) with cacheSlot holding this.cache.\n return cacheSlot.withValue(\n this.cache,\n read,\n [existing, readOptions],\n ) as SafeReadonly<V>;\n }\n\n return existing;\n }\n\n public getReadFunction(\n typename: string | undefined,\n fieldName: string,\n ): FieldReadFunction | undefined {\n const policy = this.getFieldPolicy(typename, fieldName, false);\n return policy && policy.read;\n }\n\n public getMergeFunction(\n parentTypename: string | undefined,\n fieldName: string,\n childTypename: string | undefined,\n ): FieldMergeFunction | undefined {\n let policy:\n | Policies[\"typePolicies\"][string]\n | Policies[\"typePolicies\"][string][\"fields\"][string]\n | undefined =\n this.getFieldPolicy(parentTypename, fieldName, false);\n let merge = policy && policy.merge;\n if (!merge && childTypename) {\n policy = this.getTypePolicy(childTypename);\n merge = policy && policy.merge;\n }\n return merge;\n }\n\n public runMergeFunction(\n existing: StoreValue,\n incoming: StoreValue,\n { field, typename, merge }: MergeInfo,\n context: WriteContext,\n storage?: StorageType,\n ) {\n if (merge === mergeTrueFn) {\n // Instead of going to the trouble of creating a full\n // FieldFunctionOptions object and calling mergeTrueFn, we can\n // simply call mergeObjects, as mergeTrueFn would.\n return makeMergeObjectsFunction(\n context.store,\n )(existing as StoreObject,\n incoming as StoreObject);\n }\n\n if (merge === mergeFalseFn) {\n // Likewise for mergeFalseFn, whose implementation is even simpler.\n return incoming;\n }\n\n // If cache.writeQuery or cache.writeFragment was called with\n // options.overwrite set to true, we still call merge functions, but\n // the existing data is always undefined, so the merge function will\n // not attempt to combine the incoming data with the existing data.\n if (context.overwrite) {\n existing = void 0;\n }\n\n return merge(existing, incoming, makeFieldFunctionOptions(\n this,\n // Unlike options.readField for read functions, we do not fall\n // back to the current object if no foreignObjOrRef is provided,\n // because it's not clear what the current object should be for\n // merge functions: the (possibly undefined) existing object, or\n // the incoming object? If you think your merge function needs\n // to read sibling fields in order to produce a new value for\n // the current field, you might want to rethink your strategy,\n // because that's a recipe for making merge behavior sensitive\n // to the order in which fields are written into the cache.\n // However, readField(name, ref) is useful for merge functions\n // that need to deduplicate child objects and references.\n void 0,\n { typename,\n fieldName: field.name.value,\n field,\n variables: context.variables },\n context,\n storage || Object.create(null),\n ));\n }\n}\n\nfunction makeFieldFunctionOptions(\n policies: Policies,\n objectOrReference: StoreObject | Reference | undefined,\n fieldSpec: FieldSpecifier,\n context: ReadMergeModifyContext,\n storage: StorageType,\n): FieldFunctionOptions {\n const storeFieldName = policies.getStoreFieldName(fieldSpec);\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const variables = fieldSpec.variables || context.variables;\n const { toReference, canRead } = context.store;\n\n return {\n args: argsFromFieldSpecifier(fieldSpec),\n field: fieldSpec.field || null,\n fieldName,\n storeFieldName,\n variables,\n isReference,\n toReference,\n storage,\n cache: policies.cache,\n canRead,\n readField<T>() {\n return policies.readField<T>(\n normalizeReadFieldOptions(arguments, objectOrReference, variables),\n context,\n );\n },\n mergeObjects: makeMergeObjectsFunction(context.store),\n };\n}\n\nexport function normalizeReadFieldOptions(\n readFieldArgs: IArguments,\n objectOrReference: StoreObject | Reference | undefined,\n variables?: ReadMergeModifyContext[\"variables\"],\n): ReadFieldOptions {\n const {\n 0: fieldNameOrOptions,\n 1: from,\n length: argc,\n } = readFieldArgs;\n\n let options: ReadFieldOptions;\n\n if (typeof fieldNameOrOptions === \"string\") {\n options = {\n fieldName: fieldNameOrOptions,\n // Default to objectOrReference only when no second argument was\n // passed for the from parameter, not when undefined is explicitly\n // passed as the second argument.\n from: argc > 1 ? from : objectOrReference,\n };\n } else {\n options = { ...fieldNameOrOptions };\n // Default to objectOrReference only when fieldNameOrOptions.from is\n // actually omitted, rather than just undefined.\n if (!hasOwn.call(options, \"from\")) {\n options.from = objectOrReference;\n }\n }\n\n if (__DEV__ && options.from === void 0) {\n invariant.warn(`Undefined 'from' passed to readField with arguments ${\n stringifyForDisplay(Array.from(readFieldArgs))\n }`);\n }\n\n if (void 0 === options.variables) {\n options.variables = variables;\n }\n\n return options;\n}\n\nfunction makeMergeObjectsFunction(\n store: NormalizedCache,\n): MergeObjectsFunction {\n return function mergeObjects(existing, incoming) {\n if (isArray(existing) || isArray(incoming)) {\n throw new InvariantError(\"Cannot automatically merge arrays\");\n }\n\n // These dynamic checks are necessary because the parameters of a\n // custom merge function can easily have the any type, so the type\n // system cannot always enforce the StoreObject | Reference parameter\n // types of options.mergeObjects.\n if (isNonNullObject(existing) &&\n isNonNullObject(incoming)) {\n const eType = store.getFieldValue(existing, \"__typename\");\n const iType = store.getFieldValue(incoming, \"__typename\");\n const typesDiffer = eType && iType && eType !== iType;\n\n if (typesDiffer) {\n return incoming;\n }\n\n if (isReference(existing) &&\n storeValueIsStoreObject(incoming)) {\n // Update the normalized EntityStore for the entity identified by\n // existing.__ref, preferring/overwriting any fields contributed by the\n // newer incoming StoreObject.\n store.merge(existing.__ref, incoming);\n return existing;\n }\n\n if (storeValueIsStoreObject(existing) &&\n isReference(incoming)) {\n // Update the normalized EntityStore for the entity identified by\n // incoming.__ref, taking fields from the older existing object only if\n // those fields are not already present in the newer StoreObject\n // identified by incoming.__ref.\n store.merge(existing, incoming.__ref);\n return incoming;\n }\n\n if (storeValueIsStoreObject(existing) &&\n storeValueIsStoreObject(incoming)) {\n return { ...existing, ...incoming };\n }\n }\n\n return incoming;\n };\n}\n","import { makeUniqueId } from \"./makeUniqueId\";\n\nexport function stringifyForDisplay(value: any): string {\n const undefId = makeUniqueId(\"stringifyForDisplay\");\n return JSON.stringify(value, (key, value) => {\n return value === void 0 ? undefId : value;\n }).split(JSON.stringify(undefId)).join(\"<undefined>\");\n}\n","import { invariant, InvariantError } from '../../utilities/globals';\nimport { equal } from '@wry/equality';\nimport { Trie } from '@wry/trie';\nimport {\n SelectionSetNode,\n FieldNode,\n Kind,\n} from 'graphql';\n\nimport {\n FragmentMap,\n FragmentMapFunction,\n getFragmentFromSelection,\n getDefaultValues,\n getOperationDefinition,\n getTypenameFromResult,\n makeReference,\n isField,\n resultKeyNameFromField,\n StoreValue,\n StoreObject,\n Reference,\n isReference,\n shouldInclude,\n cloneDeep,\n addTypenameToDocument,\n isNonEmptyArray,\n argumentsObjectFromField,\n} from '../../utilities';\n\nimport { NormalizedCache, ReadMergeModifyContext, MergeTree, InMemoryCacheConfig } from './types';\nimport { isArray, makeProcessedFieldsMerger, fieldNameFromStoreName, storeValueIsStoreObject, extractFragmentContext } from './helpers';\nimport { StoreReader } from './readFromStore';\nimport { InMemoryCache } from './inMemoryCache';\nimport { EntityStore } from './entityStore';\nimport { Cache } from '../../core';\nimport { canonicalStringify } from './object-canon';\nimport { normalizeReadFieldOptions } from './policies';\nimport { ReadFieldFunction } from '../core/types/common';\n\nexport interface WriteContext extends ReadMergeModifyContext {\n readonly written: {\n [dataId: string]: SelectionSetNode[];\n };\n readonly fragmentMap: FragmentMap;\n lookupFragment: FragmentMapFunction;\n // General-purpose deep-merge function for use during writes.\n merge<T>(existing: T, incoming: T): T;\n // If true, merge functions will be called with undefined existing data.\n overwrite: boolean;\n incomingById: Map<string, {\n storeObject: StoreObject;\n mergeTree?: MergeTree;\n fieldNodeSet: Set<FieldNode>;\n }>;\n // Directive metadata for @client and @defer. We could use a bitfield for this\n // information to save some space, and use that bitfield number as the keys in\n // the context.flavors Map.\n clientOnly: boolean;\n deferred: boolean;\n flavors: Map<string, FlavorableWriteContext>;\n};\n\ntype FlavorableWriteContext = Pick<\n WriteContext,\n | \"clientOnly\"\n | \"deferred\"\n | \"flavors\"\n>;\n\n// Since there are only four possible combinations of context.clientOnly and\n// context.deferred values, we should need at most four \"flavors\" of any given\n// WriteContext. To avoid creating multiple copies of the same context, we cache\n// the contexts in the context.flavors Map (shared by all flavors) according to\n// their clientOnly and deferred values (always in that order).\nfunction getContextFlavor<TContext extends FlavorableWriteContext>(\n context: TContext,\n clientOnly: TContext[\"clientOnly\"],\n deferred: TContext[\"deferred\"],\n): TContext {\n const key = `${clientOnly}${deferred}`;\n let flavored = context.flavors.get(key);\n if (!flavored) {\n context.flavors.set(key, flavored = (\n context.clientOnly === clientOnly &&\n context.deferred === deferred\n ) ? context : {\n ...context,\n clientOnly,\n deferred,\n });\n }\n return flavored as TContext;\n}\n\ninterface ProcessSelectionSetOptions {\n dataId?: string,\n result: Record<string, any>;\n selectionSet: SelectionSetNode;\n context: WriteContext;\n mergeTree: MergeTree;\n}\n\nexport class StoreWriter {\n constructor(\n public readonly cache: InMemoryCache,\n private reader?: StoreReader,\n private fragments?: InMemoryCacheConfig[\"fragments\"],\n ) {}\n\n public writeToStore(store: NormalizedCache, {\n query,\n result,\n dataId,\n variables,\n overwrite,\n }: Cache.WriteOptions): Reference | undefined {\n const operationDefinition = getOperationDefinition(query)!;\n const merger = makeProcessedFieldsMerger();\n\n variables = {\n ...getDefaultValues(operationDefinition),\n ...variables!,\n };\n\n const context: WriteContext = {\n store,\n written: Object.create(null),\n merge<T>(existing: T, incoming: T) {\n return merger.merge(existing, incoming) as T;\n },\n 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 const ref = this.processSelectionSet({\n result: result || Object.create(null),\n dataId,\n selectionSet: operationDefinition.selectionSet,\n mergeTree: { map: new Map },\n context,\n });\n\n if (!isReference(ref)) {\n throw new InvariantError(`Could not identify object ${JSON.stringify(result)}`);\n }\n\n // So far, the store has not been modified, so now it's time to process\n // context.incomingById and merge those incoming fields into context.store.\n context.incomingById.forEach(({ storeObject, mergeTree, fieldNodeSet }, dataId) => {\n const entityRef = makeReference(dataId);\n\n if (mergeTree && mergeTree.map.size) {\n const applied = this.applyMerges(mergeTree, entityRef, storeObject, context);\n if (isReference(applied)) {\n // Assume References returned by applyMerges have already been merged\n // into the store. See makeMergeObjectsFunction in policies.ts for an\n // example of how this can happen.\n return;\n }\n // Otherwise, applyMerges returned a StoreObject, whose fields we should\n // merge into the store (see store.merge statement below).\n storeObject = applied;\n }\n\n if (__DEV__ && !context.overwrite) {\n const fieldsWithSelectionSets: Record<string, true> = Object.create(null);\n fieldNodeSet.forEach(field => {\n if (field.selectionSet) {\n fieldsWithSelectionSets[field.name.value] = true;\n }\n });\n\n const hasSelectionSet = (storeFieldName: string) =>\n fieldsWithSelectionSets[\n fieldNameFromStoreName(storeFieldName)\n ] === true;\n\n const hasMergeFunction = (storeFieldName: string) => {\n const childTree = mergeTree && mergeTree.map.get(storeFieldName);\n return Boolean(childTree && childTree.info && childTree.info.merge);\n };\n\n Object.keys(storeObject).forEach(storeFieldName => {\n // If a merge function was defined for this field, trust that it\n // did the right thing about (not) clobbering data. If the field\n // has no selection set, it's a scalar field, so it doesn't need\n // a merge function (even if it's an object, like JSON data).\n if (hasSelectionSet(storeFieldName) &&\n !hasMergeFunction(storeFieldName)) {\n warnAboutDataLoss(\n entityRef,\n storeObject,\n storeFieldName,\n context.store,\n );\n }\n });\n }\n\n store.merge(dataId, storeObject);\n });\n\n // Any IDs written explicitly to the cache will be retained as\n // reachable root IDs for garbage collection purposes. Although this\n // logic includes root IDs like ROOT_QUERY and ROOT_MUTATION, their\n // retainment counts are effectively ignored because cache.gc() always\n // includes them in its root ID set.\n store.retain(ref.__ref);\n\n return ref;\n }\n\n private processSelectionSet({\n dataId,\n result,\n selectionSet,\n context,\n // This object allows processSelectionSet to report useful information\n // to its callers without explicitly returning that information.\n mergeTree,\n }: ProcessSelectionSetOptions): StoreObject | Reference {\n const { policies } = this.cache;\n\n // This variable will be repeatedly updated using context.merge to\n // accumulate all fields that need to be written into the store.\n let incoming: StoreObject = Object.create(null);\n\n // If typename was not passed in, infer it. Note that typename is\n // always passed in for tricky-to-infer cases such as \"Query\" for\n // ROOT_QUERY.\n const typename: string | undefined =\n (dataId && policies.rootTypenamesById[dataId]) ||\n getTypenameFromResult(result, selectionSet, context.fragmentMap) ||\n (dataId && context.store.get(dataId, \"__typename\") as string);\n\n if (\"string\" === typeof typename) {\n incoming.__typename = typename;\n }\n\n // This readField function will be passed as context.readField in the\n // KeyFieldsContext object created within policies.identify (called below).\n // In addition to reading from the existing context.store (thanks to the\n // policies.readField(options, context) line at the very bottom), this\n // version of readField can read from Reference objects that are currently\n // pending in context.incomingById, which is important whenever keyFields\n // need to be extracted from a child object that processSelectionSet has\n // turned into a Reference.\n const readField: ReadFieldFunction = function (this: void) {\n const options = normalizeReadFieldOptions(\n arguments,\n incoming,\n context.variables,\n );\n\n if (isReference(options.from)) {\n const info = context.incomingById.get(options.from.__ref);\n if (info) {\n const result = policies.readField({\n ...options,\n from: info.storeObject\n }, context);\n\n if (result !== void 0) {\n return result;\n }\n }\n }\n\n return policies.readField(options, context);\n };\n\n const fieldNodeSet = new Set<FieldNode>();\n\n this.flattenFields(\n selectionSet,\n result,\n // This WriteContext will be the default context value for fields returned\n // by the flattenFields method, but some fields may be assigned a modified\n // context, depending on the presence of @client and other directives.\n context,\n typename,\n ).forEach((context, field) => {\n const resultFieldKey = resultKeyNameFromField(field);\n const value = result[resultFieldKey];\n\n fieldNodeSet.add(field);\n\n if (value !== void 0) {\n const storeFieldName = policies.getStoreFieldName({\n typename,\n fieldName: field.name.value,\n field,\n variables: context.variables,\n });\n\n const childTree = getChildMergeTree(mergeTree, storeFieldName);\n\n let incomingValue = this.processFieldValue(\n value,\n field,\n // Reset context.clientOnly and context.deferred to their default\n // values before processing nested selection sets.\n field.selectionSet\n ? getContextFlavor(context, false, false)\n : context,\n childTree,\n );\n\n // To determine if this field holds a child object with a merge function\n // defined in its type policy (see PR #7070), we need to figure out the\n // child object's __typename.\n let childTypename: string | undefined;\n\n // The field's value can be an object that has a __typename only if the\n // field has a selection set. Otherwise incomingValue is scalar.\n if (field.selectionSet &&\n (isReference(incomingValue) ||\n storeValueIsStoreObject(incomingValue))) {\n childTypename = readField<string>(\"__typename\", incomingValue);\n }\n\n const merge = policies.getMergeFunction(\n typename,\n field.name.value,\n childTypename,\n );\n\n if (merge) {\n childTree.info = {\n // TODO Check compatibility against any existing childTree.field?\n field,\n typename,\n merge,\n };\n } else {\n maybeRecycleChildMergeTree(mergeTree, storeFieldName);\n }\n\n incoming = context.merge(incoming, {\n [storeFieldName]: incomingValue,\n });\n\n } else if (\n __DEV__ &&\n !context.clientOnly &&\n !context.deferred &&\n !addTypenameToDocument.added(field) &&\n // If the field has a read function, it may be a synthetic field or\n // provide a default value, so its absence from the written data should\n // not be cause for alarm.\n !policies.getReadFunction(typename, field.name.value)\n ) {\n invariant.error(`Missing field '${\n resultKeyNameFromField(field)\n }' while writing result ${\n JSON.stringify(result, null, 2)\n }`.substring(0, 1000));\n }\n });\n\n // Identify the result object, even if dataId was already provided,\n // since we always need keyObject below.\n try {\n const [id, keyObject] = policies.identify(result, {\n typename,\n selectionSet,\n fragmentMap: context.fragmentMap,\n storeObject: incoming,\n readField,\n });\n\n // If dataId was not provided, fall back to the id just generated by\n // policies.identify.\n dataId = dataId || id;\n\n // Write any key fields that were used during identification, even if\n // they were not mentioned in the original query.\n if (keyObject) {\n // TODO Reverse the order of the arguments?\n incoming = context.merge(incoming, keyObject);\n }\n } catch (e) {\n // If dataId was provided, tolerate failure of policies.identify.\n if (!dataId) throw e;\n }\n\n if (\"string\" === typeof dataId) {\n const dataRef = makeReference(dataId);\n\n // Avoid processing the same entity object using the same selection\n // set more than once. We use an array instead of a Set since most\n // entity IDs will be written using only one selection set, so the\n // size of this array is likely to be very small, meaning indexOf is\n // likely to be faster than Set.prototype.has.\n const sets = context.written[dataId] || (context.written[dataId] = []);\n if (sets.indexOf(selectionSet) >= 0) return dataRef;\n sets.push(selectionSet);\n\n // If we're about to write a result object into the store, but we\n // happen to know that the exact same (===) result object would be\n // returned if we were to reread the result with the same inputs,\n // then we can skip the rest of the processSelectionSet work for\n // this object, and immediately return a Reference to it.\n if (this.reader && this.reader.isFresh(\n result,\n dataRef,\n selectionSet,\n context,\n )) {\n return dataRef;\n }\n\n const previous = context.incomingById.get(dataId);\n if (previous) {\n previous.storeObject = context.merge(previous.storeObject, incoming);\n previous.mergeTree = mergeMergeTrees(previous.mergeTree, mergeTree);\n fieldNodeSet.forEach(field => previous.fieldNodeSet.add(field));\n } else {\n context.incomingById.set(dataId, {\n storeObject: incoming,\n // Save a reference to mergeTree only if it is not empty, because\n // empty MergeTrees may be recycled by maybeRecycleChildMergeTree and\n // reused for entirely different parts of the result tree.\n mergeTree: mergeTreeIsEmpty(mergeTree) ? void 0 : mergeTree,\n fieldNodeSet,\n });\n }\n\n return dataRef;\n }\n\n return incoming;\n }\n\n private processFieldValue(\n value: any,\n field: FieldNode,\n context: WriteContext,\n mergeTree: MergeTree,\n ): StoreValue {\n if (!field.selectionSet || value === null) {\n // In development, we need to clone scalar values so that they can be\n // safely frozen with maybeDeepFreeze in readFromStore.ts. In production,\n // it's cheaper to store the scalar values directly in the cache.\n return __DEV__ ? cloneDeep(value) : value;\n }\n\n if (isArray(value)) {\n return value.map((item, i) => {\n const value = this.processFieldValue(\n item, field, context, getChildMergeTree(mergeTree, i));\n maybeRecycleChildMergeTree(mergeTree, i);\n return value;\n });\n }\n\n return this.processSelectionSet({\n result: value,\n selectionSet: field.selectionSet,\n context,\n mergeTree,\n });\n }\n\n // Implements https://spec.graphql.org/draft/#sec-Field-Collection, but with\n // some additions for tracking @client and @defer directives.\n private flattenFields<TContext extends Pick<\n WriteContext,\n | \"clientOnly\"\n | \"deferred\"\n | \"flavors\"\n | \"fragmentMap\"\n | \"lookupFragment\"\n | \"variables\"\n >>(\n selectionSet: SelectionSetNode,\n result: Record<string, any>,\n context: TContext,\n typename = getTypenameFromResult(result, selectionSet, context.fragmentMap),\n ): Map<FieldNode, TContext> {\n const fieldMap = new Map<FieldNode, TContext>();\n const { policies } = this.cache;\n\n const limitingTrie = new Trie<{\n // Tracks whether (selectionSet, clientOnly, deferred) has been flattened\n // before. The GraphQL specification only uses the fragment name for\n // skipping previously visited fragments, but the top-level fragment\n // selection set corresponds 1:1 with the fagment name (and is slightly\n // easier too work with), and we need to consider clientOnly and deferred\n // values as well, potentially revisiting selection sets that were\n // previously visited with different inherited configurations of those\n // directives.\n visited?: boolean;\n }>(false); // No need for WeakMap, since limitingTrie does not escape.\n\n (function flatten(\n this: void,\n selectionSet: SelectionSetNode,\n inheritedContext: TContext,\n ) {\n const visitedNode = limitingTrie.lookup(\n selectionSet,\n // Because we take inheritedClientOnly and inheritedDeferred into\n // consideration here (in addition to selectionSet), it's possible for\n // the same selection set to be flattened more than once, if it appears\n // in the query with different @client and/or @directive configurations.\n inheritedContext.clientOnly,\n inheritedContext.deferred,\n );\n if (visitedNode.visited) return;\n visitedNode.visited = true;\n\n selectionSet.selections.forEach(selection => {\n if (!shouldInclude(selection, context.variables)) return;\n\n let { clientOnly, deferred } = inheritedContext;\n if (\n // Since the presence of @client or @defer on this field can only\n // cause clientOnly or deferred to become true, we can skip the\n // forEach loop if both clientOnly and deferred are already true.\n !(clientOnly && deferred) &&\n isNonEmptyArray(selection.directives)\n ) {\n selection.directives.forEach(dir => {\n const name = dir.name.value;\n if (name === \"client\") clientOnly = true;\n if (name === \"defer\") {\n const args = argumentsObjectFromField(dir, context.variables);\n // The @defer directive takes an optional args.if boolean\n // argument, similar to @include(if: boolean). Note that\n // @defer(if: false) does not make context.deferred false, but\n // instead behaves as if there was no @defer directive.\n if (!args || (args as { if?: boolean }).if !== false) {\n deferred = true;\n }\n // TODO In the future, we may want to record args.label using\n // context.deferred, if a label is specified.\n }\n });\n }\n\n if (isField(selection)) {\n const existing = fieldMap.get(selection);\n if (existing) {\n // If this field has been visited along another recursive path\n // before, the final context should have clientOnly or deferred set\n // to true only if *all* paths have the directive (hence the &&).\n clientOnly = clientOnly && existing.clientOnly;\n deferred = deferred && existing.deferred;\n }\n\n fieldMap.set(\n selection,\n getContextFlavor(context, clientOnly, deferred),\n );\n\n } else {\n const fragment = getFragmentFromSelection(\n selection,\n context.lookupFragment,\n );\n\n if (!fragment && selection.kind === Kind.FRAGMENT_SPREAD) {\n throw new InvariantError(`No fragment named ${selection.name.value}`);\n }\n\n if (fragment &&\n policies.fragmentMatches(\n fragment, typename, result, context.variables)) {\n\n flatten(\n fragment.selectionSet,\n getContextFlavor(context, clientOnly, deferred),\n );\n }\n }\n });\n })(selectionSet, context);\n\n return fieldMap;\n }\n\n private applyMerges<T extends StoreValue>(\n mergeTree: MergeTree,\n existing: StoreValue,\n incoming: T,\n context: WriteContext,\n getStorageArgs?: Parameters<EntityStore[\"getStorage\"]>,\n ): T | Reference {\n if (mergeTree.map.size && !isReference(incoming)) {\n const e: StoreObject | Reference | undefined = (\n // Items in the same position in different arrays are not\n // necessarily related to each other, so when incoming is an array\n // we process its elements as if there was no existing data.\n !isArray(incoming) &&\n // Likewise, existing must be either a Reference or a StoreObject\n // in order for its fields to be safe to merge with the fields of\n // the incoming object.\n (isReference(existing) || storeValueIsStoreObject(existing))\n ) ? existing : void 0;\n\n // This narrowing is implied by mergeTree.map.size > 0 and\n // !isReference(incoming), though TypeScript understandably cannot\n // hope to infer this type.\n const i = incoming as StoreObject | StoreValue[];\n\n // The options.storage objects provided to read and merge functions\n // are derived from the identity of the parent object plus a\n // sequence of storeFieldName strings/numbers identifying the nested\n // field name path of each field value to be merged.\n if (e && !getStorageArgs) {\n getStorageArgs = [isReference(e) ? e.__ref : e];\n }\n\n // It's possible that applying merge functions to this subtree will\n // not change the incoming data, so this variable tracks the fields\n // that did change, so we can create a new incoming object when (and\n // only when) at least one incoming field has changed. We use a Map\n // to preserve the type of numeric keys.\n let changedFields: Map<string | number, StoreValue> | undefined;\n\n const getValue = (\n from: typeof e | typeof i,\n name: string | number,\n ): StoreValue => {\n return isArray(from)\n ? (typeof name === \"number\" ? from[name] : void 0)\n : context.store.getFieldValue(from, String(name))\n };\n\n mergeTree.map.forEach((childTree, storeFieldName) => {\n const eVal = getValue(e, storeFieldName);\n const iVal = getValue(i, storeFieldName);\n // If we have no incoming data, leave any existing data untouched.\n if (void 0 === iVal) return;\n if (getStorageArgs) {\n getStorageArgs.push(storeFieldName);\n }\n const aVal = this.applyMerges(\n childTree,\n eVal,\n iVal,\n context,\n getStorageArgs,\n );\n if (aVal !== iVal) {\n changedFields = changedFields || new Map;\n changedFields.set(storeFieldName, aVal);\n }\n if (getStorageArgs) {\n invariant(getStorageArgs.pop() === storeFieldName);\n }\n });\n\n if (changedFields) {\n // Shallow clone i so we can add changed fields to it.\n incoming = (isArray(i) ? i.slice(0) : { ...i }) as T;\n changedFields.forEach((value, name) => {\n (incoming as any)[name] = value;\n });\n }\n }\n\n if (mergeTree.info) {\n return this.cache.policies.runMergeFunction(\n existing,\n incoming,\n mergeTree.info,\n context,\n getStorageArgs && context.store.getStorage(...getStorageArgs),\n );\n }\n\n return incoming;\n }\n}\n\nconst emptyMergeTreePool: MergeTree[] = [];\n\nfunction getChildMergeTree(\n { map }: MergeTree,\n name: string | number,\n): MergeTree {\n if (!map.has(name)) {\n map.set(name, emptyMergeTreePool.pop() || { map: new Map });\n }\n return map.get(name)!;\n}\n\nfunction mergeMergeTrees(\n left: MergeTree | undefined,\n right: MergeTree | undefined,\n): MergeTree {\n if (left === right || !right || mergeTreeIsEmpty(right)) return left!;\n if (!left || mergeTreeIsEmpty(left)) return right;\n\n const info = left.info && right.info ? {\n ...left.info,\n ...right.info,\n } : left.info || right.info;\n\n const needToMergeMaps = left.map.size && right.map.size;\n const map = needToMergeMaps ? new Map :\n left.map.size ? left.map : right.map;\n\n const merged = { info, map };\n\n if (needToMergeMaps) {\n const remainingRightKeys = new Set(right.map.keys());\n\n left.map.forEach((leftTree, key) => {\n merged.map.set(\n key,\n mergeMergeTrees(leftTree, right.map.get(key)),\n );\n remainingRightKeys.delete(key);\n });\n\n remainingRightKeys.forEach(key => {\n merged.map.set(\n key,\n mergeMergeTrees(\n right.map.get(key),\n left.map.get(key),\n ),\n );\n });\n }\n\n return merged;\n}\n\nfunction mergeTreeIsEmpty(tree: MergeTree | undefined): boolean {\n return !tree || !(tree.info || tree.map.size);\n}\n\nfunction maybeRecycleChildMergeTree(\n { map }: MergeTree,\n name: string | number,\n) {\n const childTree = map.get(name);\n if (childTree && mergeTreeIsEmpty(childTree)) {\n emptyMergeTreePool.push(childTree);\n map.delete(name);\n }\n}\n\nconst warnings = new Set<string>();\n\n// Note that this function is unused in production, and thus should be\n// pruned by any well-configured minifier.\nfunction warnAboutDataLoss(\n existingRef: Reference,\n incomingObj: StoreObject,\n storeFieldName: string,\n store: NormalizedCache,\n) {\n const getChild = (objOrRef: StoreObject | Reference): StoreObject | false => {\n const child = store.getFieldValue<StoreObject>(objOrRef, storeFieldName);\n return typeof child === \"object\" && child;\n };\n\n const existing = getChild(existingRef);\n if (!existing) return;\n\n const incoming = getChild(incomingObj);\n if (!incoming) return;\n\n // It's always safe to replace a reference, since it refers to data\n // safely stored elsewhere.\n if (isReference(existing)) return;\n\n // If the values are structurally equivalent, we do not need to worry\n // about incoming replacing existing.\n if (equal(existing, incoming)) return;\n\n // If we're replacing every key of the existing object, then the\n // existing data would be overwritten even if the objects were\n // normalized, so warning would not be helpful here.\n if (Object.keys(existing).every(\n key => store.getFieldValue(incoming, key) !== void 0)) {\n return;\n }\n\n const parentType =\n store.getFieldValue<string>(existingRef, \"__typename\") ||\n store.getFieldValue<string>(incomingObj, \"__typename\");\n const fieldName = fieldNameFromStoreName(storeFieldName);\n const typeDotName = `${parentType}.${fieldName}`;\n // Avoid warning more than once for the same type and field name.\n if (warnings.has(typeDotName)) return;\n warnings.add(typeDotName);\n\n const childTypenames: string[] = [];\n // Arrays do not have __typename fields, and always need a custom merge\n // function, even if their elements are normalized entities.\n if (!isArray(existing) &&\n !isArray(incoming)) {\n [existing, incoming].forEach(child => {\n const typename = store.getFieldValue(child, \"__typename\");\n if (typeof typename === \"string\" &&\n !childTypenames.includes(typename)) {\n childTypenames.push(typename);\n }\n });\n }\n\n invariant.warn(\n`Cache data may be lost when replacing the ${fieldName} field of a ${parentType} object.\n\nTo address this problem (which is not a bug in Apollo Client), ${\n childTypenames.length\n ? \"either ensure all objects of type \" +\n childTypenames.join(\" and \") + \" have an ID or a custom merge function, or \"\n : \"\"\n}define a custom merge function for the ${\n typeDotName\n} field, so InMemoryCache can safely merge these objects:\n\n existing: ${JSON.stringify(existing).slice(0, 1000)}\n incoming: ${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}\n","import { invariant } from '../../utilities/globals';\n\n// Make builtins like Map and Set safe to use with non-extensible objects.\nimport './fixPolyfills';\n\nimport { DocumentNode } from 'graphql';\nimport { OptimisticWrapperFunction, wrap } from 'optimism';\nimport { equal } from '@wry/equality';\n\nimport { ApolloCache } from '../core/cache';\nimport { Cache } from '../core/types/Cache';\nimport { MissingFieldError } from '../core/types/common';\nimport {\n addTypenameToDocument,\n StoreObject,\n Reference,\n isReference,\n} from '../../utilities';\nimport { InMemoryCacheConfig, NormalizedCacheObject } from './types';\nimport { StoreReader } from './readFromStore';\nimport { StoreWriter } from './writeToStore';\nimport { EntityStore, supportsResultCaching } from './entityStore';\nimport { makeVar, forgetCache, recallCache } from './reactiveVars';\nimport { Policies } from './policies';\nimport { hasOwn, normalizeConfig, shouldCanonizeResults } from './helpers';\nimport { canonicalStringify } from './object-canon';\nimport { OperationVariables } from '../../core';\n\ntype BroadcastOptions = Pick<\n Cache.BatchOptions<InMemoryCache>,\n | \"optimistic\"\n | \"onWatchUpdated\"\n>\n\nexport class InMemoryCache extends ApolloCache<NormalizedCacheObject> {\n private data: EntityStore;\n private optimisticData: EntityStore;\n\n protected config: InMemoryCacheConfig;\n private watches = new Set<Cache.WatchOptions>();\n private addTypename: boolean;\n\n private typenameDocumentCache = new Map<DocumentNode, DocumentNode>();\n private storeReader: StoreReader;\n private storeWriter: StoreWriter;\n\n private maybeBroadcastWatch: OptimisticWrapperFunction<\n [Cache.WatchOptions, BroadcastOptions?],\n any,\n [Cache.WatchOptions]>;\n\n // Dynamically imported code can augment existing typePolicies or\n // possibleTypes by calling cache.policies.addTypePolicies or\n // cache.policies.addPossibletypes.\n public readonly policies: Policies;\n\n public readonly makeVar = makeVar;\n\n constructor(config: InMemoryCacheConfig = {}) {\n super();\n this.config = normalizeConfig(config);\n this.addTypename = !!this.config.addTypename;\n\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\n private init() {\n // Passing { resultCaching: false } in the InMemoryCache constructor options\n // will completely disable dependency tracking, which will improve memory\n // usage but worsen the performance of repeated reads.\n const rootStore = this.data = new EntityStore.Root({\n policies: this.policies,\n resultCaching: this.config.resultCaching,\n });\n\n // When no optimistic writes are currently active, cache.optimisticData ===\n // cache.data, so there are no additional layers on top of the actual data.\n // When an optimistic update happens, this.optimisticData will become a\n // linked list of EntityStore Layer objects that terminates with the\n // original this.data cache object.\n this.optimisticData = rootStore.stump;\n\n this.resetResultCache();\n }\n\n private resetResultCache(resetResultIdentities?: boolean) {\n const previousReader = this.storeReader;\n const { fragments } = this.config;\n\n // The StoreWriter is mostly stateless and so doesn't really need to be\n // reset, but it does need to have its writer.storeReader reference updated,\n // so it's simpler to update this.storeWriter as well.\n this.storeWriter = new StoreWriter(\n this,\n this.storeReader = new StoreReader({\n cache: this,\n addTypename: this.addTypename,\n resultCacheMaxSize: this.config.resultCacheMaxSize,\n canonizeResults: shouldCanonizeResults(this.config),\n canon: resetResultIdentities\n ? void 0\n : previousReader && previousReader.canon,\n fragments,\n }),\n fragments,\n );\n\n this.maybeBroadcastWatch = wrap((\n c: Cache.WatchOptions,\n options?: BroadcastOptions,\n ) => {\n return this.broadcastWatch(c, options);\n }, {\n max: this.config.resultCacheMaxSize,\n makeCacheKey: (c: Cache.WatchOptions) => {\n // Return a cache key (thus enabling result caching) only if we're\n // currently using a data store that can track cache dependencies.\n const store = c.optimistic ? this.optimisticData : this.data;\n if (supportsResultCaching(store)) {\n const { optimistic, id, variables } = c;\n return store.makeCacheKey(\n c.query,\n // Different watches can have the same query, optimistic\n // status, rootId, and variables, but if their callbacks are\n // different, the (identical) result needs to be delivered to\n // each distinct callback. The easiest way to achieve that\n // separation is to include c.callback in the cache key for\n // maybeBroadcastWatch calls. See issue #5733.\n c.callback,\n canonicalStringify({ optimistic, id, variables }),\n );\n }\n }\n });\n\n // Since we have thrown away all the cached functions that depend on the\n // CacheGroup dependencies maintained by EntityStore, we should also reset\n // all CacheGroup dependency information.\n new Set([\n this.data.group,\n this.optimisticData.group,\n ]).forEach(group => group.resetCaching());\n }\n\n public restore(data: NormalizedCacheObject): this {\n this.init();\n // Since calling this.init() discards/replaces the entire StoreReader, along\n // with the result caches it maintains, this.data.replace(data) won't have\n // to bother deleting the old data.\n if (data) this.data.replace(data);\n return this;\n }\n\n public extract(optimistic: boolean = false): NormalizedCacheObject {\n return (optimistic ? this.optimisticData : this.data).extract();\n }\n\n public read<T>(options: Cache.ReadOptions): T | null {\n const {\n // Since read returns data or null, without any additional metadata\n // about whether/where there might have been missing fields, the\n // default behavior cannot be returnPartialData = true (like it is\n // for the diff method), since defaulting to true would violate the\n // integrity of the T in the return type. However, partial data may\n // be useful in some cases, so returnPartialData:true may be\n // specified explicitly.\n returnPartialData = false,\n } = options;\n try {\n return this.storeReader.diffQueryAgainstStore<T>({\n ...options,\n store: options.optimistic ? this.optimisticData : this.data,\n config: this.config,\n returnPartialData,\n }).result || null;\n } catch (e) {\n if (e instanceof MissingFieldError) {\n // Swallow MissingFieldError and return null, so callers do not need to\n // worry about catching \"normal\" exceptions resulting from incomplete\n // cache data. Unexpected errors will be re-thrown. If you need more\n // information about which fields were missing, use cache.diff instead,\n // and examine diffResult.missing.\n return null;\n }\n throw e;\n }\n }\n\n public write(options: Cache.WriteOptions): Reference | undefined {\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 public modify(options: Cache.ModifyOptions): boolean {\n if (hasOwn.call(options, \"id\") && !options.id) {\n // To my knowledge, TypeScript does not currently provide a way to\n // enforce that an optional property?:type must *not* be undefined\n // when present. That ability would be useful here, because we want\n // options.id to default to ROOT_QUERY only when no options.id was\n // provided. If the caller attempts to pass options.id with a\n // falsy/undefined value (perhaps because cache.identify failed), we\n // should not assume the goal was to modify the ROOT_QUERY object.\n // We could throw, but it seems natural to return false to indicate\n // that nothing was modified.\n return false;\n }\n const store = options.optimistic // Defaults to false.\n ? this.optimisticData\n : this.data;\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 public diff<TData, TVariables extends OperationVariables = any>(\n options: Cache.DiffOptions<TData, TVariables>,\n ): Cache.DiffResult<TData> {\n return this.storeReader.diffQueryAgainstStore({\n ...options,\n store: options.optimistic ? this.optimisticData : this.data,\n rootId: options.id || \"ROOT_QUERY\",\n config: this.config,\n });\n }\n\n public watch<TData = any, TVariables = any>(\n watch: Cache.WatchOptions<TData, TVariables>,\n ): () => void {\n if (!this.watches.size) {\n // In case we previously called forgetCache(this) because\n // this.watches became empty (see below), reattach this cache to any\n // reactive variables on which it previously depended. It might seem\n // paradoxical that we're able to recall something we supposedly\n // forgot, but the point of calling forgetCache(this) is to silence\n // useless broadcasts while this.watches is empty, and to allow the\n // cache to be garbage collected. If, however, we manage to call\n // recallCache(this) here, this cache object must not have been\n // garbage collected yet, and should resume receiving updates from\n // reactive variables, now that it has a watcher to notify.\n recallCache(this);\n }\n this.watches.add(watch);\n if (watch.immediate) {\n this.maybeBroadcastWatch(watch);\n }\n return () => {\n // Once we remove the last watch from this.watches, cache.broadcastWatches\n // no longer does anything, so we preemptively tell the reactive variable\n // system to exclude this cache from future broadcasts.\n if (this.watches.delete(watch) && !this.watches.size) {\n forgetCache(this);\n }\n // Remove this watch from the LRU cache managed by the\n // maybeBroadcastWatch OptimisticWrapperFunction, to prevent memory\n // leaks involving the closure of watch.callback.\n this.maybeBroadcastWatch.forget(watch);\n };\n }\n\n public gc(options?: {\n // If true, also free non-essential result cache memory by bulk-releasing\n // this.{store{Reader,Writer},maybeBroadcastWatch}. Defaults to false.\n resetResultCache?: boolean;\n // If resetResultCache is true, this.storeReader.canon will be preserved by\n // default, but can also be discarded by passing resetResultIdentities:true.\n // Defaults to false.\n resetResultIdentities?: boolean;\n }) {\n canonicalStringify.reset();\n const ids = this.optimisticData.gc();\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 return ids;\n }\n\n // Call this method to ensure the given root ID remains in the cache after\n // garbage collection, along with its transitive child entities. Note that\n // the cache automatically retains all directly written entities. By default,\n // the retainment persists after optimistic updates are removed. Pass true\n // for the optimistic argument if you would prefer for the retainment to be\n // discarded when the top-most optimistic layer is removed. Returns the\n // resulting (non-negative) retainment count.\n public retain(rootId: string, optimistic?: boolean): number {\n return (optimistic ? this.optimisticData : this.data).retain(rootId);\n }\n\n // Call this method to undo the effect of the retain method, above. Once the\n // retainment count falls to zero, the given ID will no longer be preserved\n // during garbage collection, though it may still be preserved by other safe\n // entities that refer to it. Returns the resulting (non-negative) retainment\n // count, in case that's useful.\n public release(rootId: string, optimistic?: boolean): number {\n return (optimistic ? this.optimisticData : this.data).release(rootId);\n }\n\n // Returns the canonical ID for a given StoreObject, obeying typePolicies\n // and keyFields (and dataIdFromObject, if you still use that). At minimum,\n // the object must contain a __typename and any primary key fields required\n // to identify entities of that type. If you pass a query result object, be\n // sure that none of the primary key fields have been renamed by aliasing.\n // If you pass a Reference object, its __ref ID string will be returned.\n public identify(object: StoreObject | Reference): string | undefined {\n if (isReference(object)) return object.__ref;\n try {\n return this.policies.identify(object)[0];\n } catch (e) {\n invariant.warn(e);\n }\n }\n\n public evict(options: Cache.EvictOptions): boolean {\n if (!options.id) {\n if (hasOwn.call(options, \"id\")) {\n // See comment in modify method about why we return false when\n // options.id exists but is falsy/undefined.\n return false;\n }\n options = { ...options, id: \"ROOT_QUERY\" };\n }\n try {\n // It's unlikely that the eviction will end up invoking any other\n // cache update operations while it's running, but {in,de}crementing\n // this.txCount still seems like a good idea, for uniformity with\n // the other update methods.\n ++this.txCount;\n // Pass this.data as a limit on the depth of the eviction, so evictions\n // during optimistic updates (when this.data is temporarily set equal to\n // this.optimisticData) do not escape their optimistic Layer.\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 public reset(options?: Cache.ResetOptions): Promise<void> {\n this.init();\n\n canonicalStringify.reset();\n\n if (options && options.discardWatches) {\n // Similar to what happens in the unsubscribe function returned by\n // cache.watch, applied to all current watches.\n this.watches.forEach(watch => this.maybeBroadcastWatch.forget(watch));\n this.watches.clear();\n forgetCache(this);\n } else {\n // Calling this.init() above unblocks all maybeBroadcastWatch caching, so\n // this.broadcastWatches() triggers a broadcast to every current watcher\n // (letting them know their data is now missing). This default behavior is\n // convenient because it means the watches do not have to be manually\n // reestablished after resetting the cache. To prevent this broadcast and\n // cancel all watches, pass true for options.discardWatches.\n this.broadcastWatches();\n }\n\n return Promise.resolve();\n }\n\n public removeOptimistic(idToRemove: string) {\n const newOptimisticData = this.optimisticData.removeLayer(idToRemove);\n if (newOptimisticData !== this.optimisticData) {\n this.optimisticData = newOptimisticData;\n this.broadcastWatches();\n }\n }\n\n private txCount = 0;\n\n public batch<TUpdateResult>(\n options: Cache.BatchOptions<InMemoryCache, TUpdateResult>,\n ): TUpdateResult {\n const {\n update,\n optimistic = true,\n removeOptimistic,\n onWatchUpdated,\n } = options;\n\n let updateResult: TUpdateResult;\n const perform = (layer?: EntityStore): TUpdateResult => {\n const { data, optimisticData } = this;\n ++this.txCount;\n if (layer) {\n this.data = this.optimisticData = layer;\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 const alreadyDirty = new Set<Cache.WatchOptions>();\n\n if (onWatchUpdated && !this.txCount) {\n // If an options.onWatchUpdated callback is provided, we want to call it\n // with only the Cache.WatchOptions objects affected by options.update,\n // but there might be dirty watchers already waiting to be broadcast that\n // have nothing to do with the update. To prevent including those watchers\n // in the post-update broadcast, we perform this initial broadcast to\n // collect the dirty watchers, so we can re-dirty them later, after the\n // post-update broadcast, allowing them to receive their pending\n // broadcasts the next time broadcastWatches is called, just as they would\n // if we never called cache.batch.\n this.broadcastWatches({\n ...options,\n onWatchUpdated(watch) {\n alreadyDirty.add(watch);\n return false;\n },\n });\n }\n\n if (typeof optimistic === 'string') {\n // Note that there can be multiple layers with the same optimistic ID.\n // When removeOptimistic(id) is called for that id, all matching layers\n // will be removed, and the remaining layers will be reapplied.\n this.optimisticData = this.optimisticData.addLayer(optimistic, perform);\n } else if (optimistic === false) {\n // Ensure both this.data and this.optimisticData refer to the root\n // (non-optimistic) layer of the cache during the update. Note that\n // this.data could be a Layer if we are currently executing an optimistic\n // update function, but otherwise will always be an EntityStore.Root\n // instance.\n perform(this.data);\n } else {\n // Otherwise, leave this.data and this.optimisticData unchanged and run\n // the update with broadcast batching.\n perform();\n }\n\n if (typeof removeOptimistic === \"string\") {\n this.optimisticData = this.optimisticData.removeLayer(removeOptimistic);\n }\n\n // Note: if this.txCount > 0, then alreadyDirty.size === 0, so this code\n // takes the else branch and calls this.broadcastWatches(options), which\n // does nothing when this.txCount > 0.\n if (onWatchUpdated && alreadyDirty.size) {\n this.broadcastWatches({\n ...options,\n onWatchUpdated(watch, diff) {\n const result = onWatchUpdated.call(this, watch, diff);\n if (result !== false) {\n // Since onWatchUpdated did not return false, this diff is\n // about to be broadcast to watch.callback, so we don't need\n // to re-dirty it with the other alreadyDirty watches below.\n alreadyDirty.delete(watch);\n }\n return result;\n }\n });\n // Silently re-dirty any watches that were already dirty before the update\n // was performed, and were not broadcast just now.\n if (alreadyDirty.size) {\n alreadyDirty.forEach(watch => this.maybeBroadcastWatch.dirty(watch));\n }\n } else {\n // If alreadyDirty is empty or we don't have an onWatchUpdated\n // function, we don't need to go to the trouble of wrapping\n // options.onWatchUpdated.\n this.broadcastWatches(options);\n }\n\n return updateResult!;\n }\n\n public performTransaction(\n update: (cache: InMemoryCache) => any,\n optimisticId?: string | null,\n ) {\n return this.batch({\n update,\n optimistic: optimisticId || (optimisticId !== null),\n });\n }\n\n public transformDocument(document: DocumentNode): DocumentNode {\n if (this.addTypename) {\n let result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n // If someone calls transformDocument and then mistakenly passes the\n // result back into an API that also calls transformDocument, make sure\n // we don't keep creating new query documents.\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n }\n\n public transformForLink(document: DocumentNode): DocumentNode {\n const { fragments } = this.config;\n return fragments\n ? fragments.transform(document)\n : document;\n }\n\n protected broadcastWatches(options?: BroadcastOptions) {\n if (!this.txCount) {\n this.watches.forEach(c => this.maybeBroadcastWatch(c, options));\n }\n }\n\n // This method is wrapped by maybeBroadcastWatch, which is called by\n // broadcastWatches, so that we compute and broadcast results only when\n // the data that would be broadcast might have changed. It would be\n // simpler to check for changes after recomputing a result but before\n // broadcasting it, but this wrapping approach allows us to skip both\n // the recomputation and the broadcast, in most cases.\n private broadcastWatch(\n c: Cache.WatchOptions,\n options?: BroadcastOptions,\n ) {\n const { lastDiff } = c;\n\n // Both WatchOptions and DiffOptions extend ReadOptions, and DiffOptions\n // currently requires no additional properties, so we can use c (a\n // WatchOptions object) as DiffOptions, without having to allocate a new\n // object, and without having to enumerate the relevant properties (query,\n // variables, etc.) explicitly. There will be some additional properties\n // (lastDiff, callback, etc.), but cache.diff ignores them.\n const diff = this.diff<any>(c);\n\n if (options) {\n if (c.optimistic &&\n typeof options.optimistic === \"string\") {\n diff.fromOptimisticTransaction = true;\n }\n\n if (options.onWatchUpdated &&\n options.onWatchUpdated.call(this, c, diff, lastDiff) === false) {\n // Returning false from the onWatchUpdated callback will prevent\n // calling c.callback(diff) for this watcher.\n return;\n }\n }\n\n if (!lastDiff || !equal(lastDiff.result, diff.result)) {\n c.callback(c.lastDiff = diff, lastDiff);\n }\n }\n}\n","import * as React from 'react';\nimport { ApolloClient } from '../../core';\nimport { canUseSymbol } from '../../utilities';\nimport type { RenderPromises } from '../ssr';\n\nexport interface ApolloContextValue {\n client?: ApolloClient<object>;\n renderPromises?: RenderPromises;\n}\n\n// To make sure Apollo Client doesn't create more than one React context\n// (which can lead to problems like having an Apollo Client instance added\n// in one context, then attempting to retrieve it from another different\n// context), a single Apollo context is created and tracked in global state.\nconst contextKey = canUseSymbol\n ? Symbol.for('__APOLLO_CONTEXT__')\n : '__APOLLO_CONTEXT__';\n\nexport function getApolloContext(): React.Context<ApolloContextValue> {\n let context = (React.createContext as any)[contextKey] as React.Context<ApolloContextValue>;\n if (!context) {\n Object.defineProperty(React.createContext, contextKey, {\n value: context = React.createContext<ApolloContextValue>({}),\n enumerable: false,\n writable: false,\n configurable: true,\n });\n context.displayName = 'ApolloContext';\n }\n return context;\n}\n\nexport { getApolloContext as resetApolloContext }\n","import { invariant } from '../../utilities/globals';\n\nimport * as React from 'react';\n\nimport { ApolloClient } from '../../core';\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps<TCache> {\n client: ApolloClient<TCache>;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC<ApolloProviderProps<any>> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n <ApolloContext.Consumer>\n {(context: any = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n <ApolloContext.Provider value={context}>\n {children}\n </ApolloContext.Provider>\n );\n }}\n </ApolloContext.Consumer>\n );\n};\n","import \"./App.scss\";\nimport React from \"react\";\nimport { BrowserRouter as Router, Routes, Route } from \"react-router-dom\";\nimport { AppContext } from \"context/AppContext\";\nimport AnimatedCursor from \"react-animated-cursor\";\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { I18nextProvider } from 'react-i18next';\nimport Layout from \"layouts/Layout\";\nimport Home from \"pages/Home\";\nimport MediaAndPress from \"pages/MediaAndPress\";\nimport Team from \"pages/Team\";\nimport RoadMap from \"pages/Roadmap\";\nimport FAQ from \"pages/FAQ\";\nimport AboutUs from \"pages/AboutUs\";\n// import Xenii2 from \"pages/Xenii2\";\n// import GoldMines from \"pages/GoldMines\";\n// import Stake2Win from \"pages/Stake2Win\";\n// import Academy from \"pages/Academy\";\nimport ScrollToTop from \"Hooks/scrollToTop\";\nimport ScrollToTopButton from \"components/ScrollToTopButton\";\n// import ReactCountryFlag from \"react-country-flag\";\n// import { useState } from \"react\";\nimport i18n from \"i18next\";\nimport en from \"./locales/en.json\";\nimport fa from \"./locales/fa.json\";3\nimport { QueryClient, QueryClientProvider } from 'react-query'\n\nconst queryClient = new QueryClient()\n\n\nimport { ImageRotationProvider } from '../src/ImageRotationContext';\n\nconst client = new ApolloClient({\n uri: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-polygon',\n cache: new InMemoryCache(),\n});\n\ni18n.init({\n lng: \"en\",\n fallbackLng: \"en\",\n resources: {\n en: { translation: en },\n fa: { translation: fa },\n },\n});\n\nconst App = () => {\n\n return (\n <ImageRotationProvider>\n <AppContext.Provider value={{}}>\n <QueryClientProvider client={queryClient}>\n <ApolloProvider client={client}>\n <Router>\n <AnimatedCursor\n color=\"255,255,255\"\n innerSize={0}\n outerSize={15}\n innerScale={0}\n outerScale={2}\n outerAlpha={0}\n outerStyle={{\n backgroundColor: \"rgba(255, 255, 255, 0.5)\",\n }}\n hideNativeCursor={false}\n clickables={[\n \"a\",\n 'input[type=\"text\"]',\n 'input[type=\"email\"]',\n 'input[type=\"number\"]',\n 'input[type=\"submit\"]',\n 'input[type=\"image\"]',\n \"label[for]\",\n \"select\",\n \"textarea\",\n \"button\",\n \".myLinkForCursor\",\n ]}\n />\n <I18nextProvider i18n={i18n}>\n <Layout>\n <ScrollToTop />\n <ScrollToTopButton />\n\n <Routes>\n <Route path=\"/\" exact element={<Home />} />\n <Route path=\"/media-and-press\" element={<MediaAndPress />} />\n <Route path=\"/team\" element={<Team />} />\n <Route path=\"/roadmap\" element={<RoadMap />} />\n <Route path=\"/faq\" element={<FAQ />} />\n <Route path=\"/about-us\" element={<AboutUs />} />\n {/* <Route path=\"/xenii\" element={<Xenii2 />} />\n <Route path=\"/mines\" element={<GoldMines />} />\n <Route path=\"/stake-2-win\" element={<Stake2Win />} />\n <Route path=\"/academy\" element={<Academy />} /> */}\n </Routes>\n </Layout>\n </I18nextProvider>\n </Router>\n </ApolloProvider>\n </QueryClientProvider>\n </AppContext.Provider>\n </ImageRotationProvider>\n );\n};\n\nexport default App;\n","import { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nexport const ScrollToTop = () => {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n\nexport default ScrollToTop;\n","import React, { createContext, useState } from 'react';\n\nconst ImageRotationContext = createContext();\n\nconst ImageRotationProvider = ({ children }) => {\n const [rotateImage, setRotateImage] = useState(false);\n\n const handleRotateImage = () => {\n setRotateImage(!rotateImage);\n };\n\n return (\n <ImageRotationContext.Provider value={{ rotateImage, handleRotateImage }}>\n {children}\n </ImageRotationContext.Provider>\n );\n};\n\nexport { ImageRotationContext, ImageRotationProvider };\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgChevronDown2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66797 15L20.0013 28.3333L33.3346 15\",\n stroke: \"currentColor\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDown2);\nexport default __webpack_public_path__ + \"static/media/chevron-down-2.9d5359fef52901b81c34513e457be236.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport { ReactComponent as ChevronDownIcon } from \"assets/images/icons/chevron-down-2.svg\";\n\nconst Accordion = ({ title, content, index, innerRef, parentRef }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const toggleAccordion = () => {\n setIsExpanded((prevState) => !prevState);\n };\n\n useEffect(() => {\n const handleClickOutside = ({ target }) => {\n try {\n if (\n parentRef?.current[index] &&\n !parentRef.current[index].contains(target)\n ) {\n setIsExpanded(false);\n }\n } catch (error) {\n console.log(error);\n }\n };\n\n document && document?.addEventListener(\"click\", handleClickOutside);\n\n return () => {\n document && document?.removeEventListener(\"click\", handleClickOutside);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div\n ref={innerRef}\n className={`${styles.accordion} ${\n isExpanded ? styles[\"accordion--expanded\"] : \"\"\n }`}\n >\n <div className={styles.accordion__top}>\n <h2 className={styles.accordion__title}>{title}</h2>\n\n <span className={styles.accordion__icon} onClick={toggleAccordion}>\n <ChevronDownIcon />\n </span>\n </div>\n\n {/* <div className={styles.accordion__bottom} dangerouslySetInnerHTML={{ __html: content }}> \n </div> */}\n <div className={styles.accordion__bottom}>\n {content.map((data, index) => (\n <p key={index} dangerouslySetInnerHTML={{ __html: data }}></p>\n ))}\n </div>\n </div>\n );\n};\n\nexport default Accordion;\n","import React, { useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport LaunchIconYellow from \"assets/images/icons/launch-icon-yellow.png\";\nimport LaunchIconWhite from \"assets/images/icons/launch-icon-white.png\";\n\nconst Button = ({ type = \"button\", text = \"\", variant = \"\", clickHandler }) => {\n const [isHovered, setIsHovered] = useState(false);\n\n const toggleHover = (STATE) => {\n setIsHovered(STATE);\n };\n\n return (\n <button\n type={type}\n className={`${styles.button} ${styles[variant]}`}\n onClick={clickHandler && clickHandler}\n onMouseEnter={() => toggleHover(true)}\n onMouseLeave={() => toggleHover(false)}\n >\n <span className={styles.button__icon}>\n <img src={isHovered ? LaunchIconWhite : LaunchIconYellow} alt=\"Icon\" />\n </span>\n\n <span className={styles.button__text}>{text && text}</span>\n </button>\n );\n};\n\nexport default Button;\n","import React from \"react\";\nimport styles from \"./index.module.scss\";\n\nconst CardStyle1 = ({\n image = \"\",\n title = \"\",\n subTitle = undefined,\n attributes = [],\n showCta = false,\n ctaText = \"\",\n lastUpdated,\n ctaFunc = () => { },\n}) => {\n return (\n <div className={styles.card}>\n <div className={styles.card__wrapper} style={{height: '100%'}}>\n <div className={styles.card__top}>\n <div className={styles.card__image}>\n <figure>\n <img src={image} alt={title || \"\"} />\n </figure>\n </div>\n\n <div className={styles.card__title}>\n <h2>{title}</h2>\n {subTitle &&\n <div className={styles.card__subTitle}>\n {subTitle}\n </div>}\n </div>\n </div>\n\n <div className={styles.card__middle}>\n <div className={styles.card__attributes}>\n {attributes.length &&\n attributes.map((attribute, index) => {\n return (\n <div key={index} className={styles.card__attributes__item}>\n <span className={styles.card__attributes__name}>\n {attribute.name || \"\"}\n </span>\n <span className={styles.card__attributes__value}>\n {attribute.value || \"\"}\n </span>\n </div>\n );\n })}\n </div>\n </div>\n\n <div\n className={styles.card__bottom}\n style={{ display: ctaText ? \"block\" : \"none\" }}\n >\n {showCta && (\n <button type=\"button\" onClick={ctaFunc}>\n {ctaText}\n </button>\n )}\n </div>\n\n {lastUpdated && (\n <div className={styles.card__lastUpdated}>\n <p>Last Updated</p>\n <p>{lastUpdated}</p>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default CardStyle1;\n","import React, { Fragment, useState, useEffect } from \"react\";\nimport styles from \"./index.module.scss\";\nimport { Link } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { footerConfig } from \"configs/footerConfig\";\n\n/* Logo & SVG Icons Below */\nimport Logo from \"assets/images/gp-logo-footer.png\";\nimport { ReactComponent as ExternalLinkIcon } from \"assets/images/icons/external-link.svg\";\nimport Button from \"components/Button\";\n\nconst Footer = () => {\n const [isWidth1440, setIsWidth1440] = useState(false);\n\n const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent) && window.innerWidth < 770;\n const isMobile2 = window.innerWidth <= 768;\n const isDesktop = window.innerWidth > 768;\n const launchAppFunc = () => {\n window.location.href = footerConfig.launchAppLink;\n };\n const { t } = useTranslation();\n\n\n useEffect(() => {\n const handleResize = () => {\n setIsWidth1440(window.innerWidth >= 1100 && window.innerWidth <= 1440);\n };\n\n handleResize(); // Check on initial render\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n\n return (\n <div id=\"footer\" className={styles.footer}>\n <div className={styles.footer__wrapper}>\n <div className={styles.footer__mainArea}>\n <div className={styles.footer__left}>\n <Link to=\"/\" className={styles.footer__logo}>\n <figure>\n <img src={Logo} alt=\"Goldpesa Logo\" />\n </figure>\n </Link>\n\n <div className={styles.footer__address}>\n <p></p>\n </div>\n\n <div className={styles.footer__email}>\n <a href={`mailto:${footerConfig.email}`}>{t(footerConfig.email)}</a>\n </div>\n\n <div className={styles.footer__socialLinks}>\n <div className={styles.footer__socialLinks__wrapper}>\n {footerConfig &&\n footerConfig.socialLinks.map((socialAddress, index) => {\n return (\n <span key={index} style={{ display: \"inline-block\" }}>\n <a\n href={socialAddress.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img\n // eslint-disable-next-line no-undef\n src={require(`assets/images/social-icons/${socialAddress.id}.svg`)}\n alt={socialAddress.name}\n />\n </a>\n </span>\n );\n })}\n \n </div>\n </div>\n </div>\n\n <div className={styles.footer__right}>\n <div className={styles.footer__nav}>\n {footerConfig.navigationLinks.map((item, index) => {\n return (\n <>\n {(item.name === \"Company\" || item.name === \"Resources\") && (\n <div key={index} className={styles.footer__nav__group}>\n <>\n {item.type === \"link\" ? (\n <Link\n to={item.link}\n className={styles.footer__nav__title}\n \n >\n {t(item.name)}\n </Link>\n ) : (\n <h2 className={styles.footer__nav__title} style={{\n marginLeft: (item.name === \"Resources\") ? \"0px\": \"\"\n }}>\n \n {t(item.name)}\n </h2>\n )}\n <ul\n className={`${styles.footer__nav__list} ${\n item.type === \"link\" ? styles.empty : \"\"\n }`}\n style={{\n marginLeft: isMobile2 && item.name === \"Company\" ? \"0px\" : \"\",\n }}\n >\n {item &&\n item.dropdownLinks &&\n Object.values(item.dropdownLinks).length &&\n Object.values(item.dropdownLinks).map(\n (link, index) => {\n return (\n <li\n key={index}\n className={styles.footer__nav__item}\n >\n {link.isExternal ? (\n <Fragment >\n <a\n href={link.path}\n target=\"_blank\"\n rel=\"noreferrer\"\n className={styles.footer__nav__link}\n >\n {t(link.name)}\n </a>\n <span\n className={styles.footer__nav__icon}\n >\n <ExternalLinkIcon />\n </span>\n </Fragment>\n ) : (\n <Fragment>\n <Link\n to={link.path}\n className={styles.footer__nav__link}\n >\n {t(link.name)}\n </Link>\n </Fragment>\n )}\n </li>\n );\n }\n )}\n </ul>\n\n \n </>\n </div>\n )}\n \n </>\n );\n })}\n\n {/* Footer CTA */}\n <div className={`${styles.footer__cta} ${styles.mobileHidden}`}>\n <Button\n type=\"button\"\n text={t(\"LAUNCH APP\")}\n variant=\"footer\"\n clickHandler={launchAppFunc}\n />\n </div>\n </div>\n\n <div className=\"footer-title\" style={{\n width: isMobile2 ? '100%' : '56%',\n display: 'flex',\n marginTop: '15px',\n justifyContent: isMobile ? 'space-around' : 'center',\n alignItems: 'center',\n ...(isMobile && { justifyContent: 'space-around' }),\n }}>\n {footerConfig.navigationLinks.map(\n (item, index) =>\n (item.name === \"Media & Press\" || item.name === \"How it Works?\") && (\n <React.Fragment key={index}>\n <div>\n {item.type === \"link\" ? (\n <Link\n to={item.link}\n className={styles.footer__nav__title}\n style={{\n marginLeft: \n (window.innerWidth === 820 && item.name === \"How it Works?\") ? \"0px\" :\n (window.innerWidth >= 1441 && item.name === \"How it Works?\") ? \"-12px\" :\n item.name === \"How it Works?\" ? \"18px\" :\n \"\",\n marginRight:\n (window.innerWidth === 820 && item.name === \"Media & Press\") ? \"0px\" :\n (isWidth1440 && item.name === \"How it Works?\") ? \"17px\" :\n (window.innerWidth >= 820 && window.innerWidth <= 1099) ? \"7px\" :\n \"\",\n }}\n >\n {t(item.name)}\n </Link>\n ) : (\n <h2 className={styles.footer__nav__title}>\n {t(item.name)}\n </h2>\n )}\n </div>\n {isDesktop && index < footerConfig.navigationLinks.length - 1 && (\n <div\n className=\"footer-item\"\n style={{\n flexBasis: '24%',\n height: '0',\n margin: isMobile ? '5px 6px' : '10px',\n }}\n />\n )}\n </React.Fragment>\n )\n )}\n</div>\n\n\n\n \n\n </div>\n </div>\n\n <div\n className={`${styles.footer} ${styles.desktopHidden} ${styles.btnCenter}`}\n style={{\n marginBottom: '30px',\n display: 'flex',\n justifyContent: 'center',\n '@media (maxWidth: : 768px)': {\n visibility: 'visible',\n },\n }}\n>\n <Button\n type=\"button\"\n text={t(\"LAUNCH APP\")}\n variant=\"footer\"\n clickHandler={launchAppFunc}\n />\n</div>\n\n <hr className={styles.footer__divider}></hr>\n\n <div className={styles.footer__bottom}>\n <p>{t(\"Copyright 2020 GoldPesa\")}</p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Footer;\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgChevronDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"inherit\",\n height: \"inherit\",\n viewBox: \"0 0 10 6\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.64583 5.47835C4.53472 5.47835 4.42722 5.45752 4.32333 5.41585C4.21889 5.37419 4.13194 5.31863 4.0625 5.24919L0.229166 1.41585C0.0763886 1.26308 0 1.06863 0 0.832519C0 0.596408 0.0763886 0.401964 0.229166 0.249186C0.381944 0.0964081 0.576389 0.0200195 0.8125 0.0200195C1.04861 0.0200195 1.24306 0.0964081 1.39583 0.249186L4.64583 3.49919L7.89583 0.249186C8.04861 0.0964081 8.24306 0.0200195 8.47917 0.0200195C8.71528 0.0200195 8.90972 0.0964081 9.0625 0.249186C9.21528 0.401964 9.29167 0.596408 9.29167 0.832519C9.29167 1.06863 9.21528 1.26308 9.0625 1.41585L5.22917 5.24919C5.14583 5.33252 5.05556 5.39141 4.95833 5.42585C4.86111 5.46085 4.75694 5.47835 4.64583 5.47835Z\",\n fill: \"currentcolor\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDown);\nexport default __webpack_public_path__ + \"static/media/chevron-down.232cc6e16ec1e860f542f515ebd5efb4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgTriangle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 14,\n viewBox: \"0 0 15 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0V13.8462L15 0H0Z\",\n fill: \"#C4C4C4\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTriangle);\nexport default __webpack_public_path__ + \"static/media/triangle.5e748dcdc7c0e5c63e10f5df33a78dc7.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgClose(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0625 5.9375L5.9375 14.0625M5.9375 5.9375L14.0625 14.0625\",\n stroke: \"#F0CE0E\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.a4a7fcc9522d75af174472b1f248fb2e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgHamburger(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.4375 15.3125H16.5625M3.4375 10.3125H16.5625M3.4375 5.3125H16.5625\",\n stroke: \"#F0CE0E\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHamburger);\nexport default __webpack_public_path__ + \"static/media/hamburger.1e162d0063e6ad9bd5905c2356454dd6.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect, useRef, Fragment } from \"react\";\nimport styles from \"./index.module.scss\";\n// import { FormControlLabel, Switch } from \"@mui/material\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { customCloneDeep, debounce } from \"utils/utilityFunctions\";\nimport { initialHeaderConfig, launchAppLink } from \"configs/headerConfigs\";\nimport { useTranslation } from \"react-i18next\";\nimport Button from \"components/Button\";\n/* Logo & SVG Icons Below */\nimport Logo from \"assets/images/goldpesa-logo-6.png\";\nimport { ReactComponent as ChevronDownIcon } from \"assets/images/icons/chevron-down.svg\";\nimport { ReactComponent as TriangleIcon } from \"assets/images/icons/triangle.svg\";\nimport { ReactComponent as ExternalLinkIcon } from \"assets/images/icons/external-link.svg\";\nimport { ReactComponent as CloseIcon } from \"assets/images/icons/close.svg\";\nimport { ReactComponent as HamburgerIcon } from \"assets/images/icons/hamburger.svg\";\n// import ReactCountryFlag from \"react-country-flag\";\nimport i18n from \"i18next\";\nimport en from \"../../locales/en.json\";\nimport fa from \"../../locales/fa.json\";\n\ni18n.init({\n lng: 'en',\n fallbackLng: 'en',\n resources: {\n en: { translation: en },\n fa: { translation: fa },\n },\n});\n\nconst Header = () => {\n const { t } = useTranslation();\n const headerRef = useRef();\n const location = useLocation();\n const [headerConfig, setHeaderConfig] = useState(initialHeaderConfig);\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\n const [isPageScrolled, setIsPageScrolled] = useState(false);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const launchAppFunc = () => {\n window.location.href = launchAppLink;\n };\n\n const toggleActiveOption = (index, state) => {\n const headerConfigClone = customCloneDeep(headerConfig);\n\n headerConfigClone.forEach((item, i) => {\n if (index === i) {\n if (item.isActive !== state) item.isActive = state;\n }\n });\n\n setHeaderConfig(headerConfigClone);\n };\n\n const toggleDrawer = () => {\n setIsDrawerOpen((prevState) => !prevState);\n };\n\n \n const changeHeaderBackground = () => {\n if (window.scrollY >= headerRef.current?.clientHeight / 2) {\n setIsPageScrolled(true);\n } else {\n setIsPageScrolled(false);\n }\n };\n\n const toggleModal = (state) => {\n setIsModalOpen(state);\n };\n\n useEffect(() => {\n if (isDrawerOpen) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"unset\";\n }\n }, [isDrawerOpen]);\n\n useEffect(() => {\n window.addEventListener(\"scroll\", changeHeaderBackground);\n \n return () => {\n window.removeEventListener(\"scroll\", changeHeaderBackground);\n };\n }, []);\n\n useEffect(() => {\n if (location.search && location.search.includes(\"how-to-buy\")) {\n if (window.scrollY !== 0) {\n window.scrollTo(0, 0);\n \n setTimeout(() => {\n toggleModal(true);\n }, 1000);\n } else {\n toggleModal(true);\n }\n }\n }, [location]);\n \n\n useEffect(() => {\n const body = document.getElementsByTagName(\"body\")[0];\n \n if (isModalOpen) {\n body.style.overflow = \"hidden\";\n } else {\n body.style.overflow = \"auto\";\n }\n }, [isModalOpen]);\n\n return (\n <div\n ref={headerRef}\n id=\"header\"\n className={`${styles.header} ${isPageScrolled ? styles.dark : \"\"}`}\n >\n <div className={styles.header__wrapper}>\n {/* Mobile Nagigation */}\n <div className={styles.mobileNavigation}>\n {/* Mobile Nagigation Button On Header */}\n <button\n type=\"button\"\n className={`\n ${styles.mobileNavigation__button}\n ${isDrawerOpen ? styles.active : \"\"}\n `}\n onClick={toggleDrawer}\n >\n {isDrawerOpen ? <CloseIcon /> : <HamburgerIcon />}\n </button>\n\n {/* Mobile Nagigation Overlay */}\n <div\n className={styles.mobileNavigation__overlay}\n style={{ display: isDrawerOpen ? \"block\" : \"none\" }}\n onClick={toggleDrawer}\n ></div>\n\n {/* Mobile Nagigation Drawer */}\n <div\n className={`\n ${styles.mobileNavigation__drawer}\n ${isDrawerOpen ? styles.open : styles.close}\n `}\n >\n {/* Mobile Nagigation Top (Header) */}\n <div className={styles.mobileNavigation__top}>\n {/* Mobile Nagigation Button Inside Drawer */}\n <button\n type=\"button\"\n className={`\n ${styles.mobileNavigation__button}\n ${isDrawerOpen ? styles.active : \"\"}\n `}\n onClick={toggleDrawer}\n >\n {isDrawerOpen ? <CloseIcon /> : <HamburgerIcon />}\n </button>\n\n {/* Mobile Nagigation Inside Logo */}\n <Link\n to=\"/\"\n className={styles.header__logo}\n onClick={toggleDrawer}\n >\n <figure>\n <img src={Logo} alt=\"Goldpesa Logo\" />\n </figure>\n </Link>\n </div>\n\n {/* Mobile Nagigation Drawer Links List */}\n <div className={styles.mobileNavigation__links}>\n <ul className={styles.mobileNavigation__links__list}>\n {headerConfig?.length &&\n headerConfig.map((item, index) => {\n return (\n <li\n key={index}\n className={styles.mobileNavigation__links__item}\n >\n {item.type === \"link\" ? (\n <Link\n to={item.link}\n className={styles.mobileNavigation__links__link}\n onClick={toggleDrawer}\n >\n {t(item.name)}\n </Link>\n ) : (\n <Fragment>\n <div\n className={\n styles.mobileNavigation__links__wrapper\n }\n onClick={() =>\n toggleActiveOption(index, !item.isActive)\n }\n >\n <span\n className={styles.mobileNavigation__links__link}\n >\n {t(item.name)}\n </span>\n\n {item.type === \"dropdown\" && (\n <span\n className={`${\n styles.mobileNavigation__links__icon\n } ${\n item.isActive\n ? styles[\n `mobileNavigation__links__icon--rotate`\n ]\n : \"\"\n }`}\n >\n <ChevronDownIcon />\n </span>\n )}\n </div>\n\n {item?.dropdownLinks?.length && (\n <ul\n className={`${\n styles.mobileNavigation__links__innerList\n } ${item.isActive ? styles.active : \"\"}`}\n >\n {item.dropdownLinks.map(\n (innerLinks, innerIndex) => {\n return (\n <li\n key={`${innerLinks.name}-${innerIndex}`}\n className={\n styles.mobileNavigation__links__innerItem\n }\n onClick={() =>\n toggleActiveOption(index, false)\n }\n >\n {innerLinks.isExternal ? (\n <a\n href={innerLinks.path}\n target=\"_blank\"\n rel=\"noreferrer\"\n className={\n styles.mobileNavigation__links__innerLink\n }\n onClick={toggleDrawer}\n >\n {t(innerLinks.name)}\n </a>\n ) : (\n <Link\n to={innerLinks.path}\n className={\n styles.mobileNavigation__links__innerLink\n }\n onClick={toggleDrawer}\n >\n {t(innerLinks.name)}\n </Link>\n )}\n </li>\n );\n }\n )}\n </ul>\n )}\n </Fragment>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n\n {/* Mobile Nagigation CTA Button */}\n <div className={styles.mobileNavigation__cta}>\n <Button\n type=\"button\"\n text={t(\"LAUNCH APP\")}\n clickHandler={launchAppFunc}\n />\n </div>\n </div>\n </div>\n\n {/* Header Logo */}\n <div className={styles.logoSection}>\n <Link\n to=\"/\"\n className={`${styles.header__logo}`} \n >\n <figure>\n <img src={Logo} alt=\"Goldpesa Logo\" />\n </figure>\n </Link>\n </div>\n\n {/* Header Desktop Navigation */}\n <div className={styles.navSection}>\n <nav className={styles.header__navigation}>\n <ul className={styles.navigationList}>\n {headerConfig?.length &&\n headerConfig.map((item, index) => {\n return (\n <li className={styles.navigationList__item} key={index}>\n <div\n className={styles.navigationList__item__wrapper}\n onMouseEnter={() =>\n debounce(toggleActiveOption(index, true))\n }\n onMouseLeave={() =>\n debounce(toggleActiveOption(index, false))\n }\n >\n <div\n className={`${styles.navigationList__item__top} myLinkForCursor`}\n >\n <span className={styles.navigationList__item__name}>\n {item.type === \"link\" ? (\n <Link to={item.link}>{t(item.name)}</Link>\n ) : (\n <p>{t(item.name)}</p>\n )}\n </span>\n\n {item.type === \"dropdown\" && (\n <span\n className={`${styles.navigationList__item__icon} ${\n item.isActive\n ? styles[`navigationList__item__icon--rotate`]\n : \"\"\n }`}\n >\n <ChevronDownIcon />\n </span>\n )}\n </div>\n\n {item.type === \"dropdown\" && (\n <div\n className={`${styles.navigationList__dropdown} ${\n item.isActive ? styles.show : styles.hide\n }`}\n >\n <div\n className={styles.navigationList__dropdown__wrapper}\n >\n <ul\n className={styles.navigationList__dropdown__list}\n >\n {item.dropdownLinks &&\n item.dropdownLinks.map((link, index) => {\n return (\n <li\n key={`${link.name}-${index}`}\n className={\n styles.navigationList__dropdown__item\n }\n onClick={() =>\n debounce(\n toggleActiveOption(index, false)\n )\n }\n >\n {link.isExternal ? (\n <a\n href={link.path}\n target=\"_blank\"\n rel=\"noreferrer\"\n className={\n styles.navigationList__dropdown__link\n }\n >\n {t(link.name)}\n </a>\n ) : (\n <Link\n to={link.path}\n className={\n styles.navigationList__dropdown__link\n }\n >\n {t(link.name)}\n </Link>\n )}\n\n <span\n className={\n styles.navigationList__dropdown__icon\n }\n >\n {link.isExternal ? (\n <ExternalLinkIcon />\n ) : (\n <TriangleIcon />\n )}\n </span>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ul>\n </nav>\n </div>\n\n {/* Header Desktop CTA */}\n <div className={styles.ctaSection}>\n <div className={styles.header__cta} style={{ marginRight: \"20px\" }}>\n <Button\n type=\"button\"\n text={t(\"LAUNCH APP\")}\n clickHandler={launchAppFunc}\n />\n </div>\n </div>\n </div>\n\n {isModalOpen && (\n <div className={styles.modal}>\n <div\n className={styles.modal__backdrop}\n onClick={() => toggleModal(false)}\n ></div>\n <div className={styles.modal__container}>\n <div className={styles.modal__video}>\n <div className={styles.modal__video__wrapper}>\n <iframe\n width=\"560\"\n height=\"315\"\n src=\"https://www.youtube-nocookie.com/embed/BsyI9MFzGwk\"\n title=\"YouTube video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n ></iframe>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\n\n// Import Swiper React components\nimport { Swiper, SwiperSlide } from \"swiper/react\";\n\n// Import Swiper styles\nimport \"swiper/css\";\n\n// Import required modules\nimport { Autoplay } from \"swiper\";\n\nconst InfiniteLoopBrandSlider = () => {\n const [images, setImages] = useState([]);\n\n const swiperParams = {\n slidesPerView: 7,\n spaceBetween: 100,\n allowTouchMove: false,\n loop: true,\n autoplay: {\n delay: 0,\n disableOnInteraction: false,\n waitForTransition: false,\n },\n speed: 3800,\n modules: [Autoplay],\n // Responsive breakpoints\n breakpoints: {\n // when window width is >= 320px\n 320: {\n spaceBetween: 35,\n },\n // when window width is >= 1440px\n 1440: {\n spaceBetween: 50,\n },\n // when window width is >= 1600px\n 1600: {\n spaceBetween: 100,\n },\n },\n };\n\n useEffect(() => {\n const fetchImages = async () => {\n const myArray = [];\n\n for (let duplicates = 1; duplicates <= 5; duplicates++) {\n for (let i = 1; i <= 14; i++) {\n const image = await import(`assets/images/brands/${i}.png`);\n myArray.push(image.default);\n }\n }\n\n setImages(myArray);\n };\n\n fetchImages();\n }, []);\n\n return (\n <div className={styles.InfiniteLoopBrandSlider}>\n <Swiper {...swiperParams} className={styles.mySwiper} dir=\"ltr\">\n {images.length > 0 &&\n images.map((image, index) => (\n <SwiperSlide key={index} className={styles.mySwiperSlide}>\n <div className={styles.InfiniteLoopBrandSlider__image}>\n <img src={image} alt={`brand-${index + 1}`} />\n </div>\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n );\n};\n\nexport default InfiniteLoopBrandSlider;\n","import React, { useEffect, Fragment } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Lottie from \"react-lottie\";\nimport LoaderAnimation from \"assets/lottie/Loader.json\";\n\nconst Loader = ({ isLoading }) => {\n const defaultOptions = {\n loop: true,\n autoplay: true,\n animationData: LoaderAnimation,\n rendererSettings: {\n preserveAspectRatio: \"xMidYMid slice\",\n },\n };\n\n document.getElementByTagName;\n\n useEffect(() => {\n const body = document?.getElementsByTagName(\"body\")[0];\n if (isLoading) {\n body.style.overflow = \"hidden\";\n } else {\n body.style.overflow = \"auto\";\n }\n }, [isLoading]);\n\n return (\n <Fragment>\n {isLoading && (\n <div className={styles.loader}>\n <div className={`${styles.loader__wrapper} container`}>\n <div className={styles.loader__animation}>\n <Lottie options={defaultOptions} isClickToPauseDisabled={true} />\n </div>\n </div>\n </div>\n )}\n </Fragment>\n );\n};\n\nexport default Loader;\n","/* eslint-disable no-undef */\nimport React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\n\nimport { mediaAndPressConfig } from \"configs/mediaAndPressConfig\";\n\n// Import Swiper React components\nimport { Swiper, SwiperSlide } from \"swiper/react\";\n\n// Import Swiper styles\nimport \"swiper/css\";\n\n// import required modules\nimport { Autoplay } from \"swiper\";\n\nconst InfiniteLoopBrandSlider = () => {\n const [images, setImages] = useState([]);\n useEffect(() => {\n const myArray = [];\n\n for (let i = 1; i <= mediaAndPressConfig.length; i++) {\n // eslint-disable-next-line no-undef\n myArray.push({\n logo: require(`assets/images/media-logo/logo-${i}.png`),\n thumbnail: require(`assets/images/media-thumbnail/thumbnail-${i}.png`),\n });\n }\n\n setImages(myArray);\n }, []);\n\n return (\n <div className={styles.mediaCardsSlider}>\n <Swiper\n loop={true}\n autoplay={{\n delay: 2500,\n disableOnInteraction: false,\n }}\n dir=\"ltr\"\n modules={[Autoplay]}\n // Responsive breakpoints\n breakpoints={{\n // when window width is >= 320px\n 320: {\n spaceBetween: 35,\n slidesPerView: 1,\n },\n // when window width is >= 768px\n 768: {\n slidesPerView: 2,\n spaceBetween: 35,\n },\n // when window width is >= 1280px\n 1280: {\n spaceBetween: 100,\n },\n // when window width is >= 1440px\n 1440: {\n slidesPerView: 2,\n spaceBetween: 160,\n },\n // when window width is >= 1600px\n 1600: {\n slidesPerView: 3,\n spaceBetween:100,\n },\n }}\n className={styles.mySwiper}\n >\n {mediaAndPressConfig.length &&\n mediaAndPressConfig.map((mediaItem, index) => {\n return (\n <SwiperSlide key={index} className={styles.mySwiperSlide}>\n <div className={styles.card}>\n <div className={styles.card__wrapper}>\n <div className={styles.card__logo}>\n <div className={styles.card__logo__wrapper}>\n <figure>\n <img src={images[index]?.logo} alt=\"\" />\n </figure>\n </div>\n </div>\n <div className={styles.card__date}>\n <p>{mediaItem.date}</p>\n </div>\n <div className={styles.card__title}>\n <a href={mediaItem.link} target=\"_blank\" rel=\"noreferrer\" title={mediaItem.title}>\n {mediaItem.title}\n </a>\n </div>\n <a href={mediaItem.link} target=\"_blank\" rel=\"noreferrer\" className={styles.card__image}>\n <figure>\n <img src={images[index]?.thumbnail} alt=\"\" />\n </figure>\n </a>\n </div>\n </div>\n </SwiperSlide>\n );\n })}\n </Swiper>\n </div>\n );\n};\n\nexport default InfiniteLoopBrandSlider;\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgArrowUpLong(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 33,\n height: 33,\n viewBox: \"0 0 33 33\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.7547 14.7125C23.4797 14.9875 23.1474 15.1195 22.7578 15.1085C22.3682 15.0966 22.0359 14.9531 21.7609 14.6781L17.8766 10.7938L17.8766 26.125C17.8766 26.5146 17.7446 26.8414 17.4806 27.1054C17.2175 27.3685 16.8911 27.5 16.5016 27.5C16.112 27.5 15.7852 27.3685 15.5212 27.1054C15.2581 26.8414 15.1266 26.5146 15.1266 26.125L15.1266 10.7938L11.2078 14.7125C10.9328 14.9875 10.606 15.125 10.2274 15.125C9.84977 15.125 9.52344 14.9875 9.24844 14.7125C8.97344 14.4375 8.83594 14.1107 8.83594 13.7321C8.83594 13.3545 8.97344 13.0281 9.24844 12.7531L15.5391 6.4625C15.6766 6.325 15.8255 6.22738 15.9859 6.16963C16.1464 6.11279 16.3182 6.08438 16.5016 6.08438C16.6849 6.08438 16.8568 6.11279 17.0172 6.16963C17.1776 6.22738 17.3266 6.325 17.4641 6.4625L23.7891 12.7875C24.0411 13.0396 24.1672 13.3545 24.1672 13.7321C24.1672 14.1107 24.0297 14.4375 23.7547 14.7125Z\",\n fill: \"inherit\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowUpLong);\nexport default __webpack_public_path__ + \"static/media/arrow-up-long.2b5c73c4cdada39311f5a85973b85195.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState, Fragment } from \"react\";\nimport styles from \"./index.module.scss\";\nimport { ReactComponent as ArrowUpLong } from \"assets/images/icons/arrow-up-long.svg\";\n\nconst ScrollToTopButton = () => {\n const [showButton, setShowButton] = useState(false);\n\n const moveToTop = () => {\n window.scrollTo(0, 0);\n };\n\n const showHideButton = () => {\n if (window.scrollY >= 250) {\n setShowButton(true);\n } else {\n setShowButton(false);\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"scroll\", showHideButton);\n }, []);\n\n return (\n <Fragment>\n {showButton && (\n <button\n type=\"button\"\n onClick={moveToTop}\n className={styles.scrollToTopButton}\n >\n <i>\n <ArrowUpLong />\n </i>\n </button>\n )}\n </Fragment>\n );\n};\n\nexport default ScrollToTopButton;\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"./index.module.scss\";\n\nconst TeamCard = ({ name, specializations, linkedin, avatar }) => {\n const [images, setImages] = useState({\n avatar: \"\",\n // eslint-disable-next-line no-undef\n linkedin: require(`../../assets/images/team/linkedin-icon-blue.png`),\n });\n\n useEffect(() => {\n // eslint-disable-next-line no-undef\n const myAvatar = require(`../../${avatar}`);\n\n setImages({\n ...images,\n avatar: myAvatar,\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div className={styles.card}>\n <div className={styles.card__wrapper}>\n <div className={styles.card__left}>\n <div className={styles.card__avatar}>\n <figure>\n <img src={images.avatar} alt={name} />\n </figure>\n </div>\n </div>\n <div className={styles.card__right}>\n <div className={styles.card__name}>\n <h2 title={name}>{name}</h2>\n </div>\n\n <div className={styles.card__info}>\n <div className={styles.card__text}>\n {specializations &&\n specializations.length &&\n specializations.map((speciality, index) => {\n return <p key={index}>{speciality}</p>;\n })}\n </div>\n\n <a\n href={linkedin}\n target=\"_blank\"\n rel=\"noreferrer\"\n className={styles.card__linkedin}\n >\n <figure>\n {/* eslint-disable-next-line no-undef */}\n <img src={images.linkedin} alt={`${name}'s Linkedin`} />\n </figure>\n </a>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default TeamCard;\n","export const faqConfig = [\n {\n question: \"What is GoldPesa (GPX)?\",\n answer: [\n \"GoldPesa (GPX) is an advanced form of money. A next-generation digital currency that embodies the qualities of gold, powered entirely by code, NOT physical gold.\",\n \"The most unique feature is the PAWN, a proprietary AI FX algorithm, which generates profits used to continuously buy GPX tokens. This creates constant demand which drives GPX's value higher.\",\n ],\n },\n {\n question: \"How is GoldPesa different from Bitcoin?\",\n answer: [\n \"Like Bitcoin, GPX has a hard cap, limited supply, is 100% decentralized, censorship-resistant, and can be easily traded globally.\",\n \"However, GoldPesa surpasses Bitcoin by being faster, cheaper, deflationary, more liquid, environmentally friendly, and impossible to alter.\",\n \"What really sets GoldPesa apart from Bitcoin is the Pawn, a proprietary AI FX algorithm that generates profits. These profits are used to continiously buy GPX tokens 24/7, creating constant demand, driving the value of GPX higher.\",\n ],\n },\n {\n question: \"What is the PAWN?\",\n answer: [\n \"The PAWN is a proprietary AI FX algorithm, the result of over 20 years of research and development by the GoldPesa team.\",\n \"Combining digital signal processing, AI, advanced mathematics, and data science, it uses cutting-edge techniques to predict short to medium term market movements with precision.\",\n ],\n },\n {\n question: \"Is GoldPesa a stablecoin?\",\n answer: [\n \"No, GoldPesa is not a stablecoin.\",\n ],\n },\n {\n question: \"How can I buy GoldPesa (GPX)?\",\n answer: [\n \"GPX tokens will initially be available exclusively on the Uniswap V4 DeFi exchange.\",\n ],\n },\n {\n question: \"What is GoldPesa Option (GPO)?\",\n answer: [\n \"The GoldPesa Option (GPO) is a call option that grants holders the right to convert 1 GPO into 1 GPX at any time in the future, subject to the availability of GPX within the PAWN smart contract.\",\n ],\n },\n {\n question: \"How GPX is accumulated in the PAWN smart contract?\",\n answer: [\n \"1) Transaction Fees:\",\n \"0.5% of every GPX transaction is deposited directly into the PAWN smart contract.\",\n \"2) PAWN Profits:\",\n \"The PAWN, a proprietary AI FX algorithm, generates profits, which are deposited into the PAWN smart contract. These funds are swapped into GPX hourly and held until all GPO holders are successfully converted to GPX.\",\n ],\n },\n {\n question: \"Why would I buy GPO instead of GPX?\",\n answer: [\n \"The GoldPesa Option (GPO) allows larger participants to acquire an allocation of GPX at a discount while minimizing market disruption, making it ideal for institutions, hedge funds, and high-net-worth individuals seeking strategic entry.\",\n \"GPX, on the other hand, caters to smaller buyers, providing immediate access to GoldPesa's advanced tokenomics. Its price and liquidity are bolstered by The Pawn’s continuous buy-and-recirculate mechanism. \",\n \"Together, they offer tailored solutions for both large and small investors.\",\n ],\n },\n {\n question: \"What makes GoldPesa unique?\",\n answer: [\n \"GoldPesa's distinct advantage lies in the PAWN, a proprietary algorithm that serves as a highly efficient FX market maker, reducing spreads by up to 50% while generating substantial profits.\",\n \"PAWN's profits are used to cotniniously buy GPX from Uniswap. This buy mechanism benefits GPX token holders by increasing demand, driving the token's value higher.\",\n ],\n },\n {\n question: \"Can GPX be changed, altered or forked?\",\n answer: [\n \"NO! It's impossible!\",\n \"Unlike Bitcoin, the GoldPesa (GPX) smart contract is 100% immutable.\",\n \"The rules within the GPX smart contract are permanent and cannot be changed, altered, upgraded, or forked by anyone, including the GoldPesa team.\",\n ],\n },\n {\n question: \"Is the GoldPesa ecosystem truly DeFi?\",\n answer: [\n \"Absolutely. Decentralized Finance (DeFi) is at the very heart of the GoldPesa ecosystem. GoldPesa is engineered to redefine the financial landscape through a system governed entirely by immutable smart contracts. These contracts operate independently, free from human intervention, regulatory oversight, or centralized control, ensuring censorship-resistant functionality and seamless tradeability.\",\n \"Every smart contract within the GoldPesa ecosystem is hard-coded with fixed, unchangeable instructions. Not even the GoldPesa team has the ability to alter, upgrade, or manipulate core functionality inside these contracts in any way. The code is effectively 'locked' and 'the keys thrown away,' creating a transparent and trustless environment where users can transact with absolute confidence.\",\n \"GoldPesa's commitment to true decentralization eliminates the risks associated with centralized points of failure, empowering users with a system that guarantees autonomy, security, and stability in an ever-evolving financial space.\",\n ],\n },\n {\n question: \"Does GPX have any fees?\",\n answer: [\n \"There is a 1% fee anytime GPX is bought, sold or transferred.\",\n \"Please note, gas fees are separate and required for all GPX transactions.\",\n ],\n },\n {\n question: \"How is GPX's 1% transfer fee distributed?\",\n answer: [\n \"0.5% is allocated to the PAWN Smart Contract.\",\n \"0.5% is allocated to the GoldPesa Mine Smart Contract.\",\n \"The 1% fee and its distribution are permanently hardcoded into the GPX smart contract, ensuring they can never be changed or altered under ANY circumstance.\",\n ],\n },\n {\n question: \"What does the PAWN Smart Contract do?\",\n answer: [\n \"The PAWN smart contract performs four key functions:\",\n \"1) Collect a 0.5% fee anytime GPX is transferred.\",\n \"2) Facilitate the conversion of GPO tokens into GPX.\",\n \"3) Accumulate profits generated by the PAWN in USDC.\",\n \"4) Continuously buys GPX tokens from Uniswap\",\n ],\n },\n {\n question: \"What is GoldPesa Mines?\",\n answer: [\n \"GoldPesa Mines is a revolutionary gamified staking app that allows users to own a part of the GoldPesa ecosystem for just $10.\",\n \"To join, users purchase a GoldPesa Digger for $10, which is converted into GPX and staked in the GoldPesa Mine. For every 3 GoldPesa Diggers that enter the mine, one lucky user advances deeper into the mine.\",\n \"The Mine has 10 levels, each holding 10% of its wealth, shared equally among users on that level. Every GPX transaction contributes 0.5% to the Mine, increasing its wealth forever.\",\n \"GoldPesa Diggers can exit anytime, receiving their initial GPX plus a share of the Mine's wealth based on their level and other miners.\",\n \"Built on immutable smart contracts, GoldPesa Mines offers a trustless staking opportunity with the potential for lifetime value creation.\",\n \"Learn more at goldpesamines.com or check out our WhitePaper!\",\n ],\n },\n {\n question: \"What is the minimum GPX I can buy?\",\n answer: [\n \"There is no minimum, GPX tokens are capable of being fractionalised up to 18 decimal places.\",\n ],\n },\n {\n question: \"Why did GoldPesa create GPO?\",\n answer: [\n \"The GoldPesa Option (GPO) is a specialized token designed to give large investors, early supporters, and long-term holders the opportunity to acquire an allocation of GoldPesa (GPX) at a discount, while also safeguarding GPX’s market stability\",\n \"With a maximum supply of 100 million tokens, locked liquidity forever, and a fair launch, GPO is secure, tamper-proof, and transparent.\",\n ],\n },\n {\n question: \"How can I convert my GPO to GPX?\",\n answer: [\n \"GPO holders can stake their tokens in the GoldPesa Vault. Over time, the staked GPO is systematically converted into GPX whenever GPX becomes available in the PAWN Smart Contract.\",\n ],\n },\n {\n question: \"What happens to GPO when converted to GPX?\",\n answer: [\n \"Once GPO is converted into GPX, the original GPO tokens are sold on Uniswap. The resulting USDC proceeds, along with profits from The PAWN (GoldPesa’s AI trading algorithm), are used to continuously purchase GPX. This structured process transfers liquidity from GPO holders to GPX, preventing large sell-offs and reducing concentration risks among major buyers.\",\n ],\n },\n {\n question: \"Is GoldPesa regulated by any financial authority?\",\n answer: [\n \"GoldPesa operates independently of financial regulation and has no intention of seeking regulatory approval in any jurisdiction.\",\n \"At its core, GoldPesa is a pioneer in decentralized finance, built entirely on immutable smart contracts. These contracts have fixed, unalterable instructions that cannot be modified by any individual, organization, or governing authority; including the GoldPesa team itself.\",\n \"The GoldPesa ecosystem is governed by code, meticulously developed by GoldPesa SRL, a crypto licensed company based in Costa Rica. Every aspect of the ecosystem, from tokenomics to fund flow, has been carefully designed to align with global securities laws, ensuring robust protection for token holders against regulatory uncertainties.\",\n \"GoldPesa embodies a truly global vision, powered by code and autonomous systems that govern its operations seamlessly. With its architecture locked into place, the ecosystem is free from human interference, paving the way for a future of trustless, decentralized innovation.\",\n ],\n },\n {\n question: \"What is the expiry date of the GPO options?\",\n answer: [\"Unlike traditional options, GPO tokens do not expire.\"],\n },\n {\n question: \"How many GPX does the GoldPesa team hold?\",\n answer: [\n \"None!\",\n \"GPX is 100% fair-launched, with no tokens allocated to team members or strategic partners. Additionally, no USD has been or will ever be removed from the GPX liquidity protocol.\",\n ],\n },\n {\n question: \"What blockchain does GoldPesa use?\",\n answer: [\n \"Base\",\n ],\n },\n {\n question: \"Can GoldPesa print more tokens?\",\n answer: [\n \"No, it is impossible!\",\n \"The GPO and GPX smart contracts are designed with a hard cap of 100 million tokens, ensuring that no additional tokens can ever be created.\",\n \"The entire GoldPesa ecosystem is 100% decentralized, built on non-upgradable and immutable smart contracts, guaranteeing the permanence and integrity of its token supply.\",\n ],\n },\n {\n question: \"How does GoldPesa ensure security?\",\n answer: [\n \"GoldPesa ensures security through cutting-edge blockchain technology, immutable smart contracts, and rigorous audits conducted by trusted firms like Certik.\",\n \"These measures guarantee transparency, prevent tampering, and build unwavering trust among token holders, solidifying GoldPesa as a secure and reliable decentralized ecosystem.\",\n ],\n },\n {\n question: \"How many GPO does the GoldPesa team hold?\",\n answer: [\n \"No member of the GoldPesa team holds more than 100,000 GPO tokens.\",\n \"As GPO conversion to GPX is limited by the availability of GPX within the PAWN smart contract, this structure ensures stability and confidence for GPX holders. Even if GPO holders convert to GPX and sell, the USDC reserves in the GPX liquidity pools are sufficient to accommodate sell orders without significantly impacting the price.\",\n ],\n },\n {\n question: \"Is the PAWN's 0.5% fee invested in its algorithm?\",\n answer: [\n \"No, the GoldPesa team cannot access or divert the 0.5% fee collected by the PAWN smart contract to 'invest' in the PAWN algorithm.\",\n \"The PAWN smart contract is immutable, with fixed instructions allowing only GPO holders to convert their GPO into GPX on a 1:1 basis. This is the sole mechanism through which GPX can be withdrawn from the PAWN smart contract.\",\n ],\n },\n {\n question: \"What happens if the PAWN algorithm loses all the money?\",\n answer: [\n \"If the PAWN algorithm were to lose all its funds, it would temporarily pause the buy process, impacting the demand for GPX. However, this would not affect the GoldPesa ecosystem directly, as GPX is fair-launched, and no funds from GPX transactions can ever leave the ecosystem.\",\n \"The 1% transaction fee is deposited into immutable smart contracts that solely benefit the ecosystem, ensuring that no GoldPesa token holder’s funds are ever at risk due to the PAWN algorithm.\",\n ],\n },\n {\n question: \"Is GoldPesa a security?\",\n answer: [\n \"NO!\",\n \"To determine if an asset qualifies as a security, the U.S. Securities and Exchange Commission (SEC) uses the Howey Test, which assesses whether a transaction involves an 'investment contract.' For a transaction to be classified as a security under this test, it must meet all four criteria:\",\n \"1) Investment of Money: There must be an investment of money or equivalent assets.\",\n \"Users can purchase GPX or GPO tokens, but these are not traditional investments. GPX is a decentralized asset, while GPO is a call option to convert into GPX. Neither token represents ownership or investment in GoldPesa or any company.\",\n \"2) Common Enterprise: The investment must be part of a common enterprise where returns are pooled or shared.\",\n \"GoldPesa runs on autonomous, immutable smart contracts with no fund pooling, shared enterprise, or reliance on a central authority for profits. Token holders fully control their assets, with transactions managed by decentralized code.\",\n \"3) Expectation of Profit: There must be an expectation of profit by the investor.\",\n \"GPX tokens are decentralized digital assets with utility in their algorithmic ecosystem. Price appreciation may occur due to the buy and redistribute process, driven by immutable code and market dynamics, not by promises or actions from GoldPesa. The PAWN algorithm independently engages in FX market-making with its own funds. Buying and redistributing GPX tokens is voluntary, not guaranteed, and any resulting price increase is a natural outcome of the system’s autonomous operations.\",\n \"4) Efforts of Others: The profit must primarily come from the efforts of a promoter, team, or third party.\",\n \"The GoldPesa ecosystem, including the PAWN algorithm and GPX and GPO smart contracts, operates autonomously and immutably. Profits are not derived from the efforts of the GoldPesa team or any third party. The PAWN algorithm generates profits independently, using its own funds, and decides how to use them, including buying and redistributing GPX tokens. These actions are not funded by the ecosystem or its participants, ensuring GoldPesa remains decentralized and independent.\"\n ],\n },\n {\n question: \"Why does the PAWN buy and redistribute GPX tokens if it’s not funded by the GoldPesa ecosystem?\",\n answer: [\n \"Because its fucking fun!\",\n ],\n },\n];\n","export const footerConfig = {\n email: \"admin@goldpesa.com \",\n address:\n \"\",\n socialLinks: [\n {\n id: \"facebook\",\n name: \"Facebook\",\n url: \"https://www.facebook.com/GoldPesaOfficial\",\n },\n {\n id: \"instagram\",\n name: \"Instagram\",\n url: \"https://www.instagram.com/gold.pesa/\",\n },\n {\n id: \"twitter\",\n name: \"Twitter\",\n url: \"https://twitter.com/Goldpesatoken\",\n },\n {\n id: \"telegram\",\n name: \"Telegram\",\n url: \"https://t.me/GoldPesaOfficial\",\n },\n {\n id: \"discord\",\n name: \"Discord\",\n url: \"https://discord.com/invite/bq5j7hF2Fc\",\n },\n {\n id: \"medium\",\n name: \"Medium\",\n url: \"https://medium.com/@gold_pesa\",\n },\n {\n id: \"linkedin\",\n name: \"Linkedin\",\n url: \"https://www.linkedin.com/company/gold-pesa\",\n },\n {\n id: \"youtube\",\n name: \"Youtube\",\n url: \"https://www.youtube.com/channel/UCptSwObtnIj2iEAMjO-3ERw\",\n },\n {\n id: \"git\",\n name: \"Git\",\n url: \"https://github.com/GoldPesa/goldpesa-core\",\n },\n ],\n navigationLinks: [\n {\n name: \"Company\",\n dropdownLinks: [\n {\n name: \"About\",\n path: \"/about-us\",\n isExternal: false,\n },\n {\n name: \"Team\",\n path: \"/team\",\n isExternal: false,\n },\n {\n name: \"Roadmap\",\n path: \"/roadmap\",\n isExternal: false,\n },\n {\n name: \"FAQ\",\n path: \"/faq\",\n isExternal: false,\n },\n ],\n },\n // {\n // name: \"Ecosystem\",\n // dropdownLinks: [\n // {\n // name: \"GoldPesa Mines\",\n // path: \"/mines\",\n // isExternal: false,\n // },\n // {\n // name: \"GoldPesa Academy\",\n // path: \"/academy\",\n // isExternal: false,\n // },\n // {\n // name: \"Stake2Win\",\n // path: \"/stake-2-win\",\n // isExternal: false,\n // },\n // {\n // name: \"Xenii 2.0\",\n // path: \"/xenii\",\n // isExternal: false,\n // },\n // ],\n // },\n {\n name: \"Resources\",\n dropdownLinks: [\n {\n name: \"Whitepaper\",\n path: \"https://goldpesa-1.gitbook.io/goldpesa-whitepaper/\",\n isExternal: true,\n },\n {\n name: \"The Pawn\",\n path: \"https://medium.com/@gold_pesa/pawn-4-0-an-intelligent-source-of-liquidity-aa817001b06a\",\n isExternal: true,\n },\n {\n name: \"Pitch Deck\",\n path: \"https://medium.com/@gold_pesa/goldpesa-pitch-deck-goldpesas-value-proposition-in-2-minutes-38ad24156cd\",\n isExternal: true,\n },\n {\n name: \"Certik Audit\",\n path: \"https://www.certik.com/projects/goldpesa\",\n isExternal: true,\n },\n ],\n },\n ],\n launchAppLink: \"https://app.goldpesa.com/\",\n};\n","/* For Desktop */\nexport const initialHeaderConfig = [\n {\n name: \"Company\",\n type: \"dropdown\",\n isActive: false,\n dropdownLinks: [\n {\n name: \"About\",\n path: \"/about-us\",\n isExternal: false,\n },\n {\n name: \"Team\",\n path: \"/team\",\n isExternal: false,\n },\n {\n name: \"Roadmap\",\n path: \"/roadmap\",\n isExternal: false,\n },\n {\n name: \"FAQ\",\n path: \"/faq\",\n isExternal: false,\n },\n ],\n },\n // {\n // name: \"Ecosystem\",\n // type: \"dropdown\",\n // isActive: false,\n // dropdownLinks: [\n // {\n // name: \"GoldPesa Mines\",\n // path: \"/mines\",\n // isExternal: false,\n // },\n // {\n // name: \"GoldPesa Academy\",\n // path: \"/academy\",\n // isExternal: false,\n // },\n // {\n // name: \"Stake2Win\",\n // path: \"/stake-2-win\",\n // isExternal: false,\n // },\n // {\n // name: \"Xenii 2.0\",\n // path: \"/xenii\",\n // isExternal: false,\n // },\n // ],\n // },\n {\n name: \"Resources\",\n type: \"dropdown\",\n isActive: false,\n dropdownLinks: [\n {\n name: \"Whitepaper\",\n path: \"https://goldpesa-1.gitbook.io/goldpesa-whitepaper/\",\n isExternal: true,\n },\n {\n name: \"The Pawn\",\n path: \"https://medium.com/@gold_pesa/pawn-4-0-an-intelligent-source-of-liquidity-aa817001b06a\",\n isExternal: true,\n },\n {\n name: \"Pitch Deck\",\n path: \"https://medium.com/@gold_pesa/goldpesa-pitch-deck-goldpesas-value-proposition-in-2-minutes-38ad24156cd\",\n isExternal: true,\n },\n {\n name: \"Certik Audit\",\n path: \"https://www.certik.com/projects/goldpesa\",\n isExternal: true,\n },\n ],\n },\n {\n name: \"Media & Press\",\n type: \"link\",\n link: \"/media-and-press\",\n isActive: false,\n },\n {\n name: \"How it Works?\",\n type: \"link\",\n link: \"?how-to-buy\",\n isActive: false,\n },\n];\n\nexport const launchAppLink = \"https://app.goldpesa.com/\";\n","export const homeAnimationTextConfig = [\n {\n from: 1,\n to: 13,\n text: \"The GoldPesa ecosystem involves 3 main components\",\n position: \"topMidCenter\",\n },\n {\n from: 14,\n to: 45,\n text: \"Let's start with the GoldPesa token, also known as GPX.\",\n position: \"topRight\",\n },\n {\n from: 46,\n to: 100,\n text: \"The best way to understand GPX is to simply follow the money!\",\n position: \"bottomLeft\",\n },\n {\n from: 101,\n to: 146,\n text: \"Every GPX token is backed by 1 gram of physical gold.\",\n position: \"topMid\",\n },\n {\n from: 147,\n to: 203,\n text: \"There is a 1% fee anytime GPX is bought, sold or transferred\",\n position: \"topLeft\",\n },\n {\n from: 204,\n to: 285,\n text: \"50% of the Fees are allocated to the PAWN, our proprietary intelligent trading algorithm.\",\n position: \"bottomMid\",\n },\n {\n from: 286,\n to: 348,\n text: \"The PAWN generates a profit by leveraging the capital and automatically placing trades in the forex market.\",\n position: \"topRight\",\n },\n {\n from: 362,\n to: 446,\n text: \"The PAWN's performance is broadcasted in real-time which not only creates transparency but also volatility among speculators in anticipation of the buyback.\",\n position: \"topLeft\",\n },\n {\n from: 453,\n to: 530,\n text: \"The volatility creates exponentially growing fees which results in an exponentially growing capital base for the PAWN.\",\n position: \"topLeft\",\n },\n {\n from: 531,\n to: 624,\n text: \"Profits generated by the PAWN are used to buyback and burn GPX tokens, which rewards token holders by increasing demand and reducing supply at the same time, driving the price higher.\",\n position: \"topLeft\",\n },\n {\n from: 625,\n to: 737,\n text: \"This cycle continues creating tremendous value for token holders. As a result, the price of GPX floats away from the spot price of gold and trades at a premium.\",\n position: \"topLeft\",\n },\n {\n from: 738,\n to: 789,\n text: \"The PAWN buy back and burn function effectively creates earnings for token holders.\",\n position: \"topRight\",\n },\n {\n from: 790,\n to: 890,\n text: \"An asset that generates earnings has the potential to trade at a multiple of its earnings based on a P/E ratio which we traditionally see in the stock market.\",\n position: \"topRight\",\n },\n {\n from: 920,\n to: 976,\n text: \"What is GPO?\",\n position: \"topMid\",\n },\n {\n from: 977,\n to: 1168,\n text: \"For example, if GPX is trading at $110 USD and the spot gold price for 1 gram is $50 USD then the value of GPO would equal $110 minus $50 which equals $60.\",\n position: \"topMid\",\n },\n {\n from: 1169,\n to: 1284,\n text: \"GPO is therefore a call option which has the potential of a 100X token but is built on the backbone of intrinsic value rather than sheer speculation.\",\n position: \"topRight\",\n },\n {\n from: 1285,\n to: 1368,\n text: \"1 GPO gives you the option to purchase 1 GPX at spot gold price + 1%.\",\n position: \"bottomMid\",\n },\n {\n from: 1382,\n to: 1448,\n text: \"GPO token holders can choose to exercise their option or simply trade their GPO like any other cryptocurrency.\",\n position: \"topMid\",\n },\n {\n from: 1490,\n to: 1554,\n text: \"As a derivative of GPX, GPO will trade independently with a value correlated to the premium of GPX\",\n position: \"bottomMid\",\n },\n];\n","export const homeMobileAnimationTextConfig = [\n {\n from: 1,\n to: 34,\n text: \"The GoldPesa ecosystem involves 3 main components\",\n position: \"topMid\",\n },\n {\n from: 45,\n to: 81,\n text: \"Let's start with the GoldPesa token, also known as GPX.\",\n position: \"bottomMid\",\n },\n {\n from: 92,\n to: 132,\n text: \"The best way to understand GPX is to simply follow the money!\",\n position: \"bottomMid\",\n },\n {\n from: 140,\n to: 186,\n text: \"Every GPX token is backed by 1 gram of physical gold.\",\n position: \"bottomMid\",\n },\n {\n from: 195,\n to: 243,\n text: \"There is a 1% fee anytime GPX is bought, sold or transferred\",\n position: \"topMid\",\n },\n {\n from: 260,\n to: 313,\n text: \"50% of the Fees are allocated to the PAWN, our proprietary intelligent trading algorithm.\",\n position: \"bottomMid\",\n },\n {\n from: 327,\n to: 385,\n text: \"The PAWN generates a profit by leveraging the capital and automatically placing trades in the forex market.\",\n position: \"bottomMid\",\n },\n {\n from: 396,\n to: 441,\n text: \"The PAWN's performance is broadcasted in real-time which not only creates transparency but also volatility among speculators in anticipation of the buyback.\",\n position: \"bottomMid\",\n },\n {\n from: 457,\n to: 530,\n text: \"The volatility creates exponentially growing fees which results in an exponentially growing capital base for the PAWN.\",\n position: \"bottomMid\",\n },\n {\n from: 542,\n to: 625,\n text: \"Profits generated by the PAWN are used to buyback and burn GPX tokens, which rewards token holders by increasing demand and reducing supply at the same time, driving the price higher.\",\n position: \"bottomMid\",\n },\n {\n from: 682,\n to: 755,\n text: \"This cycle continues creating tremendous value for token holders. As a result, the price of GPX floats away from the spot price of gold and trades at a premium.\",\n position: \"bottomMid\",\n },\n {\n from: 768,\n to: 816,\n text: \"The PAWN buy back and burn function effectively creates earnings for token holders.\",\n position: \"bottomMid\",\n },\n {\n from: 824,\n to: 896,\n text: \"An asset that generates earnings has the potential to trade at a multiple of its earnings based on a P/E ratio which we traditionally see in the stock market.\",\n position: \"bottomMid\",\n },\n {\n from: 903,\n to: 972,\n text: \"Using simple math, when you take the GPX price and subtract the gold price, you get the value of GPO.\",\n position: \"topMidCenter\",\n },\n {\n from: 977,\n to: 1040,\n text: \"If GPX is trading at $110 USD and the spot gold price for 1 gram is $50 USD then the value of GPO would equal $110 minus $50 which equals $60.\",\n position: \"topMidCenter\",\n },\n {\n from: 1048,\n to: 1120,\n text: \"GPO is therefore a call option which has the potential of a 100X token but is built on the backbone of intrinsic value rather than sheer speculation.\",\n position: \"topMidCenter\",\n },\n {\n from: 1160,\n to: 1196,\n text: \"1 GPO gives you the option to purchase 1 GPX at spot gold price + 1%.\",\n position: \"topMidCenter\",\n },\n {\n from: 1210,\n to: 1282,\n text: \"GPO token holders can choose to exercise their option or simply trade their GPO like any other cryptocurrency.\",\n position: \"bottomMid\",\n },\n {\n from: 1292,\n to: 1328,\n text: \"As a derivative of GPX, GPO will trade independently with a value correlated to the premium of GPX.\",\n position: \"bottomMid\",\n },\n];\n","export const mediaAndPressConfig = [\n {\n logo: \"assets/images/media-logo/logo-1.png\",\n date: \"Oct 27, 2022\",\n title:\n \"GoldPesa on Netflix Featured on “Dubai Bling,†Trending #1 on Netflix\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-1.png\",\n link: \"/\",\n },\n {\n logo: \"assets/images/media-logo/logo-2.png\",\n date: \"Apr 15, 2022\",\n title: \"South Florida Business Journal - Cryptocurrency Entrepreneurs.\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-2.png\",\n link: \"https://www.gciwcorp.com/media/#dflip-df_218755/1/\",\n },\n {\n logo: \"assets/images/media-logo/logo-3.png\",\n date: \"Mar 31, 2022\",\n title: \"Crypto Expo - GoldPesa CEO Shamik Raja's Keynote Speech\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-3.png\",\n link: \"https://youtu.be/vkdK_4wdfl0\",\n },\n {\n logo: \"assets/images/media-logo/logo-4.png\",\n date: \"Mar 16, 2022\",\n title: \"Crypto TV Interview with Shamik Raja at the Dubai Crypto Expo\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-4.png\",\n link: \"https://youtu.be/n4raziLnf0M\",\n },\n {\n logo: \"assets/images/media-logo/logo-5.png\",\n date: \"Feb 15, 2022\",\n title: \"United Nations - Shamik Raja Interview at The Royal Summit\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-5.png\",\n link: \"https://youtu.be/ZW6urVk2Sxs\",\n },\n {\n logo: \"assets/images/media-logo/logo-6.png\",\n date: \"Feb 01, 2022 \",\n title: \"Shamik Raja Interview with Bloomberg Correspondent\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-6.png\",\n link: \"https://youtu.be/JOm8gqu03Rw\",\n },\n {\n logo: \"assets/images/media-logo/logo-7.png\",\n date: \"Jan 26, 2022 \",\n title: \"GoldPesa a unique gold-backed income generating digital currency\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-7.png\",\n link: \"https://www.newsofbahrain.com/business/78241.html\",\n },\n {\n logo: \"assets/images/media-logo/logo-8.png\",\n date: \"Jan 21, 2022\",\n title: \"GoldPesa and its gold-backed, Bitcoin inspired token\",\n thumbnail: \"assets/images/media-thumbnail/thumbnail-8.png\",\n link: \"https://capital.com/goldpesa-and-its-gold-backed-bitcoin-inspired-token\",\n },\n];\n","export const roadmapConfig = [\n {\n startDate: new Date(\"2019-12-01\"),\n endDate: new Date(\"2019-12-31\"),\n name: \"Dec 2019\",\n text: \"GoldPesa was just a dream...\",\n },\n {\n startDate: new Date(\"2021-10-01\"),\n endDate: new Date(\"2021-10-31\"),\n name: \"Oct 2021\",\n text: \"5 million GPO sold\",\n },\n {\n startDate: new Date(\"2021-10-01\"),\n endDate: new Date(\"2021-10-31\"),\n name: \"Oct 2021\",\n text: \"GPO listed on GoldPesa DEX powered by Uniswap\",\n },\n {\n startDate: new Date(\"2022-10-01\"),\n endDate: new Date(\"2022-10-31\"),\n name: \"Oct 2022\",\n text: \"GoldPesa featured on Netflix\",\n },\n {\n startDate: new Date(\"2023-01-01\"),\n endDate: new Date(\"2023-01-31\"),\n name: \"Jan 2023\",\n text: \"13 million GPO sold\",\n },\n {\n startDate: new Date(\"2023-05-01\"),\n endDate: new Date(\"2023-05-31\"),\n name: \"May 2023\",\n text: \"GoldPesa on Polygon\",\n },\n {\n startDate: new Date(\"2023-05-01\"),\n endDate: new Date(\"2023-05-31\"),\n name: \"May 2023\",\n text: \"GoldPesa Liquidity Protocol\",\n },\n {\n startDate: new Date(\"2023-10-01\"),\n endDate: new Date(\"2023-10-31\"),\n name: \"Oct 2023\",\n text: \"GoldPesa Academy\",\n },\n {\n startDate: new Date(\"2023-12-01\"),\n endDate: new Date(\"2023-12-31\"),\n name: \"Dec 2023\",\n text: \"GoldPesa Mines\",\n },\n {\n startDate: new Date(\"2025-01-01\"),\n endDate: new Date(\"2025-01-31\"),\n name: \"Q1 2025\",\n text: \"GPX Launch\",\n },\n];\n","export const teamConfig = [\n {\n name: \"Heroies Havewalla\",\n specializations: [\"Operations\", \"Precious Metals\", \"Business Development\"],\n linkedin: \"https://www.linkedin.com/in/heroies-havewalla-b2a70256/\",\n avatar: \"assets/images/team/heroies-havewalla.png\"\n },\n {\n name: \"Alexandre De Angelis\",\n specializations: [\"Head of Engineering\", \"Quantitative Analyst\", \"Software Engineer\"],\n linkedin: \"https://www.linkedin.com/in/alexandre-de-angelis-46a287a3/\",\n avatar: \"assets/images/team/alexandre-de-angelis.png\"\n },\n {\n name: \"Sina Tootoonian\",\n specializations: [\"PhD Neuroscience\", \"Electrical Engineer\", \"Artificial Intelligence\"],\n linkedin: \"https://www.linkedin.com/in/sina-tootoonian-99668838/?originalSubdomain=uk\",\n avatar: \"assets/images/team/sina-tootoonian.png\"\n },\n {\n name: \"Wil Yeung\",\n specializations: [\"Goldman Sachs\", \"Chemical Engineer\", \"Equity Derivatives\"],\n linkedin: \"https://www.linkedin.com/in/wilyeung/\",\n avatar: \"assets/images/team/wil-yeung.png\"\n },\n {\n name: \"Zahid Pirani\",\n specializations: [\"Operating Officer\", \"Design Engineer\", \"Marketing Expert\"],\n linkedin: \"https://www.linkedin.com/in/zahid-pirani-17985ab5/\",\n avatar: \"assets/images/team/zahid-pirani.png\"\n },\n {\n name: \"Abhimanyu Malhotra\",\n specializations: [\"Blockchain Technology\", \"Digital Assets\", \"Decentralised Finance\"],\n linkedin: \"https://www.linkedin.com/in/abhimalhotra\",\n avatar: \"assets/images/team/abhimanyu-malhotra.png\"\n },\n {\n name: \"Yadav Jani\",\n specializations: [\"Financial Advisor\", \"Entrepreneur\", \"Investment Strategy\"],\n linkedin: \"https://www.linkedin.com/in/yadav-jani-7320a9a6/\",\n avatar: \"assets/images/team/yadav-jani.png\"\n },\n {\n name: \"Michael Sutton\",\n specializations: [\"Brand Ambassador\", \"Celebrity Management\", \"Serial Entrepreneur\"],\n linkedin: \"https://www.linkedin.com/in/sut20/\",\n avatar: \"assets/images/team/michael-sutton.png\"\n },\n]","import { createContext } from \"react\";\n\nexport const AppContext = createContext();","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport ReactGA from \"react-ga4\";\nReactGA.initialize(\"G-9RS6YN9MTP\");\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n <React.StrictMode>\n <link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css\" integrity=\"sha384-pzjw8f+ua7Kw1TIq0U1sazvVPHhH+aQMDXHch4Nx+XT5pOpZ+1u4h4cC5p5jey3N\" crossOrigin=\"anonymous\" />\n <script src=\"https://code.jquery.com/jquery-3.5.1.slim.min.js\" integrity=\"sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj\" crossOrigin=\"anonymous\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js\" integrity=\"sha384-ikZ4Zsl1sOydkAZQhv1+VNEFv/YXAk9ybmP5EMmk5Fzru/8GFvT9nFuiBvF1LRnH\" crossOrigin=\"anonymous\"></script>\n <script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js\" integrity=\"sha384-pzjw8f+ua7Kw1TIq0U1sazvVPHhH+aQMDXHch4Nx+XT5pOpZ+1u4h4cC5p5jey3N\" crossOrigin=\"anonymous\"></script>\n\n <App />\n</React.StrictMode>\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./Layout.module.scss\";\nimport Header from \"components/Header\";\nimport Footer from \"components/Footer\";\nimport { useLocation } from \"react-router-dom\";\n\nconst Layout = ({ children }) => {\n const location = useLocation();\n const [autoHeight, setAutoHeight] = useState(false);\n\n useEffect(() => {\n if (location?.pathname?.includes(\"stake-2-win\")) {\n setAutoHeight(true);\n } else {\n setAutoHeight(false);\n }\n }, [location]);\n\n return (\n <div className={`${styles.layout} container`}>\n <div className={styles.layout__wrapper}>\n <Header />\n <div\n className={`${styles.layout__mainContent} ${\n autoHeight ? styles[\"layout__mainContent--autoHeight\"] : \"\"\n }`}\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nexport default Layout;\n","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgArrowRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 96,\n height: 96,\n viewBox: \"0 0 96 96\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 96,\n height: 96,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4589\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4589\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAASSklEQVR4nO3dXexteV3f8feeJxSCiAMcnkSbIrtY8aIPtBemVw1p0iIzjE3FEohKgAlpUtMIqGWUifIsosaHggIzImhMCyoBbL1ovWhqGpO2sTS7Kg+DYEVnxgFFRGD3Yu2/c8AZ5n/O2fu319779Ur+d+e/vivn4nzO+q3f77MKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYhcW+bwCA+7ZeVXVVdU119eZnUX2m+sxi2XpvN8fsCHSAGVqvurq6UH1d9Teqx2x+HlL9r+q/Vn9c3VXds1ju6UaZDYEOMDPrVY+onlo9q3p69bD7+GN/Vv1W9b7ql6oPLpZ9bthNMjsCHWBG1queVN1cfUv1+HP8yierd1c/Uf3WYtmnd3h7zJhAB5iJ9aoL1euqZ1/ir/5F9ZvVj1W/tlj2p9u+N+bvmn3fAAC1XvXl1YuqGy/j1x9UfVP1VdWD1qvetVj2qW3eH/N31b5vAODUbXazP6t6bvXgy7zMVdXfrr6/evp61XVbuTkOhkAH2L8L1U3V47qyV6GLpl3xr6n+2RbuiwMi0AH27xuqr2k6Z36lFtUTqjeuV/3jLVyPAyHQAfZovWpR/d2mM+bbdH31C+tVz7T8fhoEOsB+PahaVg/fwbWvr36kunG9uux38xwIgQ6wX9c2hfqujhF/dXVrU6g/dEczmAGBDrBff1Z9onbW8na2Ue57qmesV33FjuawZwIdYI8Wyz7f1Me+y4a3RfX11UuaQt2T+hES6AD79/+antR3adF0Tv0l1Td7p358BDrA/v1G9cHa+edQz57Ub2kKdbvfj4hAB9i//1O9s7p7wKyzd+qvbvqSG0fCx1kAZmC96lHVu6p/0LiHrTurZy2W/adB89ghT+gAM7BY9vHqB6uPDRx7ffWO9aqbLL8fPoEOMBOLZe9p2rT2hwPHXl+9vnqmjXKHTaADzMhi2dubNq3dMXDsV1cvT/nMQRPoAPNze/VD1e8Omndx+cwNymcOk0AHmJnFsk9X76heW/3fUWObjrS9OOUzB0mgA8zQYtknq1+sfrixoa585kAJdICZWiy7pynUX1/93qixKZ85SAIdYMY2of72puX3URvllM8cIMUyAAdgverLquc27Ua/MHC08pkDIdABDsh61XOqV1WPGTj2zuoF1a8uln1m4FwugSV3gAOyWHZ79dKUz/BFBDrAgdmE+g+0n/KZZzrSNk8CHeAwvbV6RWN3v39d0+qA8pkZEugAB2hTPvP26nXV74wam/KZ2RLoAAdqUz7zC03vt0eG+ln5zDO8U58PgQ5wwBbL/qR7Q310+czLUj4zGwId4MBtQv3nm5bf91E+882DZvIlOIcOcCQ25TPf3rQD/lEDR9/VVD7zHwfO5IsIdIAjs1713OqVjS2fuaupfOZXlM/shyV3gCOzWHZb07fNPz5w7Fc1fRlO+cyeCHSAI7QJ9ZdXHxk4VvnMHgl0gOP15qal9w8Mmqd8Zo8EOsCR2pTPvC3lMydBoAMcsU35zDuqH6l+d9TYpvKZl6Z8ZhiBDnDkNufU39FUPjNy+f3J1S1Noa58ZscEOsAJ2IT625p2oo/aKKd8ZiDn0AFOyKZ85juq70/5zFER6AAnaL3q25s+v/rogWPvql5Y/bLyme2z5A5wghbL3lJ9b/spn7nJRrntE+gAJ2oT6remfOYoCHSA0/az1asat/u96olN1bQ3Kp/ZHoEOcMIuKp/54caeU39yU/nMDZ7Ut0OgA5y4xbJPVG9vfPnM11cvSfnMVgh0AM7OqZ+F+gdHjU35zNYIdACqWZTPPGPQzKPkHDoAX2BTPvO8pifnRw4crXzmCgh0AO7TetV3Vj+Y8pmDYMkdgPu0WPaz1b+t/mjgWOUzl0mgA3C/NqF+a/X7A8cqn7kMAh2AB/IzTZvWRu1+L+Uzl0ygA/Albcpnbm9aCv+9UWNTPnNJBDoAD+iLymdGhrrymXMS6ACcy2LZ3U2h/obqQ6PGdm/5zA3KZ+6fQAfg3Dahfrb8Pmqj3Fn5zKtSPnO/nEMH4JJtymee33SsbWT5zN1N5TO/NnDmQRDoAFy29arnNZXPXBg49u7qBSmf+QKW3AG4bItlP1O9rLHlMw9vWvL/lvWqhwycO2sCHYArslj2pqan9NHlMz+Q8pm/ItAB2IY3Vq9p3O73mspnXprymUqgA7AFm/KZ21I+szcCHYCt2JTP/HzTOfUPjBrbveUzN5zyO3WBDsDWbM6pn4X6h0aNbXpSf1lTo9xJls8IdAC2ahPqtzXVxH501NhOvHzGOXQAdmJTPvOC6vtSPrNzAh2AnVqven7TN9WVz+yQJXcAdmqx7I1NH1f544FjT658RqADsHObUP+hxr1TrxMrnxHoAIzy75rKZz48cObJlM8IdACGWCz78+qt1esbe079rHzmxmN+UhfoAAyzKZ/5uZTPbJ1AB2CozTn1t1U/2rjl90X1tzri8hmBDsBwm1B/a/srn7lh0MxhnEMHYG/Wq768emH1vdUjBo6+u/q2xbL3DZy5UwIdgL1br3ph0xGz0eUzL6zedQzlM5bcAdi7xbKfbgr00eUzr+tIymcEOgCzsAn1V1QfGzj2aMpnBDoAc/LT1WsbXz7zPU2hfrDlMwIdgNnYlM+8pWn3+wdHjW060vbdHXD5jEAHYFYWy+6pbm8qnxkZ6gddPiPQAZidzTn1n0v5zLkJdABm6aLymTc0bqPcwZbPOIcOwKxtymdubtq4pnzmfgh0AA7CetXNTUfMHjVw7MGUz1hyB+AgLJb9VPXy6s6BY8/KZ/753DfKCXQADsZi2U9Wr2w/5TM3zflIm0AH4ND8ZNNT8x0DZ/7N6qXNuHxGoANwUDblM29uKp/50Kixzbx8RqADcHAuKp/50caG+ln5zI1ze6cu0AE4SItld3VvqI9afr+4fOaGOZXPCHQADtYm1N/S+PKZJzaVz9w4aOYDcg4dgIO3KZ95UdPGtesHjr67+peLZe8dOPM+CXQAjsZ61YuqWxpfPnNz9c59ls9YcgfgaCyW/UR1aydYPiPQATgqm1B/VfUHA8c+vj2Xzwh0AI7RWfnMRwbO3Gv5jEAH4Bh9qql85g2dSPmMQAfg6CyWVf1J0/fUf6wTKJ8R6AAcpU2o31XdVv1445bf91I+c82IIVXrVVUPrp5UPaV6zMj5AJy0hzWF+2OrqwfMu7h85rPVL44YuHPrVU+r/lXTMsTDqmub/kKdgwdglGs3P6PdXT17sew9uxyys0Bdr7qm6WD/S5rCXHgDcKp2Xj6zk3fo61VXV/+o+vdNVXzCHIBT9vDqtU3v1HfyunlXm+Ke3FS999TGvKsAgLl7fPWvq6ds9pVt1dYDfb3qEdV3Vn9nF9cHgAO1qL6xKSMfue2LbzVwN8sIT6ueUfupvgOAGXtI9U+rf7JebXeD3rafoL+y+qbqa7Z8XQA4Fk9o2me21c+8bjvQL1Rfu4PrAsCxuKrpwffCti+6TReaXvoDAPfvcW35PbpAB4DxHtfU1bI12w70q3JMDQCG23agf7z6/S1fEwCOzUebMnNrth3of5hAB4AH8tHqj7Z5wV0E+h3VesvXBYBj8fnqw02ZuTXbDvS7qv/W9D8PAOCv+3D1G9Wd27zoVgN9sewvq/dU760+tc1rA8AR+NPq3dX7Npm5NbsogPmD6k3Vb2fpHQDOfL76n9Wb2/L789pBoC+WVf2P6tXVKqEOAFUfqV5f/fYmK7dqZ98pX6+6rqkG9hXVTbuaAwAH4M7q+dW7F8s+s4sBOwv0i61XfUf1oqYWuWur61JAA8BY12x+Rruz+tbFsl/f5ZAhgV61XnV1U83dU6pvqB6dUAdgjIc2fQ30SY3LnnXTMvt3LZb9h10PGxboALAP61UPq/5F9d3VE0eNrX6nuqV6566W2S+2j6UHABjiojD/N40N8/dXr6x+dUSYl0AH4EitVz20e8P8SaPGNh3bfk31K4vluE4WgQ7A0Vmv+rLqWY1fZn9/U5j/8mLZJwfNrQQ6AMfpOdX3VU8YNO/snfkrm57Mh4Z52RQHwJFZr3p29brqwsCxd1Qvbnpnvpfqc4EOwNHYhPlrqscMHLvz0pjzEOgAHLzNO/PnVLc29sl8SGnMeezi4ywAMMxmN/vZO/NRYb5uWmZ//hzCvAQ6AAdsc878bDf76A1wL276FOos2OUOwEE6pdKY8xDoABycUyuNOQ+BDsBBOcXSmPMQ6AAcmpMrjTkPx9YAOBinWhpzHgIdgINwyqUx5yHQAZg1pTHn4xw6ALOlNOb8BDoAs6Q05tLY5Q7A7CiNuXQCHYBZURpzeQQ6ALOhNObyCXQA5kRpzGVybA2AWVAac2UEOgB7pzTmygl0APZGacz2OIcOwF4ojdkugQ7AcEpjts8udwCGUhqzGwIdgGGUxuyOQAdgCKUxuyXQARhFacwOObYGwM4pjdk9gQ7ATimNGUOgA7ATSmPGcg4dgK1TGjOeQAdgq5TG7Idd7gBsjdKY/RHoAGyF0pj9EugAXDGlMfsn0AHYBqUxe+bYGgBXRGnMPAh0AC6b0pj5EOgAXDKlMfPjHDoAl0RpzDwJdADOTWnMfNnlDsC5KI2ZN4EOwANSGjN/Ah2AL0lpzGEQ6AA8EKUxB8CxNQDul9KYwyHQAbhPSmMOi0AH4AsojTlMzqED8FeUxhwugQ5ApTTm0NnlDoDSmCMg0AFOnNKY4yDQAU6Y0pjjIdABTpvSmCPh2BrAiVIac1wEOsAJUhpzfAQ6wAlRGnO8nEMHOBFKY46bQAc4AUpjjp9d7gBHTmnMaRDoAEdMaczpEOgAR0ppzGkR6ADHS2nMCXFsDeAIKY05PQId4MgojTlNAh3gSCiNOW3OoQMcAaUxCHSAA6c0hrLLHeCgKY3hjEAHOFBKY7iYQAc4QEpj+GICHeAwKY3hCzi2BnBglMZwXwQ6wAFRGsP9EegAB0BpDA/EOXSAmVMaw3kIdIAZUxrDednlDjBTSmO4FAIdYIaUxnCpBDrAzCiN4XIIdID5URrDJXNsDWBG1queXr0ppTFcIoEOMBPrVU+u3tW4d+alNOZoWHIH2LP1qqrHVT/VuHfmpTTmqDiHDrB/1zUtef/9xvy7rDTmCAl0gP17YvXU6sEDZimNOVKW3AH27xurRw+YozTmiAl0gD1ar7q6KdAfuetRKY05apbcAfbrwdXj2+1yu9KYE+AJHWC//rL6XLs7Rqw05kQIdID9+ovqnqZgv3YH1/9IdUtKY46eJXeAPVosWzedB//zHVz+zuq7qncK8+PnCR1g/z5Q3V19xRavqTTmxHhCB9i/91X/vWnZ/UopjTlRAh1gzxbL7qxua3rfvb6CSymNOWECHWAefr16b9MmuctxdjTt1pTGnCSBDjADi2Wfrn68emv16Uv89XX1v6tXpzTmZPl8KsCMrFc9tnpedXPnq4O9p+np/vbqPy+WfWKHt8eMCXSAmVmv+srqadW3VX+vemx//d/rz1a/Wb25+i/VHYvlVjbVcaAEOsDMbL6Pfl31qOoR1bL6h031sB+vPta0ge791cc2y/WcOIEOMGPrVYumzpDrmvY9fW7z89nFss/t894AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4D/8fLfwYMZB9JEYAAAAASUVORK5CYII=\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRight);\nexport default __webpack_public_path__ + \"static/media/arrow-right.3e580da26541a5b39bdbf0f5c7b1f076.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgGoldbars(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 96,\n height: 96,\n viewBox: \"0 0 96 96\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 96,\n height: 96,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4454\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4454\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO3dd7hd1Xnn8e9VRUKogoQlJETvvfcqmhCXXkxxydg4HsclY8dO7EziiceTxMnYieMZl3ES3OMGotp0jMGADZgqU22MEYgimihCIM0f7z3R0bnnnHv2ftfea+91fp/nuY+ke+9e59W96+x377XXetfAmgcQERGRmhsVOwARERHxU0IXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgAldBERkQQooYuIiCRACV1ERCQBSugiIiIJUEIXERFJgBK6iIhIAsbEDkBECrM1cDSw6dC/fwf8FHgoVkAiUhwldJH07AD8b+CoDl//KfARYElpEYlI4QbWPBA7BBEJaCHwPWDSCN+3AjgDuLzwiESkFEroIunYHbgRmNjj978KHAjcWVhEIlIaTYoTScMA8CV6T+YMfe9Xho4VkZpTQhdJw2HAvjmO2ws4JHAsIhKBErpIGo6PdKyIVIQSukgatox0rIhUhBK6SBqmOI6dFiwKEYlGCV1ERCQBSugiIiIJUEIXERFJgBK6iIhIApTQRUREEqCELiIikgDttiZVciBwOrA3tgzrKeAO4Fuo3rjEtRdwNrAbsBHwInAb8APg5xHjEvlP2pxFqmAu8O/A4V2+5/vA+4Hnygiohm4ADs557M9Q+ddOZgL/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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGoldbars);\nexport default __webpack_public_path__ + \"static/media/goldbars.1907c98f3e0f272abcb32ba9cea5df19.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgPawn(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 80,\n viewBox: \"0 0 80 80\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 80,\n height: 80,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4450\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4450\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPawn);\nexport default __webpack_public_path__ + \"static/media/pawn.2f44ac990d3bf33f07a06a84e1a9530c.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgEtherium(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 78,\n height: 78,\n viewBox: \"0 0 78 78\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 78,\n height: 78,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4445\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4445\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nOydd7gcZdn/P5OT3gkJpJEQAgyht9BDV1BUVBQU7Phi/dkLqK9YsIvYUV+7giBFQaSKdFBASqhDIAmkQEhIIe2U5Dy/P77Pcg7x7Gw5szM7s/fnuvZKIHt2n7M783yfu4NhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIaxJUHWCzAMozZcBOjeHeQfI4EdgD2BXYCdge2A0cAo/+gG1gFrgNXAQiACHgfmAs8A7UAXsAlwQZjO72MYRjKYoBtGjnARQ4AxwBTgKGAOcAAwuR8vuxkJ/F3AzcCdwHJgTRDS1Y/XNQwjRUzQDaPJ8Rb5GCTa+wFvBI5BFngjeAG4AbgUeBB4NghZ36D3MgwjIUzQDaNJ8UI+DtgROBY4FZgFDEhpCZuRtX4hcAewMAhZm9J7G4ZRIybohtGEuIhhKB7+GuBkIETx8ixoB+5BFvs/gCeDkM6M1mIYRhlM0A2jiXARA1BC2yuAU4CDgRGZLqqHNcA/gT8BtwDPW+KcYTQPJuiG0SS4iMHAPsC7gNcBk2i+e7QbeBK4DLgAiIKQTdkuyTAMaL7NwjBaEhcxGng1cDrNZZWXYzVwI3A+cEcQ0p7xegyj5TFBN4wM6ZXB/h7gDFRDnlbSW3/pBB4AfgBcYZnwhpEtJuiGkRFezEcBn0KW+ZQs11MnDngKOBf4rVnqhpEdJuiGkREuYijwHeCtwNYZL6e/LAW+Dfw4CNmc9WIMoxXJi2vPMAqFiwiALwDvJv9iDmp680XgbVkvxDBaFRN0w8iGjwMfofmT32phHHCui3ht1gsxjFbEXO6GkSK+zvytwI+ArTJeTqNYDLweuC8IcVkvxjBaBbPQDSMlvJt9b+RqH5vxchrJJOA8YKpP/DMMIwVM0A0jPSYDZ6NRp0X2jrUB+wJn0bgBMoZhbIEJumGkgO/N/l7gUGBwxstJgxHACcCJLqIt68UYRitggm4YDca72g8ETqQYGe3VMgVlve+Y9UIMoxUwQTeMxrMtcBqantZKlFzvJ7uoUNn8htGUmKAbRgPx1vmRwBHAsGxXkwnjgeOAPbNeiGEUHRN0w2gsk4BjgOlZLyRDdgeOMyvdMBqLCbphNAhfsnUAMIfWSIQrxxjkodg964UYRpExQTeMxjEOOASYkfVCmoB9gINcxKCsF2IYRcUE3TAax47IQm9l67zEaGB/YGrWCzGMomKCbhgNwNde74osU0ONdPYHwqwXYhhFxQTdMBrDNkjARmW9kCZiR2A332THMIyEMUE3jMYwCZVqFbnFa60MBPZAdfmGYSSMCbphJIyvPZ8EzMp6LU3IbsDErBdhGEXEBN0wkmcYGsAyPuuFNCEhMNEfegzDSBATdMNIntHATlkvokkZBWxHa3bNM4yGYoJuGMkzAomW0TdTgOFZL8IwioYJumEkzwgkWkbfbAfWBtYwksYE3TCSZxiW+BXHRMzlbhiJY4JuGMkzCMXRjb4ZBdYC1jCSxgTdMJKnDRia9SKamGGoJt0wjAQxQTeMBPHlWIOx/u1xDMcE3TASx24qw6gSFzEANYxpA54LQjrLPDXAOsTFEWtIuIjBqJtcN/BsENKdyqoMI+eYoBtGGbyAb4VauB4IHATMBP4M/AxY3tePAV3AZiT8xn/TAbEiPQZ4J/AWYLGL+A9wt38sM4E3jL4xQTeMXriIEUi4DwUORu1bRwBDUFx8EHAbZZK6ghBcxCagHSvNKscGYFPMvw9CmfC7AbsAh6FDwDrgURdxF3AHcFcQsqHBazWM3GCCbrQcLgJ63OIDkHgcCpwAvBJZiG3+0Zd7eAjx984mJFom6H1TSdAHAyP939vQ5zgCGIfmqR+DPCAbXMQdwN+Bm4H5yPLvBlxgg1qNFsME3WgJvIgPRFb2MGA6cDTwajTmtBbxHUK8O70DueMn1LHUVmA58mCUYygKdfTFAP8Y5J/3Wv/YCDwM3ABcC0QuYoN/n00m7kYrYIJuFJZeIj4K2Bq5cF8JHIl6rddbCz2G+LK09cBiYNc6X7/oLEafUTmGo3nytTAMmO0fnwbmATcB1wOPu4iVwBqgy8TdKCom6Ebh8MlsY1Gm9EzgKOBYJOhJJKpNoscl3BfrgUUJvE9RKSvo/hA2GrnW62UQOkztCnwAueJvAq4BnnARy4BVQcjmfryHYTQdJuhGIeiVkT4FudNnIxGfTfLXeSVBXwcsTPg9i0InEvSNZf59AIqV12qhl2MAsKN/nA7cj9zyd7mIhX4tqy1z3igCJuhGrnERw9Cwj11RLPxQYF/kZm9ULfhwYKiLCIIQ18e/r0Mu3/VYYtyWPAMsCcKySXFDUHikr8+1vwwA9kPXx1rgPyhb/l4X8SiwKAhjY/uG0dSYoBu5o5dLfQ+0QR/kH5NpTO13B7AMidFCYIF/BPQhPEHIJhex2D9n9wasJ888ij7LcnSj5LbzgGnI9T4VfbdJtdMNkFv/KOBwYAnwL+BuFzEXeBBYYVa7kTdM0I1c0CvBbSfgAORK3x9Z5qMSfrvNSLzn+8cC/98L/H+viLEwSyxDwmSC3oMDHiFG0IOQDuQOvxcYj8In0+lxm++A8iImk4wHpg0dHKahssUnUAObO13Ev4EnLdZu5AVrT2k0PS5iCHAIqj/eFyW3TSFZa3wj2sznAg8ATyHLbQmwvAoB33LNI4APAV/F+rqXeB74OHBxrSLpr4Ft0Pc+FYn7PqiL30ySnd62GcXWH0Fu+RtRE5tyrX4NoykwQTeaFhcxFpgDvAZZ4zsTn4xWK2uBx5BFdi+yvhejGG+/Nm8/pOU44Huo25yhErIzg5D7+/tCPndiKj1JkHsiz83uKByTFGvRQe8+lCX/zyBkTYKvbxiJYYJuNB0uYgpwPBLyXZE7NIn4qQNWonjprcBDwFJkOa4g4RplF7E98BXg7cm9am7ZBHwH+EYQsjapF+0VihmHyhSnIS/OEegQOCaht+pApYhzgSuB64KQ5xJ6bcNIBBN0oynwiW7TgZNQ56+dUbZzEq7UdmSFX4P6sC9Gwr6hkfFRFzEQOAOJ+taNep+c8DhwFnBFmcqARHARbciLMw5VPxyKDocHkMyhsAsd/p5E19MlwFON/J0Mo1pM0I1M8UI+E3gvEvLJaEPub3zcIQv8UrTxLkbu041pZi+7iD2BbyFRaVW6gd8CZwUhz6f1pv7aGo6up5nI4/NGdFjsL5vpaSD0F+DXwNOWGW9kiQm6kTreTToAxT8/BJyGEp4G0b9r0gHPAZcDf0QlUh1AZ1YWlLcYPwF8jmRju3liHvBFlAyX1fdQ6v8+DCXTvR14HbLk+3vNdaHQze/RWN1lQLe1mDXSxgTdSA2fKDYExTrfh9zR/XFFO9R5bD1KWvoj8DdgZTNtpi5iN+Bc4BX0Pb2tyHQBFwCfCEJWZb2YEv5QOQ55hd6O4u7DUUVCf/bFVcBvgB+g3IwOc8cbaWGCbjQcL+SjkEV+EvBhJOr10oUGbSwFbgEuAv7ja5ibEhdxBvAFFNdtFRxq0vLZIOT6rBdTDhcxFNgbOBmVRk5FjWf606djOXA+OmQ+C6w3YTcajQm60TC8FTQSmIGE/N1os6zXSu1AIv4wcqtfH4Qs7fdCU8BFjEPdz04muY5nzc4a4KfA2UFIV9aLqYS/XrcHXoXc8bugvv1D6nzJbtTP4FfAVag50dpm8h4ZxcIE3WgIvk54B1Q+9C5kAdWbsb4WdWm7DyUg/SMI2ZDAMlPFRRyNEuT2oTEtapuJLtSQ5aNByBNZL6ZWXMQo4Gh0EN0LJdXV25e/C5W7/Q4NhlloPeONRmCCbiSKixiEys8OR9boodTfDGYFKne6C1k4d+S5DadPzDoD+F9k+RX1/usGIuDTQcjfs15Mf/Clh4cAJ9LTanh8nS+3FvU/uNT/+UytHQgNI46ibii5xm/8I9A40GEoUaeUrLMZn7mNpnqtpgkSb3w29yRkkZ+AYpH1jMDsRu1W7wXuRHOs5+bBZVsN3vL7ChL24Rkvp1GsBM4BflQUwfLCvhvq/nc4SqKbSH176DLUNe8K1Bch80EwPs9lKKrEGEnPntOGciFKe84GtOdYTkATYoKeMT5uNxzFlmegTlfboOzv8UjYB6ObLUAdtzr8Yw3wArJkn0OTwOYDz6W1QfSKkx+L4o5H+9+h1murJOS3I1ftzaiutxCC0BsXMQMJ3ikUz/XeAfwYOCcIWZ31YpLGe6BmokltxyLrfVvqu97nIRf8Fei6b08rvu4P4FPQnjMdHU5Ke85olDcwBF2f3fTsOevo2XOeB55G4bClQVh2xr2REiboGeBFcBjq8V3qPz0NZUBPQpZ5tQM9HDo1r0CCuAgJ+z3+sajBnbn2At6GGqfMonaB6kYbw43AdcgqL6SQ98ZFzEJJcsdlvZYEccAvgS/lJVmxXlzEYJQjcijyRh2NDuK17qldaBjQ1cAfg5Ank1xnb7znbwaaVLgfSgAs9cMfT4/RUA2dSNiXoqZNC1Ejp3uAqJkrToqMCXqKeLfW1kj8DkcCuAPaCJIcZduBbrAn0WZxA3B3kidoFzEGeANKeJtN7e5jh2p2r0G14/eimGIhXOvV4CL2B76PRCHvOFQ++PkgZEHWi0kLL+zT0MH8BJQhP5ba99Y1aMbARcCfk0z6dBEjgYORR2FPNKluGslOAexEoYT5qKHTTWjfWW1Z/elhgp4SLmI88CaUXNPfcpiq35aeDPG7gctQYtm6ul9QrrqjgNPRJjG9jpfZiBKD/oxGVC5uJSEv4S2mA4DPAq/PeDn9YTNqpnIuss5aLrbqhX0qquY4FTWsqVUwHXJhXw/8PAi5r59rGoNyWt5Ij0U+gsbv++3IW/goKi/9i02oSwcT9Abjb/QTgQ8gi3wb0u8W5pCIPouya3+OGrHUOuN7OvA/SHx2or4N6w40UvRuFOvPbdZ6EvgD0m6oNezJ5O+e7AR+4h8Lsk7uyhofY5+EDrsfRt6XWr/TDWis70XA74KQ5XWsYT/UjfEIv54seh9sRlb7o2jP+WvRQ2lZk7fNI1d4l+onkXt9W5ojAWojanDxe9TwYlk1LjHfTetsJOj19L9+CLXD/AdKoGk5i7wcXtS3Rxvw+1FXvTzwPDqc/YEUEzHzgD/IT0Zu+I9Q+0CYbnSfngv8uMp7NEDx8PejhMspKFcnazajpN3rgO8FIY9kvJ7CYoLeAFzEEOAdaCjHTJIZAZokDrnF/o3cvf+pZCn7zWIX1PlrDtUfTp4DfoGmbS1Bg1KMLfCf7xjkHv08yq1oZh4Evozcwxta0c1eCZ/8WhL204AP+r9XQwfKfv8IVRy6fVndgcC3UUndEJpvf+9EeT3fBS4IQjozXk/haLYvPNf0srQ+jeJoebC0VqI51RdWiq37DWp/5D7bm/Khg80o6/5i4EcoUcamT1Wg1xS6/YEzURLTCJpnoEs3ymy+FGXoPwk4+17j6fW97gx8DHWf24ryh+JNKKnsPSi/pNJrjwbeCXwVHQqbnTXIQ3guqsIxz05CmKAnhI9bHYi6gB1L82zC1dCNNuivU8WkMhfxauQ+n8nLr6Fu4EVUenYecIu51uvDZya/AY2X3ZVshX0z+l4fAH4IXG3WVX14V/wxSNgPRIf+3t9rN2oT+44g5KEKrwUqN/sWmpOQp/18M3Al2nMetH0iGfJ0ATQlvWrK5yBL98gMl9NffgN8iSpq113Eh1FMfTw9SXePARcCf6g1kcfoGxcxE7lrX4vc8FuR3n27GU0Ni1CC1mX2vSaDi9gGheXeikJZw9D3+hzwkSDkkgo/PwBVmJyDvIF5xKGQzTeBu6x2vf+YoPcTnyx2HPBFFLvKM12otO1LqPyoLN7SOBd4L2pmcyPwf8B95oJNHhexA0p0OgbVEE+m/mEhlViHKiLmoTju5UHIiga9V8vijYF9UaLpEShc92PgzDg3tM+32B1Zt8eTbA+LLLgdhQtuMVHvHybo/cCL2tHoYtw/4+UkRTuqHf1iEPJU3BO9lfFV1EDib3YzNh4/hvUwdN3tjkqSJqLYab1VFF0ol+I5JOSPojnzNwUha/u7ZiMev48ci7wwXwhCXoh5Lqj89euoiU2je1mkxW3I43e7ud/rxwS9TnwC3CHANyhGp6/evIhKkb4ThDwd90QXMcSEPH18VvP2KL4+C+UzTEAu+XEoNjsEVVgMpmfARhc9cwBW0SPk81DI5FGsP0AmVHMvuYidUM+CN1H/FMNm5QYUtrzfEuXqwwS9Tnxs86fAK7NeS4NYDpwP/DDOYjCyx7tghyNB38b/OZaeSX0lK24jKh3aiIT8ef94weZzNz8uYiKqoHk3OrgVDYe8gx8LQhZnvZg8YoJeBz5u/gMUP85TNnutzAe+hmpGzQo3jIxwEcORkH8G5VAUlU2okuJMc73XTpHFqJGUslOL/vlNR8NXDvKxO8MwUsZ7YOagWvOpGS+n0QxEB5eTsl5IHim6ICWOb+f6cfLRNKa/tKFkv7dSbKvAMJqZnYC3o0lprbBnbwWc6aKa2+W2PK1wcSSGz0b9OEpAahWGoezbo3wilmEYKeHDe69A5WlFyWivhlnAx329vVEl9mHVxklodGiz9WZvNBNRVu2srBdiGC3Gnqj/wLisF5Iyg4BXo8OMUSUm6FXi55m/D2URtxoDUJ3sUT45xzCMBuMixqKmVQfTegnMAWqe9GHbc6rHBL0KfFLKm4GQ5hiBmgVDkYdiJ0uQM4zG4u+xEHnGWjXUNRDYC3it7TnVYYJeHVsDr6M1rfPeHAIcQHPMWDaMIjMKOBzYI+uFZMwkZEwVrYlOQzBBr4A/GR6PBii0+uc1EFkMU+zEbBiNwd9b2yGPWKu52rdkIGpxfFTWC8kDrS5Q1TAMnZQnZb2QJuFQNPWrVUMPhtFoBqOWvnkf9pQUU4Aj/YhqIwYT9Mrs6h+tVDISxwh0WjYXmGE0htEoGc4ETIxE2f7bZ7yOpscEPQbv+poNzMh2JU3HccBYc7sbRrL4BNyt0Zhco4cZaC82YjBBj2c4sBuWDLclu6HOcXb9GEaytKF8nelZL6TJmAzsYW73eGxDjmcqcvO0atlIOQajlrB2cxlGsgwGDsL25i0Zhqz0CVkvpJmxiyaeHSj+MIR6ORhtPoZhJMcgJOjGfzMVC3/GYoIez3ZYdns59sUsdMNIDJ+TMhQ1UzH+m8nYkKhYTNDL4JNTJqDJP8Z/Mw0YaYlxhpEoE4GxWS+iSRmH5TPFYoJenpFI0M2t3DeDkAej1RtfGEZSBGiSo91TfTMKGG+JceUxQS/PVqh8xCjPjlkvwDAKREnQjb4ZgPbk0VkvpFkxQS/PcKx5SiUmYNaEYSSJuZTjGQE2fa0cJujlGYx1h6vEqKwXYBgFY0TWC2hyhmBh0LKYoJdnEHbhVMI2H8NIFrun4hmMVdeUxQS9PAOwASSVsAOPYSSLiVU8bdi+XBYT9PJsArqyXkSTsyHrBRhGwdiY9QKanC5sXy6LCXp5uoCOrBfR5KzLegGGUTDWZ72AJqcD6Mx6Ec2KCXp52v3DKM8awGW9CMMoEGuyXkCT044JellM0MuzDru5KrEk6wUYRoFwwNKsF9HkvAiszXoRzYoJenlWAy9gFmgcT2Gfj2EkyZNZL6CJ6UR7soUlymCCXp4OYAWWpFKOtcDzWS/CMAqEA+YDm7NeSJPyIrAiCOnOeiHNigl6GYIQBzwHLM96LU3KE0B7EGa9DMMoFGuAxVkvokl5Hng260U0Mybo8SzE4sTluBtLTjGMxPCH4w7g3mxX0rQsQXuyUQYT9HgWYKflctyFCbphJE0X8K+sF9GkLMYEPRYT9HieRaJu9egvZwNwP2q+YxhGcnSiw7LF0V/OGmAeiqMbZTBBj8EnX9yNRN3o4R8oOcUy3A0jQfye8zTw76zX0mTMB+6xPSceE/TK3IuVZ/WmG7gWOykbRqNYA1yD7TklulE5331ZL6TZMUGvzCLgAayZQYklyGth5XyG0RjWA7cCq7JeSJPwArLOV2a9kGbHBL0C3sVzA3K7t/qJ2QFXA0vN9WUYjcG73RcC12e8lGbAIQ/pjVkvJA+YoFfH3ZhVCrAMCbrV5htGY1kGXIk6VrYya4HbgblZLyQPmKBXQRCyEbiM1u6z7JDFMDcILbvdMBpJENKBKkluy3otGeKAZ4BLbc+pDhP06rkDuIXWtdKfwbvbs16IYbQITwNX0LotltcD16GDjVEFJuhVEoSsA36GbrJWix93ITG/IwitmYxhpIH3DN6MPGOt1r+8lNn+K9tzqscEvTYeAP5A681Jnwv8FeujbBhp8zTwFyDKeiEp0w78gtb7vftFkPUC8oaL2Bb4PfDKrNeSEi8A3wN+HIRWe94MOG1xw4CtgbHAcGAkMML/fQnwgPcq9fXz44AD/fM3+Md6YB0qlVoJdNrgnebAf1+fAD4MjMl4OWnggEuB9wWhle7VwsCsF5BDlgGfAfYEJma8lkbTiZrIXIA1kkkVFzEI2BaYDmwPTPP/vY1/jAUG+Ucbupfb/OOvyLLrU9CBScAHgL1Ri9HSYxMKr3QCK13E8+h6fw7lUCz0r/tCEFpr0hRZhYyIXYATKf6+/TTweRPz2in6hZE4QQgu4iHgTODXFDtscT9wPrDIrLXG4K3t4Wiz3hPYAwiRgI8GBiPRHozu19Ij7rrbCgl7OQYCE4DtYp5TEvjSoxOJfQewykUsBB5H4Zi5qFbYrPoGEIQ4F/EUckHPRAexotKJvBFPZr2QPGKCXgdBSLeLuAxtvp/Mej0NYj7wfeBfvtGFkRAuYgJwMDAH2B+YhVzoJbFuQ4KdZUisZO0P6ePftkeHjxPoEfwXgYddxD2oy9k9FqJJjiBks4v4J0rM/QIwNeMlNQIHfAm41hpX1YcJep0EIetcxNdQ7PI9yIoqAg7FYL8VhFyU9WLyiLe6B6D7azByke8PHIFEPPT/P68E9Bw+SoI/Bln8r/L/3e4iHkDifhtKKF1Nj6XvzJqvjSBkk4v4Bcp9+DQKwRQlD6oT5er8xGf3G3Vggt4/VgHnAKOANyArK884FDP9KfDLjNeSK7yIt6ED3khgMnAYcAxKQBuf1doyYihwkH98Bt0rd6O64tuAJS5iHUrG6zZxrw7vfv8hOkB9AF1XeRf1Dah66Afm1ekfJuj9wMfTlwBfRjHH16JkpbyyFPgRcK652avDRQQo1j0exTdfARwF7E7f7upWZSvgOP9Yh/IzbkR11otdxArgRXO1VsZb6t9EXqDTUZJjXlkNXAx8AyVfGv3ABL2f+BPzE8AXUYnXaSjhKG/MB74L/NzEPB5vjY9GVvg05E4/BjgUE/FqGIlCD3OQdfYvJO7/chHPoOE/GzJcX9MThGx0EV9Ge84niE9wbEYcEvALUUns0xmvpxCYoCeAdxcudBHfR7OMT0OJQ3n4fDvRnOEfWMw8HhcxEMUtd0YifjRKbhtN/t2eWTEcfY5HoaE/twM3u4i5wDxgmZXI9Y231H+Awhb/A+xDPvacTagq4jfA74PQGlYlRR6+/NwQhDzt41vzUaLcbLRhNSsrUJ35T1F809gCb42PAHZC5UIHAocDO5LvxLZmI0DJg29E2fPzUELdnS7ifmB+ELZch8aKeA/hr4EnUEz9lSi80aysRx6ZXwNXB2HLT5NLFBP0hAlCVrqIi9D89NNQXH0izVWv3oVqhy9DLq9F5mZ/OV7IRwL7IgE/DFlAEzBrvNEMQTkIu6JGKvcCd7mIO5E3ab0l0fXgS9puAxYBjwEnoc8urhdB2nSj9V0BXATcG4R0Zbuk4mGCXiMuYijQEZe8E4R0+hvsaeAu4PUoGagZsuCXAFcBl6OT8ou2Ob4cFzEGxXdLLvXdUCWDkS4DgCn+cSTwKHLJ3+Iibg1C1ma4tqbC98ZYAPwQHXpeh0oIp2S6MLER5UhcCNwShJUnNvpk0yHmlakNszRqwEVMB96PSiwerUYIfdw1ROLwJuAQ0j9IlcrRbgCuQaNgl1hs8uW4iBEoS/3NqGnQTqj8Km9cAHwhCFnY1z+6iL1Qg5KD0lxUQmxA8df70dCS66xu+eW4iDbUeOZw4DVo78mibLITjZy+HO05j1az53jv2MFo7d+0g1v1mIVeJf4mOQMlnxyMGjvcU+nngpBNwCP+9HwrcAAS9kNRbLaRdKNStL/7x0Mog9jGEfbCRQwHjgXeglzsO9Jc7kqjh+HosDUL5TOc6CL+DNxk1pzwovm0i7gEeQj3QuJ4PMpTaHT4bw09Qv4f4Mkav5sjge8g78KTKHnOqAKz0KvERRwL/ABtJA51vvrfIOTqGl4D5HafAuyAMnuPQy7dJBOsNiAX17Uo2W0JsNwfLgyPD58cDbwDZa1vRzES3YpsoW9JOxoccyfwW+AOu85fjh/0sw2y2g9GrvgjSLbEciPKy7kWGS4LkDHRUW1Iz7vZTwLORntiNzqQvCcImZfgWguLCXoVuIixaEjJG+i5CbrRRftj4PwgpKOG1wNZgKNQx6fpSFAOQhbiNGprJbsWZbnejeLi/0H1qS8CG61Zx8txEQPQhvFBtLlNohhCXqKVBB10wO5AB9dr0e/2iF33L8cL5nC050xAe87BqBpnJrV5DDvQ9L3/ING9DyW9rUGZ7Jtryc1xESOBjwHvRftfSZvWoqE0Z9pBrTIm6FXgIj4AfJ7/TjBxqKXlZcDZ9dRT9ur7XZqqNQhlV09DN9l4emZeD0Q30lrUYWkpiicuQ5ZKp39sss2sb1zEJBQ2eSf6PgdTvPug1QS9hEPX/wLUuvj3QcjybJfUnHhxL03xG4Q8h5PQnjMJ9VYYhQyYLuT1W4P2mqeQV2QjPeN2u6izha+LmAF8BVUEbdnTwQGPAJ8KQq6r/dVbi6JtZInixXYv5Go/Iuap7ShR7v/VYqlXeN/Sdw/wt5QAACAASURBVFPuO3K9/7RM9b7pdWAai6oNPoOS3ZqpjDBpWlXQe9ONEue+jsJPL2IDYcri7xPQfhOnCy/tO0l8li5iCuqDcQLl81Y2o3j8h4OQ5/v/rsXFkuLiGQm8DbmmyuHQafW6JMQcXhLnlwm2UTu9aslnofaYb8Ku+VZhALAf8CfkQfsOELmIDSbq/02vz8SR7p6zFCXQHYi6MPZFG+oD8RYXcb7Vr5enyFZKv/BZ7ceizNC42FIpAe2qNNZlVIcvF5wB/D+U4f8WTMxbkcHAW9H9+T5gO59DYTQBPjR4Icr9iRPqScjDtrcPFxh9YBd2eSaj5gyzYp7TDTwO/CIp69zoPy5iHKon/xVyueZxWI6RLJOBc1HjlTkuYnTG6zE8Qchz6F5dSLx34ADUOdCaPJXBBL0PXMRgVAt5NPH1yC8il94DKSzLqICLGOgiZqHs9V+i79AwSgRIEH4NnO4idjZrvWm4FnlR4poEjUBlvrPte+sb+1D6ZnvUiGFazHM2o9rX31tMLnu8VX4C8DXgTGSRmWvO2JIA9YD4sn8c6yKz+LLGx8V/ATwMsXMl9kSlpuZ16wMT9C3wXcOORNZ5nCCsAM6zsphscRGBi9gBxUe/icIkje7AZ+SfUWiy2zeQtb59r0xvIwOCkMdRv4/1MU8bjIyt2T5PxuiFCXov/A29A+rlXan38cUoO9PICB8aORj1CPgosAvWstWonsFogt5nUCvnfUwkMudylGQcx07o4D6p8cvJFyboL2c0mid8cIXnLQF+ZOUT2eEnop2EXOynUL7kxTDiCJAwvA1dS6/yQ3qMDAhCXgS+DbEDWQYgK/1AFyXavjb32GnU40shtgfeTmWX7c9QtyQjZbwXZSJysZ+GPCqtYpV3A8tR7e4K4Hn/50q0Aa7zjyf9v5VjIfA51ClvJLreRyOvVOmxjf/3rZL/NZqS0ahMdTvgZy7iwiBkVcZralXuRR7Q98Y8ZxJwKhqQ9XQai8oDljTk8WUsn0AbXVwf9bnI3fO0JcOliz90TUfDG15DNiMh02I9MB94DB0eF/rHatT7oGOLxyZUx7sJteCMbQ7iP8s2dKgf5P8c0usxFLUbHo8OujPQFLpZKFm0qJaRA55F3fa+Czxv93m6+EP7HsB1xLvV16Fx1pda2bAwQeelzS1EpRPT456K+oD/wUaQpov/jvZAbXgPQGJTFBzqk30fGrDzALKyVyHxbqdHuOvql13XonqGCJUEvrfIhyj+fCD6Xormpn4RuB4d8heZqKdHr6mUnwG+VOHpNwOnBSFLG7qonGCCDriIYcgy/xzxeQU3Au/GbvDUcRFHoeYT0yiGi700dKI0bnIucpt30OQDdnwN8ECUVDYEueX3Q/MOjkfWfBHoRGVUbwtCHst6Ma2EP8DvCPwV2DXmqV0o/+Fym8Zmgl46DW6PYjFxLtyNqIXk1ZYMlx4+6/gUNKZ2bMbLqReH+hZsRPHBq/3jKf//u0nR8k6aXgNwSkK/OwqJHI+s95JLP4/7jUNJsKcCdwYhmzNeT8vgIoYisf4Z8Yf4u1APilV5vYeSIo83WKJ4a+M7yLVW9mnAH4GzgpAlqSysxek1WOW9qAFI3lp1dtMz6nY+igdeCjzeKpaEP4ztgHJOXo/c9CORVZ+3vWcZKo28Mghju5kZCeJ7TJyPqo/iOA34U7N6tdIibzdV4riIaShmGZfNuwJ4D3BNq2zGWeLFfFvgYyjpJU+WeReKfS9C8b1LgQeCkPYsF5U1LmIkyn14E3Ao6uQ3lnxV2jyL5nb/KQhZk/ViWgFflnYyEvW4PI3/AEcGIetSWViTkqebKXG8df5B4sW8G/UYnmtinionohLCvIh5BxLxR9D1cl0QsiitN/cxx1LG+iDk/i5lsvemdA1vRoePLmBzoy0bv9H+00XcBMxE7TuPQ82AtkPx+GZnIpreNx8lzBkNJgjpcBF3AzehME459kNu94tTWViT0tKCjtyBp1Z4zjIU7zRXe0oEIbiIW9FN/AaaO4O6VPd9H3AF8I8gZEMj3shbK6PpqR0vPYahDPSR/t9HIYEc4P9/yRPnUNa8oycc8CKw3kW0oxj/ev8o1bSvSfIg6w8OTwI/chG/RS2W3wjsi+7HZq1ecMjzcj3wUMZraTWeRvfWYcQf8D/sIq4LQlans6zmo2Vd7t46/yaKi5WzDrpR7PzLQcj8tNZmCD857Szkph2W8XK2ZB0anXszmrd+R5LJkl68Sw1etvZ/3xZZs9ui4RSlx1gkhPVm/29CIr4ShZeWo8Y0zwGL0aG29G/LgJUN+F2PREl0hwC70XyHuDVoStu3/bhPI0VcxO6o736clb4ReG8QcmE6q2o+WlnQdwT+hhJ1yn0Oi1Ap20Xmbs8GF7ET6tV+KvENf9JiHSoxuxmVMd4FbOxvdq2LGISaaGyPRHsaKv+ajjq2lWLOad+z3cALqDvdYmQtLQSeQffHAmB5f+8PnzcxFNW1vxo4CmXLN8NBbh3KtD7XxDwbfGnx6agufesyT9uM7sk3BWFs69jC0sou95OIH7HZDdwO3GVinh1ByDwXcQ76Pt5JdvMHOpFFfhWqHb8fWNcfIfdlOSHqvjYLDZ2YgQR9As0RVx5AjydgL///2pGl/gwS9Hku4jHgUeDJeqx3/zm2u4hb0Gd7PfAKFGufRXaHuQ6UkPXdIIxtp2s0kCBkow/D/Rsd+PqiDdgbOBx5zVqOlrTQXcQU4E/IvVfOTfkMymj9vdWdN4bSuMpqRNGXr5wFvIt0D6LdKH/iSuTRuRd4oV4h96VcM4HZKNt7Z2SFT6Y5rNF6WEeP9T4fCfKdqESvrrptn+Q3DtgfJTudiA46ae5Z7cBPgO8EIcsqPbmW69moHX8A/iDaB8r1DOlAE9ve04qVJa1qoR+PrKFyYu7Qxn2TiXlj8JvfNsDrXcQdQcgjFX5kAcp52IRq09O4djcgS/H3qPHQ0iCku9YX8eI0DXVSm4M6YE1DAtUMYYT+MhJlq++Cvp/nkLA/7CJuBm4PQp6t5QV98twLLuIGlIT2T9Rk5HjSia+3Az/0j2rEfBf0/f7VRSwzUU+eIKTdV0m8Cg3S6YshKON9NnBbWmtrFlpO0F3EWJRYUS4OA0oIug1Z6UZjGAl8BFnct7iIrwUhj5Z7chDiXMQCNDCjGziDxl2/3cATaDO/AQ3iqflg5y2K3VFjlcORO31bijvYBPSdTEVx/9lo853vIm5HXo5Hahmk4Q9QS13E31Huwk0okXVHGmett6OZAT9Bh7hYvJh/HsX9t0djWFu6HrqBPIq8P7OBMWWeMxl4kzcUaj6A55mWc7m7iDcA30IWejluBv5fEPJwKotqMbzb+RPAmagHwHrUs/mcIOTxCj87AJU3fZLGWOrdwP+hVrMLgpD1tb6AixiFyrFOReVYE1ApWVbx/6zZjErknkdJhH9EbVRrLu/zDWpmIlF/F8nvYe3A94GfAksqCYKLCIEv0FNeuRp1Nvyx5d40BhdxOHAuCsf0+RTkUTsjCHkwtYU1AS1lofvymFchd2c51qLEi1hhMfrFKWgTHOX/ewSqRe52EV8NQuaV+8EgpNtFzEftekvT75K6jpei+NyVqP666mYrPoQwHFnj/4OSc0bSHIltWdOGMvTHonyBE4AHXcQvUX1x1VUCQcg6FzEXHQj/CXwdhS6SoAMd5H6CxLzSCNodURXMSfTkP4xFmdjP0uJNThrI3agz3B707e0qDXZ5LbSWoLeUhe4ndn0XWU3leBD4UBByRzqrah18LPlIlLTSV4OILjSH+hxgftyG2isufSZqy9sf4ewCLkEb8QI06awivYaSDESDez6DrMdSpzajPN3oc5+LXNR/RwNqqnKR+s++lGB4DuoV35+D3QYk5N8DllVx7e0EnA28mb7zIFai0N6/Wr2/eNL47/51wLdRlUifT0PhsvcHIQvSWVn2tIygu4g2tGF/DFlOfdGOBOV9NlUpWfwmuDuyyOLGazp6RH1eFS7PScBnkaiPintuH2xGltS3UDXDi9X+oA8bjEJx08+imF7L3E8J41CJ6Hmojnh9LfefD3G8DR3uJlO7sL8I/AJls8eWpvmQz07Iw3Qa5b9zh6bpnQg8ZqKeLC5iOPA79PmWSyx9Bvgq8KtW+fxbyYrYGcVcyok5qDzpMhPzZPEn6mkoNlnJPRoga/dTwEy/gZZ/srKnv4Nu7loGZqxHiY/vBX5RrZi7iDYXMQ7VSF8EXIiGjpiY10+Asv8vQDPvD3MR4yp99y/9sJqI/Ao1HrkVqo7Nl9q5/go1jakk5m1oHzkL5UfEfecBSpA7D5haKmkzksHnX1wJsd/ZFFSaXC55rnC0hKD7jeFAYNeYp3WhDMpbUllUa7Etck8eRHXWUxvwbpT4tkMVor4Eud8uQBt03GncoRamFwIfAq4PQjorLchFBC5iDBLvs4HfopGORc5YT5thqM3vxcgC3tdFjKpGDP13eCNKlrsQta+tdB2sRN9jxXauXsxD5I15O9XtnQNRr4EvUL5u2qifa4B5UNYAa0Nx9v1SW1HGtISgowYVB6ATWznWAJc3arBGq+IiRgPvQwkqtQzeaEMWV0nUYy1gP9ns60jUV9P3Zr4Zxch/jPrzP1qNK85FDEaW2RnAL4EPoxp6ozFsi6aanY/Ec4ZvjRtLEOJ8ZcrZqOzsKegz07xkmf8RudkriXkpZn4WtXcrHIHcwu/2oQEjIYKQFahrY1yJ4M7AAT4huvC0Spb77sjdHtdIZgk2EjFRvBC+GsUa67FQBqKM8TY0mCE2uSUIWeIivom+z3fwcldbJ0rA+jlwSTXzrHt1Kzvc/w6vQNPMjMYzEN2zOyDv2kUu4k5UfRBLELLURfwI5Ud8EFlpvZMmV6MQzXeqbHizE8pmr+RmL8e2KMdjvou40ppVJcrf0Gc7mr6/m9Eov2V7oPCBj8Jb6L6p/76oi1U5OoEbg5Cl6ayq+Hgx3B9Z5zP78VJt6IY9y0Wx5YbAS+73byJLujSgoRMlXX0Z+F2VYt6GrpmPosPEGzExz4JxKOHt60icd/TfTSw+J+KPqH3zrfBSM5t1aGrat6oRc1+a9r9+Df3ZL3cE3g/sY/H0RHkclRnH1fzvA+xdbU5Gnin8L4iSsQ4mPgN6HUpwMpJjJrKuZ1P/WM8SbaiJyFkuqlxz7A9m30JlSGtRrO1LwNXVWEfes3ACyrT/GPET+fLAQqg+g78JGYDq+j+LBPqIKkW9E1lwZ6PGRWuRG7/a3uw7IzF/K/3//geiHJJ3Ed8Hw6gBXwVzERqdWo6paB8al8qiMqTQLnd/ItsFueziuIcWa0DQSHwW+ClIFJPquz0IxVO7XcQ3fcy8LEHIchdxLhrxeSfwQJW15VshS/AUFKrJs5CDLJfvo/vg/Rmvpb+MAU5GbvgLXMSvKuW8+ByJO13EamSpX1rN1DQXsSuKmb+J/h9IS4xE8fTIRfymljJJI5bbUXJcueS3gcio2wklxBaWolvoW6GT2eSY5zjgj9VkOhuV8fXZhyMX5YSEX34EimVX5X5HN+8vg7BqMd8RWfYfR3HXvIs5KPP7YtSX/rGM15IEbeiAfibwjSqvA/ycgF8SX+YEvKw3+xvRjPYkmYSs9EOq8TIYlfEHo0uJr2rYE9jNe98KS9EFfSoqG4m7cZ4Drk5nOS1BiErO4nrl94cxyAV6ZiX3exC+5HaNxZekHYuy308jfnBPnliF6qCXA0+iLmhFSciajHIrfugiDqrmB4KQzioHrXwBdSKrpSqjWgJgN3TgjWuwZNTGhcRnu49EB8Ft01lONhRW0P3pd3vi27yC2pCuaviCWgAXsTVyUR5Lcm7KvhiLRP2zLmJqf17Il0OdjloCH01jNvGs+A3qe70Zud6vpViH15FoNsP3XcRJ/U168oNWPo/ayMY1oOovg1AZ54m+t4HRfxYD/6jwnEOgf/tFs1NYQUfu9krJcA64wGYX9x/vaj8QZbWnIYpjUUz9My6KDamUxU/u+hRKfNqDYswmL/EwyvJe4z0VDnmjfows9qIwGFVTfB34QL31xi5iJ3rc7GnMWx+NcjVaIvu60fjkuAsrPG1nYJYfa1xICnkh+bKQbVCf7bg46FzgkRSWVGj8570dEseJKb71aOTe/7iL2KbaciAXgYuYAHwRrXk7inUvdCHhjrbohb8JuB/FkotEGz391T/tIkbXeC2UBq2cQroemhmogc5kK2VLhJsgthRxIHAEBe7aV6RNrDelKUyV3O2X0lOfatSB34hGIhd4pQNUIxiJvAJvpoo2rN4amomS3z6KSlmKkPxWwgGXATdsmQHuLfUXUJLcXVksroEE6DD5WXRQm1Spu6BnaxSLP4X0R90GyCNwAjDMRL3frEfliXEcTfXXRu4oqqCPQX2248ryNqKYomW3948BqEf+RzN6/040JvHWIIw/nPUarvE5lJRUxIzXRcCfgKdjnvM48H+oY1rRGIlc2WcC06twZ68ErkOlq3HNSRpFgMrjdqRYB8ss6EJ9B+K+x6mo0Uwh3e6FE3R/yh0HHFPhqf8CFrXKWL0GMhYJZBa9zbtQjfkPgYfinuhj/Luhtb6DYsXLS7QjMb8rbmKgP/jcClxFNiLWaIYhr82n0cS+sgma/v6/DSVFPkL5QR+NZDo6EFuv937gr/m56MAax3EUdAJb4QQdWeWzKD/4HuSWvIb4MgejAv7w9DrgNRm8/SZ0834fuC0usdFv6LshS+g0itlQyQH3An8LwqqS3hYAl6BytiIyBI3G/QQVJvZ5Ifg7yjtYSHw9c6N4G3IHG/1jLfK8xjEHmFhEt3sRBX0oOoHF/W4rgTuIbxdoVGYqcm2m3SDDAc+gNp5Xb5H49fInaiPfGSW/nUwxr3lQ5vrlKOmtIv4zuwP4Cz0974vGYBQf/whyv5fdwL3X4hI0tCWLKoAhqLdCYRO2UmID8E8UTy/HBDR9s3Aht0Jtbt5iHI6Ss+L4F7AkTgiMeLxQnkHjGsjE8QLaeC+N683ur4cZKFHqLRTseu9FF3Az8Pdaxv/6BLkrkGVf1HthMJop8DFklZXFD+35DT1939NmNnCqJcfVTxCyCbWBjQ3BIW9I4UaqFm2DK80t3rHC827Fmsn0l72R+zrta2g9sip/WcXUtPEoZl5UN3uJ+SizvR73+QPo86xmjGheKbnfP06FhjFByGI01Od20k+YzfKQXCRWAbdUeM5hwJiiHZ6KJugDUJeyuISnlSj2GueSMWLwzTs+SPpdlzajbOTvVxp16yKGA5+k+GK+FmVp/6Mej5N3NV+JEsOKXMI5HA2n+ZDvDhjHQ8C56ICUtudiJvA+n8Rp1MeLaJ+I81ZNBvaiYJUFRRT04ys852FgcVwWsFGRY6h8cGoES9Fs8tghI37D/jCyygrnVuuFQ5/FBUHIyn68zjOoy9aCRFbVvIxCjVzeXiGe7pAX7/uk73ofgtrCHpDy+xaJLnQtz4t5ToBKmwulgYX6ZYAp6NQVxz1UMXHJ6Btv+b4DNfFI83TbBXwTuDmu1NBv1O9EHoSiDFkpxwqUyPVAf17Ef543ocqPoo/0nIQ8NyfEPcnnZvwZtc9N00oPUOfCd1XhSTD6wFe8PI9yQ+I4noJ574om6EehGtRytKO55/2xZlqdV6LknbQt30uobsztscg6346CudO2YBNwHwmN/g1C1gE/RzW8RU2QA16qevisi9g77ok+R+PrKESXJkNRjPfQlN+3SCxHgh7niZ0B7JLOctKhaIL+6gr/HiFXTBGbaTQcP8zkFNKPnT8DfMnPPS6L78n9KdS5rmjX9pYsB34ELEvwNZ8EfkvxE0YHokPpWS6qOE5zKaplT7PENUCTIt9W9PndDaQDXc8LY54zEBkohaEwm56LGIEa78cxF5WrGfVxPLAf6dZvdqNa99j4rovYCpWnzaGYXeB604kaoVyfZKdDn1fyexSWKnqOyRC0mX8sTjT9XnEX8IN0lvUSw1Ac/fCU37cQ+O9tMZW9K5WMwFxRGEEHDiK+deJmFGtcks5yioWLGAu8AdghzbdFPcevIcar4jfkD6A51nEhl6KwGHksytbg94P1qKPeiga8drMxFg0Ventce1gUqvs+KmVLkxB4c5HHfTaYRSgsFXfo3c9Fxcm1KZKgH0p8x7JngKeSiDe2Gr5W80hUe55mV7h5wE/xM737wm/Er0KNYwpzY8bQAXw9CBtzMPUT2R5AI1ZbITQ1HXgXcGC59rD+2nsB+Arp5t8MRh6xQ4pWL50GQch6tIfEJUEPQsZgISiEoPvM5oOJF5v5mHVeL6NQwuHMFN9zHXJzPlXOrey/9xBlte+e4tqy5E7gDym8z7ko56QVOBC1iJ1STjh9B7L7UY5BIzwj5dgFJXqalV4fi4hvuNRGgZIPCyHoyDKbRfzv8xRyVRo14De4/dEpNq3M9m7kZr/Wn7LLMQ65TF9BsTPaS6wAzk7DyxSErALOoTUaMA1Ctd9vAEbEPO8FVMbWrzLBGhmB7r09UnzPIrEY7f3laAMOrhByyQ1FEfT9iL8RN6KkqlaICybNCHSC3TXF93wGbZyLyj3Bx80PB95MhXaeBaEb9a+/O8X3vBLNl26FEcPboLDN/uU2d+8pmoe+h0pth5NkL2CO79Bo1MYyZKGXOwQPQK3CJ6W2ogZSFEE/gHiX1LPAAu82M2pjJ1QTm5ZoduIHhpRL+vKu9hnAqaimuBV4EPgV6fYXbwfOI770p0jsj8oyy27uvl7/n2gYTloHnXHoUL19Su9XGHxr4wXEl3cOR0Zh7sm9oPtElv2JF/RFtM6mlBi+n/TewD4pvu2jqCTruZjnjEZz2F9Ja7jaX0TJgQuSLFOrhO8N/whKkGuFZNJByO1+tO+IWI75aFRt7DyBhJkN7B03190oy3zg6Zh/H4LyKHJPES6OSchai4uBmKDXx0QUv5uQ0vutA65C1nmf3cq8O3Q3lAg3OqV1Zc01aABLewbvvQGJ120ZvHcWTATeDcwo1+/dW323Af8gvXr9ycgTafPSa2cB8YI+FJWv5b5/RRH62A5AbUFvRfHeQcAYJPSTkDtlAUpoMarEJ8PthOLUaVnBc4Hrie9UNhZNUCtUy8YYnkLNXp7LoiFSEOJcxEJkpe8OFTurFYGDUZLcM5QfzrIIuBaFo9Ko/mhDTZMuw2ZR1MpyZKWvRgfUZ/1jNapY2IAEfyDpVjAkThEEfRnwMyTkg5DAD0Ux35H+7xY/r53RKJSRVqnaOhSXvD+m5rzUsvNk0q2Hz4pNwMXA3Q1qIlMt7ejAfBlq4FP0MEdpfvo/XMR9fXmLgpBNLuJWZKlvTzrX4+7I7f5AEMaOBjV64b+rP6GOf+1or1nn/74Z3WedFCCslHtB9yU8y8v9u3ebFX0DagSTgaNJr83rw8i1vK6vf/Qeg1HAx2gdt+MdKNM802FCQQguYhlyvR9K5YmGRWAGqk1/nDLXJMrzuAFZ6TumsKZhqL31tcjiNKonAh5PMwclC4oQQ48lCHHl4rFG3/jEm+mk10FpHbIA741xKw8AjkMd61qB1Wh859xmuH59n/e7gYtId1BJVgxAVRSzYmLp3SiOnmbv+znAdnHz3I3/JgjpLrqYQwsIulEXY4BD/J9p8CRwNfFJXwPRJLVWqcUtJcI1k3iuQ9/TP7NeSEqMAT5OvDt9ORL1tLpQTkQlVq3Qe8GoERN042V41/YE0uu+1o7mFt8ZEzsHdYTbN4X1NAOPodj5/GaaDOgtnIfQ2lql6+LJxFx3/jP5OyrvS8MCDFC55njr725siQm6sSVtKMknrUYLzwCXV0j6GgF8htbIhdiA4uY3NqOL0K/pWlRemPskoipoAz7vEzL7JAhZhrwpaWWfHwZsh+3fxhbk+oJwEQNcRJudVBNlJLLO00iG60KNZG6p8Lw3ke5gmKzoBv4NXOY7kjUlQchy4FLU07zpDh0N4FgqH3CvQolqaXweI1ByXFy7a6MGXETgtSTXmtjUWe4+8WM4KqEa4R/DUHlam/97G9DuIrpQ+UEHGiixHsX81mZc8pMbemWSH5XSW64CroorwXERo1ATmdw3faiC55F1fl/WC6mC21Cf95kUf2ztYOAMX8LW514ShDzlIu5CQ1TSiG8fDfzSRaxtprBMM+PnP4xC388IpC1DkYYM8n/f5KKXytk6UQ5LSU/WAO3N6Dkr0XSC7l1b26KmMBNROchOwFT/mIgEviTmJdrRh78CxfcWo+5wT7iIRajE5Fkk8E37hWTMAOTKS2MUqUPf0fUVnncMKpPK9cm5Ckrdxy7xGeVNTRDS6SIuQU1YXkGxD1wDUYXFrqinfjmuQK1j0xD0/dA++Ryt4SWpGW9tj6ZHS6ah2Q/T6dGTrZGW9E623YRCX2uRZpT0JALmu4jnUNvf55uhAqU3TSHo3jLcCp3290AtDvdAI1HHVfkyQ/1jK3QAKNGO4rSPoHnGD7mICHWPa7fT7csYhDrDpZFJ3g7cEoSxE9WGomS4omf0OnT4/EMQppYtnQQR8CfUind6xmtpNFsBp7mIuTEGwT1on9mOxu+to9Bh6lFaI5ehKryWDEbX465oDsW+/u9TqW5vG4gOAqOBKajBVonlKGn1QeBeryVPAi80g5ZkKujepT4RNcY/CHUB2w99kEklQA1Fp7Kd0UCPxcileRdwp4u4J4350jlhELK20mAtqrOOY290PaTV3CYr1qNysBuzXkgt+IYzV6HeAG+F2IEmeWcYcnNPpcxY3yBko4v4GzoUpzFn4FjUFtj2L8D3Yt8L5RccgIR4Osl28ZvgH3PQ0KQHUd7L7S7iHtSiOTOPSSaC3kvIj/KPw4AdaPzG3Ya+4OlIuB5A7R2vAu4zVzzb8PLTaKPoRqfcB8o9wV8jryO9wTBZUfosfpXHdp5ByGoX8X/oUL4bxa1ECJCYvxKNsS3HdcCZpCPoh6LZButTeK+mxQ9s2OY0GAAAIABJREFUOgB4FeqfcQDyYDSSAPUpOBwZo69BIbPrfUvg5VlY7KkLuh9LeAg60R+B4hpZxN9GooPE3n4dV7mIi3Pm8kya2aTTTGYz8LcgjG0kMw1dJ0V3t69HAvFo1gvpB/8B/gj8L8XOvN4KON7vE+WqEBYh7980Gt/ffRtgT9JratN0uIhpSEteg7x5wzJYxmAUHt4BCfwtwJ9cxN1BmG5jqNQE3VtcU4H/QZbXzmTz4W/JSOQy3BU42EX8DriuRTPjD0/pfdpRAlEcR6B+2kVOhusGbkKJcLn1DvnhF78FjkffW1Gt9NLGvS9qVfxfBCHdLuJyVGrZaEEP0D17TYPfp+lwEcOQiJ+GDv7jyf66G4KmQE5DxtGlLuI3wLK07u9UNkufbTgbOB/4EIpzNIOYlwhQxujrgG8An3BRywwA6c2clN7nXpSU2Cc+FnYYskCKzFrg60GY7fCVJPDNVb5Gc7WqbQST0KEljhtJb6BOpbUUDhexLfBJ4CvAq1FYLmsx781wlIz3caR5e6VV356W9fN24A8o/lRt1noWDEaW+qeAb7qIXTNeT2q4iAlAWlGfqyuUZs3yj6L3bf85clcXhVuBC7NeRIMZC+xf4cC/mjIWfAPYx0WpxOszx0XgIvYFvofEcmeat1wyQAeNV6Nw1OvSeNOGCrrvvvMJ4DxUStasH35vBiD3zWnA91zEwS0y2egQ0skmL/W+juMAlLhY5M99PnBeELIp64Ukha8WOQfV7haVAag1clx/d1DVQhoMRd7PQuP34DnAd4CTkGGYh3BcyUj8pYv4aKPfrCEfiD9JDQO+DXwZJZPkbXMeijLhvwcc0QItZg9L6X0eIWaWs689n43msReVzcDnUE1r0ViC7vmmariRMNOBgyoc9K9FzYLSIK3cl9TxWjIQNZg6D+U75c1zF6AGNl9xEV9wEYMapSWJC7pf6BgkhB8k31nKA1BJwg9Red3AIoq6/53SKFcDbXRx7vYQdQdsdEJRVjjUB/26PHSEqxXvcbgElW/lNtGvAmNQiV5cy9tVKNs9DWYXeF8ajJItz0dZ7HmwyssxGg2ZOocG6WIjPpyxwKfR2MGiNJrYAyX8HECTdNdLmOEoZt1oHIotxllvsyh217GlwA9QU4qisga5RldkvZAGMo34e6ab9OLoe1Cw5ktezAehUOBX0SG/CIwC3gN8zM+pSJREBd1FjEFlae+huZPf6uEA4GxgVt4n8vTBLNKpOlgDzKWMoPvs9lkU193eAfwCeLTZekAnifc8PAj8huJ2MZuG9oJybvdu4HbSCT2MojiCV2IA6hHyNf9nkRiPdPJtLkq2b0NiwuQihqC6wPei0o4i8kqUAb9twVxce5KO5+E+iJ0ONQklTzZTSWOS3A1cTrGt8xKrgIuI6QaYc7ZB4aFy12o3ahaURp7EQHQPFwK/t04FPo8s9CIyDXg/cKw3ZBIhEUH3Fuu+yDIv2klxS05Fv2eRXFy7k46g3018otD2qJlMEXke+DXwVJ6byFSL/x3nAb8lvZrsNBmIrtcpff2jP7RuIJ1RuAOR270oDEFi99qsF9JgdgPOAPZIqpIqKQt9GvBuNP2naO7oLRmIaiCPzHgdSRKSThLaA8S7YLfzj6KxGZXq3Zx2K8gs8e1Rb6ByImRemeYf5egkHQ9FG+n1kEiD16CE6qJrSRuqUHgHCYUZ+/2B+d7sx6Evoaiu0i3ZGjjLRfnvZObdPdNo/M2zDo0Z7LPu2odsplPMYSyPApehSX+txtMo631e1gtpANOA7WLCb50oZ6TRtAEz/JCSXOMipgNnkc5MiWZgJHAicLTfA/tFvzZx7ybYFTiF4sbNy3EQcHoBms5sS7LjasuxAFgV424ej1yYRQplgNq7/hW4q0hNZKrFz0S4A7gS8jdNrgLjkKiXM2Q2oYNMo6ehBajXR67bVfsDyQcoVvigGqYjDd2pvy/UX6tsaxTnOLC/C8khQ1BL232yXkg/2Z50RPQx4jf0bShmudq/kZitynohGbIC+AvKoSgSA5Gg91mP7g+vq5CXotGUPFx5Zg4aapOHjqJJUhqyc7yvFKubugXdW6Y7Am+mOPXmtRAgMTw952Vs00nnBnoKYseljqdMglGOWYyE7OFWSIQrh//dH0AT9p7LeDlJM4X4BjPt6NpvNIPJcUKpD/2djrLb8+71rIdRSEt36E8FVX+EaCwq4+q3myDHDEXTjvJspU8jHQt9IfEZ7ltTrPrzTagO+YoKc99bAv8ZXA7cRrES5CYTL+gdxEwWTJBSLkxemYM8vUULudXC3uhzqLuLXF2C7k8QU1AJVxE7p1VLgCzcU7NeSD/YlsZ/hw65HfsUdJ8MMhEdEotCBFxAsQeV1Mpi4GKUHFkUqhH0hSmsYyC6l3OHj52fSuta5yUGo8+hbsOmXgt9GHAorW2dlxgBHOwiZma9kDrZhsYL+vMolliua9ZoinUzr0W9zK8rcke4WvGfxVXAP2h8olhabA1M8ANE+qIdE/RK7I28nK1SJRXHbGBvF9XnqahZ0HsNX3lDPT9fQALk6jomb93jfB5EGhb6UmBDTIe4UeR3M9qSblSq9FOf4W30IgjpQMOOyrYAzhmle6jPFp6+smEZjc/wHwhsk9M96BiK2X+iHgagMrbR9XyX9QhygKypOXX8bFHZFn0eeUsOHIoOZ40+mC0nPn4+guLUny8DfhuEqSRC5ZIg5AkUjijK+NgJlBF0TweN/13bUBld3kaLboVKgOPCFq3G8chzWrPHsp6NfDCaE5438WokA4GZqCY/T4wnnSSUVhH0TuBO1MPciOcPaLxoEbwYE4hPZOognclzg8nfUKx9UHa+eXt7GId62NfsOa3nQxyEWed9MYn8CfoY0klqXEG8oA8n/4LuUNLXD3zLUyOGIORF4EfAEvI/N3088QZOGhY66F7OTWKpdynvihJijZdzOHWUE9cj6KOA/ev4uaIzAdglJjmmGRlBOj3cVxIv6MPI0UZUhi7gT6grmlEdNwN/pkw74ByxFfEJXR2k01hoIP0oecqAocDOmLu9Lw6mjiTBegQ9JP/WVCMYgVxHeXJ5jSAdC/1FyrhWfVLMUPIfwnkQ+JlltVeP/6x+Ajyc9Vr6ySjiY9ebSGdkbhvxsfxmYzJKKG61znDVMAPlqtVEPYJetGHzSTKBfDVHSctCX0d5K2wg2hDzPFiiHfhuELbk8JV+EYQ8A5xLvAen2RlJfC5KF6QShsmjoOe6/3wDaUPjVWuiXgvd6JutyJf3YjjpCOl6ygv6IFSHnmeuAK7OehE55kpUn55XqrHQ16awjrwJ+jbky6OZNjVrbT3uVhP08mwFuRqp+izwN7TuRuFQZ7ByruhB5GsT2pLFwHkUp1FKFqxDVvpB5LOf/1BgiIsIyvTsbwfup/HVD6vIV6/8CTR278k7qQi6NQAoz2jyldx1P+pi1WgrfVnMcJIB5Ld/swN+BjxE/jO1s8ShHISfAueQv46BATqYDqDvPvUdwC3oOmkkm8nXVL+xyLth9E3NWluPoOdJsNJmCDlqXxiErCUdV2DsMshvUsytwCXAxpgueEYFghBcxEbgUuBVwGEZL6keBlHmIOKT/9b4h9HDMPLXCCdNatbaesvWjL4ZhF2gtTKAfAr6emRRLmzl0ahJ4T/DhagtbB7r+EsWulEFfiDLYPKdDNtoatbaei5AE6zyDEaxNKN6BpDPiX2lmvPOrBdSIEqd9i7OeiF1YIJeG4MxLalEKoJu1kh57LOpj7x9bk8BfwSWmqs9OfxnuRT4PfkbsWr9B2rDkb/7Pm1q/nzqEfT2On6mVegCOmyTr4lu8tfPeyWKb41zkVllSeE/y7H+kafkLlBpmol69XRh3q1K1JzfVI+rcx05SvxKmU7y3SAjC7rJX+vP2cBvkWv41y7iUWCdHeTqw4eoRgC7AKcC7yR/7UC7MEGvmiBks4voQPd+HkNuaZCKoK8iX81T0qSDxs89TgwXMQ4NlWlkUppDiWPlMnzzaKGDrMj3AUcA5wPXuoingrDPsiWjDD45akfgWOD9wO7Zrqhuygq69zyMp/FdJLuAZ4OQlQ1+n6TYiPZME/S+WV3rD9TzQT6NGuob/82L5MtVeCDwQRp7QHPA51zEzWWywbvJt1djF9QU5SjgDy7i38ASs9bj8Vb5RDQm8p3ACeQ347l0KC0X8xyGZlx/sMHrWI4qL65p8PskxSpkhea5sVQjWVjrD9Qj6E+geejGf7MSeD7rRdTASGAvGt8saArarPtyrafV57qRDARORJ3OLgX+4iLu8XX+xha4iNEobPEa4GTkJcpbM5nebADaY8oXhwA7oQN0I1lEvoYcLUd7po1P7Zua66XqEfTH6/iZVmEV6cw9TooN9N3ZKmlGomutnKCnMYmq0QRoYzoDjT680kVcDTwYhLkMKSSOixgEzAJeC7wRudfz2iWwN2uJT/BKa6zpZnIU8kPGT548mmnzRK0/UI+gP1DHz7QCDon50qwXUgPrSUfQR6A4fV8VEpvpmcZWhFjaYGA/ZJEdhqz1vwOLWrUBjXevTwJeDbwBudmL1MN7HfFho0GkI+ibyJe3awn58mimSRd1jBWuZwOdh4Z6TKrjZ4vMemA++TpxpiXooymTeBeEOJ/tuh4Yk8Ja0mI0cDSySA8BLnARtwVhaw1xcRGjgCOBNwNzUHgnr7HyclSy0NOaKLiZfA0Jeg7lZHVgTWa25EnqMA7rEfT1wD3A6+r42SKzDHgsZ1nOcXPKk2Rr4l2rG1AsLS+CvgZtQEMrPK8NmAq8CdgXuNpF/AqYl7PrpGZcxEB0mDkdOA6YQfWbdjva5PNyPaxCGdvlGMz/b++8w+Woyj/+mfQGoYeSQALEoSMdKaKCUkRBEBGsKNh/iqIoKjYQBXtDEZGmgIogvXdCDxBaGAIhPSGd9OSW8/vje5bcJHdnd+/OzuzMvp/n2SeQ7N09d3fmvOdt3zedNrxcGfQgZKWLeAWYR+M7APLGI/SgWLgnohir0FAKY01mAS9lvYgaWUg6LWObEr+ZLwPmprCOJLkUuIfqbroBwE7AaUhh7usuYmgRJYJd9FbR22noM/oM6gSoxpiX9pbLyZeK2FziDWl/0mn1XQW5aVkr8SKK+Bpr8iA92Jt7YtDb0EZmFbyrWYUKGPJWMDiPdNSaNiHem11KvooJ10Pe57nA14EpVf7cUOSpfxe4DvWwF43DgBuBc4A9qF6PegbwfeCHqP4gjRB1UswmPnc9AN0DjWYl+Ur5gWqyXiOd1F9emAU8Tg+ipz3Vcp8B3NeDny0qs9CJKm+yuKvQBtDom2kz4j20vBn0Xqjg7VDgv8gw/4nqTtQBKgg7BLjORVzoovy37biI4S7iz8C/0WezMdXtLx3AJcCBwJXA+1CuPU+SunMo46H7KEwaBr0dHdDzprq4GHiU/EXoGsnt6PNovJa7F8xYBFyPSR2CPvQpwD15ExPx632Dxm8CWwGDYkLMi9GhKE/0Ac5ABW/TgdORd/oQOthVuhl7AxshtblHXcTnfBg+FwVjPrTe20Vs5CK+ATyGWvY2pHLRm0Pe5P3AO5FC3HT0WX6dfI3T7UAeerl2sX4oP9zo9rx2YFYO9yCHIr5Ts15Lk9AB/A9Y1JPvsken4CBkBbqBay6rLyCLgAeDMLcXZBoGfUPkoZTb6N9Eh6K8HRAHAhcA2wEdQciDSPHsqyg3uIzKhr0XMBLNAb8WOKLZDbtf24ZI/ey/wM/Qoa3SfuJQ8dh44Czg2CDkEbSJbY8+y0qFhs3GbGBOTJFjf1QQ2GjayW8L2IsoxJybgr4G8jDwQk+1K+oJa80A/kk+dbiTwiF5vqszXkc9zCKdMN1IyoTdg/CtzWheCutImtEo7zsUwKvDXYIq2y9G10c1hXP9kYd/KcrN7+Ui1nNR8yiouYjAF7ztC/wcjTl9F9V5nyuB19FncwLwuy76/kOBn6CDUd6YQfx12x9d+42mnfxFuQAIQjrRHjqVfBVDJs0K9Dn0uEiwHiGPRcC9yEvfo47XyTPLgDvRCTOvTCGdwrhRyPsqF5qch8KueRz8cyLwsIu4KAhp9xtU5CK+C9wFfBqFk4dRORy9KdL8fhfwd+A2F/E6GY7l9amS/sjgHoV+n52oTq61FJJ+BP0+9wfh6mvAt7d9HDg+yTWnSCWDPoB0PPRVqKc7rzyG0lUjyV+UJikeB8Z0vT9qpccGPQjBRbwG/Ad5KWkoITUTDjX/X5ZzBbBJpBNl2Z74G3UuMuhvT2EtSROgyvVxKGSmv9SNeYuLGIukTo8H9kaV33HGsBeSRT0XDX35J/Cgi3jDHxZSw4fXh6NCtY+iQsBqNlyHUilPATcA1wVht0IZBwDfIb9a7mUNuj8IDSSdyEMbPRjm0Sz4cap/RzUVbyO/10NPWYBSbpPqeZF6K0kXALegk1WejVpPWA78PQhz13u+NiWlpkazI/GFcbPJt4exOfA9F7H12v8QhMwCLgLORNOwnqW6NMcgpHv+K3RgOMJF6U2m8ipvR6CUwm9QfUA1xrwdeAb4IyocvLA7Y+4iRgFnk1/VyTYU4SrX+10am9ro4UegcG217ZPNyuPo8Jrn6Ys9oRNFu+8Owvqke+vSzvZe+iuoVWUX0rlwm4UHkEhI3pmHDmYjaeypeGu0uU2k++K3+eh0uoJ8htx6IS/2iy7i3LUlXn3R1FgXMR5dO8chY11Ny9pWwJeRt/4fF3EDGvrSkEO0n9+9O4ooHAvsXMOPzwBuQpW6DwRh9wpqLmII+p0OIF8tal2ZDUwOwrIGqC8S1Wl0hXsninDVPD+7mfAy0Bej1sWDsl5PipQi3RPrfaG6byRf8X43uoHzNBigHqYD5wVh7lSZ1sEbmkk0vhe9PxBS5hDpqzqnoKr7vDIIOAk4tlwxWxCyLAi5HXm93wVuJl429K0fRYb126iq/FQXJe/ZuogRqI3sZ8C3qN6YL0f9s2cBPwxCbo8x5gE60HwEhaTzyhTi2636ArulsI5O4LW00zGNwEezzqN1+tLfRCJT9wdh/bVMSU23mo7kGkejWelN23KTACuA85EYQlEYj8KpjZ52tgdqcyp34U5Fm+Q2DV5HowiQN/05NMv4qbJPDJnpIq4AxqK8+8nArlSOkgxEHswuwIEu4hpiPOFqcRFDkeb6h1BB3rAq1gIyJmOBa1DY8LkqDMv+SBo273PQpxJv0PuRTsFwO7qHi8LdwK+BH5MvTYJaaUMCbf8gIUcmkQ3ch0qeB/6KCmh2SeJ1mxCH2m6uplhShc+jTaHRE4/28+9RLpLzun8c3OB1NJI+aHzq51zE1CAsf6P6QqDnUYTkCWRMT6ByGL4Xus8+igzGHS7iKqozpmvgq8z3AD6FDuOjqH4TnYbSbdejuoAllSrxfVThNCSBm+dxuavQtdpti5GvFVkfpS4aTQe6h4tCG2rf3Al1QBQRBzwH/Bl4OakOlsRuqCBklYu4C526vw3rFgcVgOuAPwDz86bIVIHnSKcXfVdgIxcxr8znNweN510K6RV/NYDBwNHASy7iT3EiET4PvshFPIi8rPuAU9Ho1Uq1BP3RZ7oNkk69xkX8O+4Q0RVvXE9GbXc7+nVX4zEvQ97431Ckal410+NcRD/gY8CRKD2RZ2ah2Q3l5J57oXB7GhPj2lGHRSHwtVmzgV+gSNF7M15SI3gN+B3wkNfhSIREi1F8hd6V6NSRJ23uargL5XZeLUKuai1eg7dEPhrJYOSZdXvd+Qt7PPL88s4wlE9/VzVP9gZxFuoa+Qpq5Yqo3D0SIKOxH8rLX+Ii3uui8tEWFzHYRRyP7tXvoojCECob8w6kO/FNv8bbgpDZNYyCPQwdIDar8vnNzBQ0LrkcJb3/NFIKcynGPfMWfo99CV3Tj2S8nKSZCfwWtXLWlSpbm8SrS71S1h+QiERRJrI9ivI54wo6x3oV6YnjHEL8dTeefLevleiFDi+nuKi6PuQgVKQLheAvQoVjF1LdBK3eaCDK4chQX+Aitu5anOciermIHVA72V/Rd7ER1e0D85E87fEoHDqlliIeFxECp6CIQl6r2ks4dI3GTVfsRXrT9MYl6eU1Ee3Ak8APUBSxCCxE99/f1+6ESYJG3VhLUX/pOaTj+TWKDhRa/AYy6kU05qUhLU+m9HZHEJ/qmYBG0RZBUrgP8EHgoy5iSLXzz4MQ57tHxqNhJR9BWg/Lqeyx90HRgS+j4Sef8e+9ERpP+hDwSWTIK6XcHLqXb0Vh8jOBCUHIimpb5vwQl6Eo1H50Fe+ZB+YjAxO3t22JIh9p8ERK75Mqfl9qR2moL6NrN8/R0YXIJp6ftGdeoiE3l/8i2oBfuIjpKLywCfmpaC0NkbgFOCcIC1VwUo6HUnqfUchL6/YAEYS0uYjHUdV9GpKZjWYw8Bnkzd1ADbUK3mi2AXe7iDH+dU5HBXGV8uu90ef3NyTVuilqG6yW5UgJ8WfAf+rwAPuh7/IU8qkv0B2Tgccq1NEcTTrdPg6Nbi4k/jPudBEPA19DIfjDyde11Ik0C/4vCLm2kW/U8NBXEHIVupmfIx/zwjtQjuMi4MwWMeagU35DTo3d8P4K//4ECjsXRX1wW+CzwK5etKVmgpDlQcifkPTqFahdqtqQ90FUb8xXos/+QuA9QcjVPTXm/nd9O6pqH96T12hCOlDNyTPlnuDTHEemtJ7FcWspCj4d9QwquL4cGcg8eOvLUfvqRxttzCG9XNatqJL2OtRv16wb9XJ0c5wH/DgI86uNXCtByCLSq5Q9wlc8l+NVlNNP64CRBu9DBWGbVht6744gZAoKP34WCbnMIpmNrQMdEv6HQvLfCcKei3t4o7Y5CrW/M4H1NQvzgSd8rVA5NkW99mnwuE/PtARBSITEi36OnMRmlYntRKqJ/0L3fSpRlFQMug8dvoLChRegyTqL0njvKulEm9m/kfb0n7uMdmwl0gq774bapLrFV7g+SL5V49amN+r1Ppw61dG8x3w3ErD5OTCG6grnusMh+d97UfHRF0imlWYQqh/4JPkvguvKDCpvzkeS3rCqwobbyxGELECF199BTuIMmstJXITuyXNR/dVraQ3wSq1Axf9Cc1zEH9FF+DHUxlJpClejmYuGAtwI/DcIczmTOykeRC1Jja516ItEVOIiAg+j0ObWFEd5cFPg/4AJLuKJejom/P30hou4EBW/nYhSGSHVCwQtRZGQW5GWdJREF4cXq9kLtbZtUO/rNRErUdte2Ypr/7t/iHT21tLBt+XwB847XMQzwIeBY4B9yfZ6W4oc13uAq4AX4jQoGkFmRWq+6vZAZNTfiYYYpGnYZyNDfi9waxDySorv3ZS4iOFIxrPRfcIO5ckPi5su5CLORifcIhkF0M1+BjArKYEiX0l+EGorey+qsi7nGbejPurb0MjGJ5NqofGh9q1QIWxeZ5yXYyZwRhBydbkn+Pa8u0mnZmAysE8QFk7zoyZ8CmtX4Cik+7Av6uJIi2XoYPwA0it5PKsIb2YtJEHIfBdxExIN2BvlnPYA9kG5t0aE6VYgr+9J1Ib2EPJK8lBckQYL0OdyTIPfJ0AzovdFB6py3IgiOUUz6Mei6MSvSUihLwh500XcijzIh1G4+z1o9npX3kQexLVoIES30qV10AcVwR2d8OtmTScyoPdVeN5RpKMOB/LOE+9lzhv+UPy8i3gJHVIPRBGifagtYlULpcr1p1AK+RHgmSDMduJdpj2h/ouYh0InY5CE5Y7IwO+KJj2NoOfG3aF8RoROUONQb+/LwIyCijHUQxvyLhpt0EE5xg+7iPti8kvj0c0yksbrzKfJIBR6fwKFyxPBf46TXcSV/rWPAD6BZis4FJG6yr/nyw0SSToS+DzF+r5AXtjtxNR1+PnxR5GerO1dFEOvIRH89fyci3gROYU7Ii39tyNd+NFUp4hYjtJkypeQLRmHbMtrQciyuhafEE3XF+5DdhuhL2RzlEPdHoWwhvu/Wx/dNAORsV+FKqKXoAPCNP+YhGbMzkA34mxgecF02BPDf/Z7oNBRo4t6HBoocXwQ8mrMmg5DRmjTBq8nCx4ETghCZjfixb2B2R3lGOch7+XFRolauIht0DS9tARV0sKhQSxHBCETyj4p4nCkwJfGHIs5KLw8Pq2Cq7zhQ/GDkNDSMJQK2hY5jsORs7gh0ooYhDQT2pEtWYaiWbOQLZmKum+m+r+bBSxoNlvSdKpN/uKcB8zzJ61+KGxY+tAHoaKqPqhYKkDhj3b/WIHCUMuQgV9mIfWqcehCfRblYxtJgPK8R6KK1XI8grzNIylWtTQozfQ9F/GNRnjLQchiL8jxKrDSVwc3BK8d/wPSmS6WNh3ATcg56BZ/GD4GCWilwRNoKI4Z8zJ4Y7sMP8XR6yIMRs7KIP/f/ZEt6YP2F4e+73ZWO4pL/WMx0NZsRrwrTWfQu+I/uFV4A5/pYloAP+VoMcqxNtqgg3LjR7iIy30ffHdrWuYiLkGCKnlSh6qGfkjW9VE0Tzxx/D00qxGvvRafRQatqfeUHrIcuLjCoauUKqyrJbEG7qH8GGKjG7xjt5jizBhZh6J5PEb9LEWFamkU2/RB3Q2HVXjebRRr3nNXNgPO9NXRucRF7Ita1NKsLE6T/xE/iAVUhDiKdNKY81HkqinytkbzYAbdWJtOlDN6NKX3GwF8yEWx3vcK4Kc0l3hEUvRCBTs/clFqYiSJ4AevbIL0tUfThDU5CbAK+Hmcd+7bPd+Dpt2lwX2oha6I94NRB2bQjTXwIdq5qII2jQ2jL6pCPaScJKpf0y1UbhnKK/1RlOIrLqJv1oupgf5IJ+AAihlqd8AlqJK5+ycod/4BdChL40DTiTpR5jZzLtfIBjPoRncsRr36aQlWbIuK3uLafTqAX1EsffeubIJ67g91UfMr43VRRPswxdMJKDEPDamJK6rdAnnnW6SyIvXCj2uWNimjuSisQffhwN4xh1wVAAAgAElEQVQuYqCvwDWqxFfOTkUCJWkwCIlB7B/jpTu/npspbqhxB6Slvm09A1wajfdKd0GFcNtlvJxG0YG889fLVZL7g9f7UDFcWnvpA8D0lN6rMLiI/t4W9G7me6tech8m81O7hqLQbV9UZToI9apv7B/Pk15OuCjMQCHuo0inunwnJIQyFsrKJi5FLW4HoJ7SotEHOATNL/8VKn5qRoahkcj7U1yn4CXgSuILz4Yjmd00+s5BkbOHKNbQorTYE4mVzQXmu4g3UW3OKv9YAcxvkNhSauTeoKPN5VNIcGYIEgrYFBVbDUPhst+6iLFBWPX86JbHt4s9i9Ta9kjhLQchoYw7XMS93XlFQUiHi3gebbRnQK7yzdWyAXAc8KKLuK7ZRmO6iMFIuvZY0psoljZLgYuASTHeeV90+DqQ9A41zwLPBWHTjgxtSnyE9ljga6jOYTaaZTAftf4tQVoNvyfnKb0iGPRO1Mu7C+WLUkai9qBpKa2pKExAama7k86mtQsKYY6DsrO4F6HJYIcireYiEiIvfYKLeKpZxEN8iHkf4OOk55Vmwf3AHcS3bm6DIkoj0lgQEjp5mBhxG6Msm6OWwlLqtaQ6WqID9fX/OuV1JU4RwmUzkRJQXKhkBDLqRm3MRYpUSQ/wKMdANAJ033KFYV4cYgJwGcUVGwqQ5/dxmiS14POOI1GovagHKdBecikwtVwVuYsYCLwbFcOltYdORoWqDVP7KzCj0AGsHCuAsWmPOm0EuTfofoN/CmJDk2bQe4DPJz2LPt+0CNGkrriq4cVohvdNxB/k8swgVEF+ZJP0p2+IxqG+HyncFZEVKPrzcIWw9nYoLTIslVWtHqwzrlmiNTljW+IjSivQ55t7cm/QPU8Qb9CHocphq3avnYnAGNLzDPqgvt79fMHjOnjPaRrwL4qrIAfSuv8CsHuWrWw+X7w/cCrpiadkwRg0XKZsu6aLWB8Vwh2Y1qJQzncM6jwxasBFDEIGPU5jfznpOi0NoygGfSzx+a5+KOyyWTrLKQ6+KOthNGc7LbZChY5lw2R+9O2jyKgXOQy5Gxq1ukUW7Ta+RW0bJCBT1BY1UJHU1cDz5YY5+c8iRNfm2nPmG8kzwENFCAlnwBboui1XL1ZK4aUx76DhFMWgz0PV2HECENvSJPnIHDKOdLWjA1T0Vinc/Cbwb6QiV9TQex+UgjgRTYdKm/VQlOBgirNfrM1y4HrgpgqjZTcBPgnsnMqqxEJ07xW4e7qhDCf+INoBPJb3drUShbhBfV7pUeI39e1Ys7LRqJ5lqCe97CzoBjAIeabbec9oHXzofRIqYhqb1sIyYDBwJrC3HwGZCj7MfxjwOShsusqh3u6/Ex9q74OKAT9But1B44G7reW2dnxEawSVDfqYNNaTBoUw6J4xxBv0LYHRPqdi1IA3nA8jo5lm2G871Ds6NEZBrhO11v0DieEUlc2Q2MzQFN9zOGrlSTO8nDavAH8DXojpOQdpW/yAdD//Zag+qBD53QzYAKkvbhjznDYUASkERTLojxI/5zZAQ0As7N4DgpClwLVoA0ztbVE/9rHEeEU+n/43NFO827nqBWEv4Lw0Brj4AtI/EN/uk3fmAFcA15XLm3sGAt8C9ktlVcIh7/xfljvvMcORKFbc0JyngrA4NTiFMeh+WMH9FZ62K7BVkbV8G8w9qL0jTfWyADgP2D72Scp9/gpNiSuyktapwAcbGXr3B4Yvoxa1orIUuBH4U4XRqAHwTuBLaS3MsxSlAgrRTpU2/nsbgfb8OG5NYTmpURiD7qn05WyPiuOK2kfbUHwe7xokcpFmP+wWwDkuig93BiEzgJ8DT1PsIrmfATs24sX9RvgO5JEWbX8o0YZSSD8LwrJzA0oMB35JujUEDrWLXl0hcmCUZyAwmvi6qXbgznSWkw5Fu2HvJ16Lty8KwRS5l7bRPIByTml7wccCp1TSEghCnkKe+gSKO5VtJHC2i9i0Aa89CvgxNOS1m4FO1LVxbhDyWtwTXcQGwPfQ4KA0WQbci+XO62FTVMQYF26fCLycznLSoWgGfTpSNotjH6wfvcd4L/0yJOySpsHsgwayvKdc1XsXrkfFXEUtkuuLNO8/7WVIE8FHQL6CxoE2/Uz2HjIR+GkQxo8G9qJGJwEnk+4+6ZD87OXmnfcMn1Idhq7jOG6nYJG8ohn0TvQlxbETMCJL5a0C8AiaS552K80WwHeo0AfsN8LL0PSkJY1fViZsgOaRV3PAqYjPmx+L5GabQWq2EcwBLgBuiHuS/zzfhTos0v4sViBthXEpv2+R6Ic6ZLaNeY5D4fZCHZqKaNDvJr61aj0Udi/qptVwfFX5XyE+ZNkAeqNT9+kuip9y5SuD/wz8hfQEcdIkQKH3z6PWnHrZBzgNtXcWkYXAb5HnWymytBtSxhtFfMg2aRySMr7UNNvrYijqSIirlZoBPEfB0nJFM+gOzbWtJIByCLBR45dTaF5GrWJpn3AHIU/y1EpFcqiN8Vfo8NFUc8UToj9wEAq99/h6dhHboOr5t1PMUHvJmP+FClElf1D8CtJqT7t4th34YxDamOee4sPtG6HOhDgeAt4sN1EvrxTKoPsvp6RqFsfewDYWdu853oP4B9KZTpuN0GjRE8oNcIG3roc30GZ+EcVsZytNQfuAVzOrCRcxGDgBOJJspGUbzRLUT/8XYEHcBu6L4D4DHEM2Ebz7qZAOMCrSF0WsKnWB3EsB94NCGXTPCuAO4j3HoegEl1hBUSsShMwBfkr6N0ZpYMgXgaPierL9wWMq2tT/TgFvYvRZfIIa55T7XPG7gY+R3ijQNFmMvve/ArPjwtguYgDSy/8U8ZO5GsUi4LwgLLQwUhoMRtPwBsQ8ZzaaLV84Od0iGvR2pLA0vsLzjqLYkpZpcQ+aeJY2vZFoxOnAwXFiQb5IbhKqfL+I+NbGPNIHOAD4uItqmlewEzJgO5NurjgNFqGiyAuBGRWMeW+0H3wZzc3O4rP4K5J5NXqI3wPWA46o8NSHgFlFrFMonEH3IbX5yNDEsQca/FG4zyBlFiPhjUkZvHdfJILyVSooQnk1sIkop34h8eN288hA4CMo9F4x8uRz7qVQe8OlZFNmATq8/QEZ87LROh+lOBj4JgrTZpGGexG4mOIdNNOmNEBnZIXn3QkVBYVySVGN2SIkAdoe85x+SNqyaJtZ2pQKEX9JNhWj/VCI7eC4fDq85alPRWu9kHjt/zyyMap63zeulc3n2t+FCuGKljefA/wCeeezq+jl3gj19O9NulPUSrQhaeNJFKziOgP6ovqHuEPZFKQkWcQi2cIa9HbUUlVJael4LI9eFz4ishzpYv+P9Delxag97T9UkRPzYbZZwI+AH6IbvCi9qAGwO6ot6HbsrP+73ZFHWqRBRZ2ou+UsFIVZUGVIdR4av3sN6edUO4ErUYHWqqJVXGfAesDRFZ5zLzCziOF2KKhB9zfGbFTtHvfFjQb2TGFJhcZ/3tOB36Gwdho41I50MfDrIGROtRtiEL41zOf3aCTmeOKjOXnjeCQQs37X2gJvzDdHE+zekcXCGkQb8rq+Dfw9CKs3jv5amAD8BLiadDULXkDV92+YMU+EI4lvR25Ho5bnprOc9CmkQfcsBB6jclj140kobbU6PrT5DPAnGj/C1KE86WXAL4KQN3ryIj6vfgVSn3uU4oTh+qC6goPwKSVv2AcgD+azWS2sASxF9TKnByHX99TzCkJeRaHva0knFTMPHShfLKq3mCa+sPGkCk97GRgfhIXsdAEKbND9Zv06lcPux1DcQRSp4ltubkLh90aFLx0qerwSuCAImVXPiwUhLgi5GY3HvA4KMxt5CzQxbbQ/sPZC89S/RXHSTLOBq4AvBSFj6n2xIOQV1Ib5Xxp7KC3Ju97lI0VG/WyLBMPieASKLdpTWIPumY6+xDgB/g2R8piRDBOR5/w8yefTS575lcD5QcjM2CdH4CI2riYCE4S8gFrg/oLGwxaBdwJfQLoLW6FIxOhMV5QMDoiQYNA3g5DXK/5AROCvhVi8UT8XeeqNmAPQiXqg/4kKNI1k+CTxI24Xo899djrLyYaiG/SFyEOfHvOcADg5yalVrYwPvT8BXE78594TFqPDQkVj7tkOFX8dWo2KmhfK+TFwDupVzbvwRACcAhwHfI7K/bl5YDlqOzobRWgqetL+u383uhYqHmj8WNWfoUK5pD3oSegaftpC7cngWzCPIV4/4DngBT8tsrAU2qB74/ISyo/GsTuVR+0ZVRKELEYjTK8juX7P5Uh84xfVhNldxGi06X8T5UaPr+bQ5vNrl6ECq8uhZ/n5JmIIqvz+EvnXaZ+CroEzgf/6tFosXgHuWBRK/ybwAxdRsQTN59R/imoskjIC81Go/ZYgtJ7zBHkPGqRTjnZkAyrN+Mg9hTbonqmoOC7uJD8IOKlSOM6oiWlIajUJT3cl6huv1pjvhKrXT0IFYnv6//9kFQNdSvUXj6PK55+itE3cBL9mZ3vyPYxoJfAAipycBzxfzaxwr83+KdSeuA+6Fj4CfN9FvK3Szwchk/z7XUr9XRArUcvUFT0t4jTWxUdfTiRe6nUqCrcXpT6mLIU36EHIClR9HScF2xflG0emsaZWwLfhvIB6xF+m5/n0FUjx61dBWDn/5SJ2AL6HWrdKQjO9gRB5dl9zEVtXeh1vMEqHkrNQbj3pFIJRmSno+z8LuCoI4zXZS/jv+HQUaemqANcPpSDO9tdKLEHIVBR+v5ieH+o6Wd2iZm5DsuyKDuxxKbVngGerOQTmncIbdM8LKJdeLkQXoKrgI1NbUQvgPd37UZi0mpz32qxAhU+/g6o88x2A76N82trh9d4oLPcVFHZ9e6ViOd+jvBQYA/wcGZX7KE57WzOzBHVMnIGEYh6vpiLcF0LuxOo0w0jWTTUMAj6EPPVqZslPQepzF9Ezoz4dtXOOaQWjkjLHED9M503knRel0DWWVjHoC1ChVlxV6frAMdWEZI3q8ZvwVaiqt5ZWoBXIkP8JmF7JK/Ob+NnoBi8nZxqgFsUTkdd1qIsqS/8GIR1ByAzUzvQVFL6PKI7CXDPRgbTNvwd8A7gpCJlVZYi9H5Jx/SVwMvquyx3aBqNr5TsuYvu41/XX3mRW68PXkkJaCFyCcv52EEwQF7EVcBjxo25fQYfBwvaed6UlDLrfDB5HBXLl6IPm6B6ayqJaiCBkAfJw7qC6zXAFEt34ExUmZQH4fOhZqPipmjnWQ1Ahze+Bz1R7iPOHk/EodHoS8ths3GUyOKTg9UuU5/478Gq1G7HPl38WfaeHogN6JYag1MxZLmLbuCf6PWSyf/0/Ut11vAq4DfiDjUVtCEejTpZydqwDRWefSW1FGdMSBt3zKgq7x6lAbQEcV2nIh9Ej5iCP6zni8+krkSH/PTCtkmfmjfkP0OSwQTWspx86wJ0PnOsitqymKNIL0SwGxqGc/GGoGj7PRXNZswpVkx+GCt/GByFLqpFD9f3lI1BK5HzgbVDT/TsEHc6+4yK2iXuivxanoDTQhcQbdYcMyTdRdbuRIP4Q/n7iRcGmAQ9T0Mlq3dFSkqcu4hCUj9sr5mklgZF7TF85WbzB3BH1EXc3t3sJ2ih/TQV9a5//LrWmnUR9LVmdSAjnTFSVv7za796vozcax/t95B32J5vJXXmiHfV434AqyV8FOqrtze4iZfsuFP3ZifoclDZ0MDsPmFRhfjrAluh6OY3uD5KvoymAr9k+kiz+8/8I+q62K/c0tM98PghbI38OreWhg3oRnyS+qGlb4IPYWNXE8UVm45EB7lok59Ap+iI0aKWSMS9VrX8f+Bj191f3QloEN6Lc+ubVCNHAWx57exDyJArfHgz8DdVrLMPy7F3pRIe2Sahq/CDglCDkZf8ZVmvM+6AhM99Fege7UP9e1heJ8JwFbOui8q/nr+MZKCpwEbp2u659JnByEJoxbxCDUQFzXLfKPOC+VjLm0GIG3asE3YrCZuUYhDz43VNZVGvyCPBltPGV5FwvBX5ZqUe3izH/HvBxko0y9Qe+hkaxHuoiNqtlcI83Ss+gwShHo1zr0+j3bIminDKsRJ/B4yhH/j7g/4KQ56sRhynhw+ubAIejUb1nE99/XCu9kVH/OjAqzqgDeE2EXyAhogXoWp4J/B9yHIzGcCDwdso7XQ5FfG5JbUVNQkuF3AFcxHrIeMR54fPQjfrrILTcaCPwCl6fRAb0TiTjWUmbvRfKe3/L/2wjD6SLUHX+JcDLQVi7rrc/DAxDYfijUc/sFsAGFP8w3YFyxzNQGus2NBVtVk+8VhexPvruTwQ+gz7DRtGOWi1/hcLvleo4hqHw+xHoEHeZKcE1Bq/2eDY6NJUrgF2MIkDfbDV53ZYz6AAu4pMotLplzNNuBr4VhLyczqpaD1/Ysh/wXCUFOG8cS2H2k0nn2m1DRXyXIZWviT1tPXIRg5EAxrtQBGgUsA0Uqk2yNAlvMhrS8zhSeHuup21DfgPfDuWjP41y5WnUJ7QhUaRfA1Oq6LTYAh3YHrOK9sbhIvYDLkBCYN0+BbWqfSYIeSS1hTUJrWrQh6HBCwdTPv86E01d+lvRBf3zgK9mPxsZ87S920XAg6gP/QFgahD2XArURWyMjPp+yOvcBgmgDCN/xXRtSO9+GioEexZJLT9bj2Hz+gDboAPQcSjfvl69i62RNpQj/5nPmRsZ4iIGoXTWtykfoVkJ/As4rRX37ZY06AAu4gxkIMp5SA4V3HzPvPRs8cIfPyI9z7zbZaDw8d0oRfAQ6pGvOge8zguqWncDVPm/MzLu2wIjUMHPRjSfgW9DIyinolqU19HQiwjpPMyvpxDM10hshTywo5BewLC6VlwfJU/9fDPq2eIi9kKFiIfFPG0W8Kkg5M50VtVctLJBH4mkJXem/OcwC4V4r2zF014z4CJ2RJXHH6U5Og86kCF7GLgdGfg59ebqfEphIDJmJYNeemyF0kNbAhuT3n3bgfQDZvjHdPS7T0YGfSqKZK2ot5rb//5boIK5w4ADkIfeDLUGy1FO9udVju01EsanrD6PNCfKOWEdSLzqI16yueVottN/mkxGlbKjUXVzdwxDG8xDKC9jpEgXbfbjaA5jDqs14bcG3oGKK+93ETfW48H5A8Ey5O1OgLfyxxuv9dgUXZebdnlsgMLRQ/yfA6hs9DuRoVqCiogWoUrtuciIz0Gh9DmoSHS+/7f5SctoemGYw9G9tg/6bJvBkJcYiPL3gYu4IAiZlvF6WpG3oVa1uJqTlcClrWrMoYU9dAAXMQpV3sbN0i0pnP3bvPT0cBE7oz7jOG32ZqATeanPI4/95iDktUa9me/BHuwfQ1Cb5UB0KO3n/+zr/65Xl/93SNmsDXkyy/1/r/R/v8I/lnZ91JNSqPB7BCjV8AHUBRAisaFmMuRrsxAp2pmnniLeOz8FCcnE1VHcC3yolYsSW9lDBwlcXIHmJZdjEyQx+Aiq3DUajM8tHwQcQnMbc5ABKoXE9wBOdBGPIgW0J5NuX/LFeG8SI2fpP7/e8JaKXeng3ukfrlGGuhK+bfQAFNnYBx2m00wj1MNQlA64hZ5NDzR6xkh0sK9UFPn7VjbmkI+bqKH4dpNxxGsCLwBORZOfrC+9wXiDtBnqUf8Sje05ThqHvNs5aGrYTSivN7VVR2f6Qrft0MH4KBQ+3QRFEfK0B80Afgxc0+qGIy182uljaLbD2iORuzIGeF81I3aLTJ5upobgxUp+jHK1ZZ8GXAd8IwhjVeaMhPBGfQg6SP2IfPZrl/TK5yHZ4etQimdh0SVBfUh9U5T3PBbYG32Hg6hfqjcLZqDRubfZGNT0cBGj0eS9gyo89Tjgf60mJLM2ZtBlOLZC89LjhGbagE8B17XKbN1mwOeMj0KKbXkJzXZHh38sQIIrtyLt+HkoDN6BQuG5wt8/vbo8NkM58Q+gHvL1UGqvmXPjcThU2X8SmqvdklGWtPHX1WA0/OZXxF8/96I5CoU/KFcir5tjongZ0m+g0Y1xF85j6Mae1OoXTtq4iHcgxbZtKU7txypUm/EAChm+hDz6Vf5R9cCSNOhivPugArx+aO74bqyuediLfHrg3bESafF/opGFjsa6+AjPDihlVW6iGug+OQG4tR6xp6JgBp23Lp7tkNc0usLTvwr81bz0dPHf0dvQLOqDaf5iuVrpRG1hY5Ha2nOofW0Bqj5f6R8r0ti4vPEuVc33R61wA1AYfQckc7oHGmK0AcXbSxYiY3ImPdSfN3pGF+/8h2huQxy3AKdWko5uFYp2E/YYFzEETQD7CdrIyvEKygtOtJs8XbxR3xJNWjuObBXE0mAZ0kuYgDoyJiFlttmsNvClRxvK2bfjDwDlwsO+bqTU6tbHP/qypvHuj1JRI1El+khgeyR6E3d/5J1OJKDzd1SIVZfynVE73qDvhYpJN4556kLgs6hV1FqKKU7oMgmWopzmscD+Mc97G7qIzsZmXadKEOJcxHSkFvU6EvsYTfOIziTNINSrveNaf78cGfW5/jEPicMs8Y+xSHu+XGvbxmgy2GhWC9Ksz2rhmk38o8iGuztWos6EPwHXWiV7ZvRDI2zjjLlDA7SeMGO+GjPoHm8spgCXo4lO68c8/VTgSjCN97Tx3tJcF/Fn5Ll+ASm2xX1fRWMgkkXdpsy//xMJ3ZQz6FuidsC4g2ursQC4H+m2P2SV7JnyDuBDFZ4zFQ3YeqPxy8kPea08bRRLgfv8I47NgNNdVFYy1mgwfj75zSj8fjma9tU0BWRGbnAorfE3FHW7x4x5driIDdE0tUExT2tHg7OeNl2QNTGD3gXv/U0GroWKutzHo/YcIyN8cdhYNB/5AuAZsBvcqJoVqLvgXOA3QciL1paWOSdSftZ5iRfRYX5245eTL8ygr4U/nT+MCjLibu4Nga/52epGRgQh+GEZlwHfAa4iRhbVMDzzkezzWcA/TZs9e/z8htOIV4Rbhmqdns5KvriZMYPePdNQO8SEmOf0BvYDPumrMo0MCUIWIxW2nyDVv1ewELyxLp3AC8iQ/wwYk7TevlE7Pn35BdQSGWeXnkJDkBaksa68YQa9G3wo9yHgLuJDuOuhOd17prEuI54gpDMImYi89VOR1KoZdaNEG7o2Pgv8IwiZ1EzCPS3Okf4R550vQFohz9r31j1m0MszF03MejbmOb3QifLzXm3OaAJ8wdwY4HQUwns12xUZTcBLwGdQEeWTrT7Eo5nwactPA1tTXhvFoXkIN4F9d+Uwg14GXxzzMMrXxIV3BgLvBo5OY11Gdfjvbxpq4foQcDFYaLUFWQr8EQkR/Qepvpl31yR4saiPoRbKOD2JScC/gciEfspjfejxrEBFVgcgIY7uTo8BUs96r4u4qV5J2C75+KDM+63x9K5/2oW+JkEILmIFqoo9A53uv4vmcBdFb9xYF4eG3dwHnAc8iby63A2/SYO19pyuf5b9EZLbc7ZAcwDiRGRWou/yeiuEi8cMegz+Yp3oIi5Hqlrbr/WUTtQ6cQVwfk+MuT+h9kbqSH2R7ObmSFt+O6TcNRgJp/RCh4wlwCIkUfkaUk1b6KK3JEBXWfuN8N+hQ0pqN7mIh1FrzBeR6l9/TAK5KDh0f4xHXvl1QWgdD93h5X9LA3b6o66dbdEetwVSD1zP/1sH2m+WoP3uVWAi8IaL3hok1IaGCdVEEDLDRXzJv97HkMZH18ixQ3MN/mrKfZUxg14dN6BRkFuyWvCgHVXL/hz4Ty0G1J+I+6IbZhOUh98fKST1ZNhFJ1JOegrlmR7zqneLgCV2ql1NELIA+IuLuB34PArFjkAHKTPs+cQhD3wSKoS8JAiZnOmKmhBvxAejufTbocjjfmhW/RbUloJ1SHL4aTQO+DFggouYj/adtmqNexAyy0WciSIp3wV2ZnUEbT4SkXmihrW1LLaBVYmL2BO4CFW0tyGt7DOCkOdreA2QER+BPP7DgMPRzZVkPUMnElm5A7gbefFv2IS4NXHRW62Hn0ab2yjiFarywj+B7wchk7r7RxexO/AX8i/9WjLkE1HL4uXAOMuRr4mLGIgGGY1ETsP7/Z9J7jkdaJ+5D+0745GTsbQWr91F7IPmn78Dfb93AZ8JQpN4rQYz6DXgIk5H41OfRMZ8Wg0/uwEQotGfH0bThBodIXGooO8uVNw3Fphifbdr4g37vsAngQPR95TnwSStYNCXIaPxCHA18LilmdbERQxGRnwfNHTqXcg7bzQrkdd+LYoYRl4noipcxGjgd8jR+WYQclNDVllALOReG1cg7/xaqhwK4NvZdgaOQnKxu5HeQSoANkI548NRVOEmF3EfMDmNudp5wKckHnURTwGHoAPXnmjK2ZAs12asw5tAhAzFv9C0LUspdcFF9EWG/DBkyN+BIoNp0R/Jtx6E0oD/dRH3AM9XORltAvAVVIh8e8NWWUDMQ6+RUkVopTCSz1dtj26qD6OLuxnGfM4G7kR5qQfQvGcLUXbBq1btB7zX/7k7KtbJC0Xz0B0wBxiH9AXuBR6zwRxr4gtsN0VttMeivWeTTBcl2pBQ19UoNVJR0KfafdZYE/PQa6SaC8znrN4JfAKdMjeieQ5PmwEno5D/DcAVLuIV83JWE4SsdBEPorDhjui7PASFLrfEWt7Sog2YggqixvjHeKsFWRcX0Qddq58GPojC1c2y5/RFh4ydUbTgny5iTNz3aIa8Z5hBTxivenQcurF2h6YcsdoL3fzD0ez3S1zEbebxrMZvKCuBZ13EeFToszuwB8qz74GF4xvFUqQd8CDKkY8Dptr12T0+xH4k6to4BFWyNxsBKsw7GXX1XOoibghC5mS7rGJhBj0hfIhoNLqpTkDGstmV+NZDCnfbAlu6iIss/L4u3pOIXMQE1DXwX9Tq825U5Lg5zeMN5ZVONLr4ARSeHY/6nedZsVt5vGd+Oiro3Inm33MGoDTWFsA2LuJv1mKYHGbQE8DnrkLgTMabxfwAABsqSURBVJS72jDbFdVEL2AXpHG9vov4bZWFKy2HNyzzgfku4kVUizAceDtwKKoiXj+zBeaT+Uhi+R5UQDUNa7GsCl/rcSYqIMtTjUdv1CL6BWBjF/EbYIKF2evHDHqdeGO+M3AOKkLJaxh2OPANYKiLONda2+Lxn89EFzERiWvcgPQF3g28B1XJm3HvnrkoL343qlaf6f+upp7lVsZFrI9GBX+M5ih86wmboPUPBX7sIiZYhLA+zKDXgQ+zjwTORcVvzZgvr4XNgM8BzkX8yNraKuMN0BIXsQQJaYxDg2A2Q0V0h6IOh+G0bljeAbNQKP0OZMznIClR01ivEd8K+xMUZs9TNLA71kc1R32Ab7qIqXYt9Bwz6D3EG/NNgJ8i5aUifJYBGpJwKrDIRfzS8pfV4TehTqQZv9hFvIHywNcgD2Q3VLB0CArRx819zjsl7fzHUWFbKSe+FOl+t5sn1jN8zvxM5Nnm3ZiXGIAmIs5H0q9x0y2NGIpghLJifeB84KSsF5IwpWrUrwALXMSl5qnXjjdYbf6xFJiBF8nw4dJ9UUHdPqiGYX10P/ZBOcbeNK9H3+kf7Ujysx153M8h7/tB4JkgZEVmKywgvpr9dODL5DfMXo6+KKe+yEX8JAhZmvWC8ogZ9B7gT8mfAE7Jei0NZAS6wV53EfdZn3py+KlRdwN3+0hPPyRCtBuwK2rrGYn0C0oTsfqy2uCXjH4jaV/rUZqotQLlu19DXvfzyJBPtYNf4/B7zvuBT5GvArhaOQN43kVcZdHB2jGDXiO+CG5fFGpvVg8qKXZHY0anWMFKY/Ch+lXAS/5xDbylL78JMuwjga1R5GQY2tA3Qka+ZOhLXn0fFLKMO4CVPOqprPawS3+2I6M9HxWrzfF/TkbTzCYDC+1aSA+/5+wInOb/LDK9gV+ig+K4jNeSO4pukBLHRQxHGtIHZL2WlFgI/B74rR89amSM9+r7I6O+AeqsGIIERQah8P6zQciSMj+/EeoFHoSK0pb6x2L0fc+nB7OtjcbgIjYDvoMKVptRNKYR3A58IgiZm/VC8oQZ9BrwOawforDQgIyXkybPA98HbrWwqmGkh4voh6rAz0FpmVZhOXA2ciQs3Vclza4q1GzshyaX5b09rVZ2QoI5w7NeiGG0GKNQBfh2WS8kZQagGqVds15InjCDXiUuYigqEmvFfuLeaPzqwb4H1jCMBuPnmR/qH6225wToMHOaH3ZlVIEZ9Oo5BA3laFWDtiXSfTcv3TDSYSRwDNKGaEUGosPMPlkvJC+YQa8Cf1L+EBrC0cq8B9jD5/UMw2gQ3ivdF40bbVUC5ECcYHtOdZhBr44D0HStVvXOS2yCemE3zXohhlFwhiHvfL2sF5Ixg4D90WwEowJm0CvgInqhoSvbZL2WJuFwYLjvjTUMI2G8BsG2aHpfqxOgz+KwrBeSB8ygV2YUUvDK6xS1pNkMRSwGZb0QwygoQ9DUvqFZL6RJ2ADY00UMy3ohzY4Z9Mrsg/o/zSMVvdBkOdtsDKMxDAWOynoRTUQv1LZnYfcKmEGPwYe+9kKym8ZqDgE2tbC7YSSLT/GNAvbIei1Nxihgb9tz4jGDHs9WqHXEKizXpD8qEuyb9UIMo2D0QyktM1xrsh7y0jfIeiHNjBn0eEahqWPGuuyPHXQMI2n6oXvLWJcRaE82ymAGPZ5tkJdurMs+mIduGInRZejOXtmupGkpRUyNMphBL4PP1WxO66o0VWJ7YKDfhAzDSIaNgC2yXkSTsgkm7hWLGfTyDEDGvNXFZMoxGLu5DCNJSj3Xti93z/rAxr5Y2egGu3DKswE6EVpxSnm2wz4fw0iSVpuqVgt9kZPVKjPha8YMenmGoBOhUZ4tMYNuGEkRYOH2SqyPiXyVxQx6efpj4fZK2IHHMJLF7ql4BqC92egGM+jl6Ye1ZVXCTsqGkSwWTo6nP7Yvl8UMenl6A32yXkSTMzDrBRhGwbB7Kp6+2L5cFjPo5ekEOrJeRJOzKusFGEbBsHsqnnZsXy6LGfTyrMJurkosyXoBhlEw7J6Kx/blGMygl2cVsDLrRTQ5i7NegGEUDDPo8azADHpZzKCXZylmsCrxBuCyXoRhFIhZWS+gyVkCLMt6Ec2KGfTyLATmYQYrjlezXoBhFAgHTMx6EU1MBzAXeDPrhTQrZtDLsxRdPBbe6Z6VwFTswGMYSeGA11BBrrEui4F5QWhFceUwg16GIMQBs4H5Wa+lSZkELA/CrJdhGIXC9pzyzENpPqMMZtDjmQLMyHoRTcpTQFvWizCMouAPxyuBZ7JdSdMyHe3JRhnMoMczEZiW9SKalEexdIRhJM0q4LGsF9GkTANez3oRzYwZ9HhmoNCyGa41WQ48jXnohpE0bcigW554TZYiB2te1gtpZsygxxCELAeex/I2a/McOi1b8Y5hJEs7MAHrIFmb6cBzQUh71gtpZsygV+ZJrJVkbW4H3rSCOMNIFn9PzQPuznYlTcdEtBcbMZhBr0wEvIDCzIZ6QB9EITDDMJJnEXAHplRZYhHwLFbPVBEz6BUIQlYCD2DV7iUeQIUpluMzjMbQDrwCPJ71QpqEacB9Fm6vjBn06rgTeemtfkGtAq4HZli43TAag7+3pgH/wepUViHv/KGsF5IHzKBXx5vA/5DoQytzP8pjWSjQMBrLUlTt/lTWC8mYGcC/sJRnVZhBrwJ/Yr4eeemtGmpeClwHvGbeuWE0Fn+PRcB/ad222TZgLHC77TnVYQa9SoKQN4ELgZlZryUDOlFl+4NByIqsF2MYrUAQshi4C0XGWi307tCsiN8HYcseaGrGDHpt3IKqT1vtApuKPIVXsl6IYbQYL6CQc6ul+1aiiKDlzmvADHoN+CrL36BQWKuwFLgBeMCmHBlGugQhbcB9yJlopTzyOOAPfkiWUSVm0GskCHkROJ/WmIjUhjTbrw5Ca9szjIyYBPwD5ZNb4VD9BnBOENoglloxg94z/gVcRrHb2EqzmS/BKm1zi4vo7SIGuIj+LrL7PY94L/UR4FJgcsbLaTQrgb8At2W9kDwSZL2AvOIiRgC/Bo6nmJ/jLOB3wJ99QaDRhDglfwYCW/rHpsBmwAb+7/sBfdEBbZV/LEMRpjkoNzsdeMOKj5obF7EJ8DXgC8AmGS+nEXQCVwNnBKHNz+gJfbJeQI6ZDvwMGAIckfFakmYBcDlwRSVj7iK2QkIzlutKCRcRABsBewI7Am8DRiBjvqH/tyHAANaNwrUjL+hN9D3PR0Z9souIgBdR/nKJtQqlh/9Ot4hLbQUhc13E39B3/Alg/bTWlwIOaX2cjw6aRg8oomeZGi6iL3AAcC5wUMbLSYplwFXAT4KQqXFPdBGjgV+iStR/BCGzUlhfy+Ii+gB7AIcB+wEjgc2RAe9b58uvAOaitsxXgTFoQMgrdlhrLC5ic2SgDwC+FITxrbEuYjvgh8CHURSmCNwF/AB4yiRee44Z9DpxEf2Bg4HvAu/OeDn1sgq4EvhpEPJ63BNdxBDgYuAENB3qUZRvv8NCt8niIvqhA+PHkEEfAWxM4+7fDuS1T0Hf67+AJ4Kw5XqhG4rfO44ETgH2Rwez3wPfivusfZple2QAP0r9h7msuQc5RY/Y3lEfZtATwN+Y+wDfQTdoHouPHPK2fwPMjAu3+vDgWcCZwFD/122oYOcO4C9ByAuNXGwr4D3ydwGfQdfXcBRGT5MlyLDfC/wdeMZC8fXjIrYHvgR8ANiG1UZ5FvD1IOSaCj8Puh6+BXy1YQttLB3AjcAvgLFmzOvHDHpC+M13N+Spf5B8nZpXAj+iygI4F/FhdBNuw5rXkEOh2xeBPwPXBiGLEl9tC+AitkYb/glo4+6X5XLQ9zoRdXdcFoTMzXA9ucVFbAicCJwG7IBC5l3voU50/3w2COPnf3ujvgE6XJ8B9E5+xQ1jJYr8XABEFmZPBjPoCeLbgrZAlaifRSG0ZsYh7+t0FCqPFa7wG8ihqPp9J8pfP50oF383umGfQh485t2Vp0vF+geBbwM7o4Nhs9ynJcM+Bvgpqp3osO+0PG61BFV/4B0oqvVO9D2Xi+R1oFTHacDLlT5fFzEYOBr4FbBVnUtOgznARcCfgNmWykmOZtkoCoX31o9DJ+edaK5NGWRwV6CxsGehE3Js4ZMPs++Pcnx7Uf3vsxQNtvk18DKwwoqs1sRv+r1QbvyLyDNfL8MlVcNMdFj7JzDPNuU18d9pgAz3aHRoPpHqi9g6kELcF4FXqzDqvVDHw8+B97Cu5581pbbJ8cB5wHWmPJk8zfSFFw5fBX468H50cs66TdAhz3kCKmi7JgirU7xzEQOA76MCnmHUHt6biU7lVwNTK0UDWgW/8fdFxW5nA0eRnxqMFUjs5PfABNugV+MiBqGU1KdRtG7jGl+iHaU4fgdcWG0UxEVsBHwcOBXYjuYw7G1ovvuNwO8qFdwaPSfrL7rw+JPz+4AvA7si8Y+08+uO1cVNdyBjXtErX+dFVNl+PCrSejvyImu9hiLgtyg6MD0IW3e2ujfm/YEDgXNQ21LeKPUPnwc8C7S3cgjeRQxENQ9HotTbtrW+BOoaGQv8Fbi51mIxF9Eb2AX4HOq8GY50CdLe71ehg/xT6ND3kEXnGosZ9JTwHu6RwEmoeG4rdJM1kk60ObyGpCOvJYFqUh95OA0dVHam9shDB2pVKelTTwpCltWzpjzidQyOQvnonTNeTr3chyIMj7Zi+N0b8m3Q4ezT6HBWa6RlFfA8uk8vrVctze85e6LCyoPQ4WKDHqyrVhYhj/xZ9LvcYhXs6WAGPUW8RzYEnZoPQYZ9W+S1JykQ8SYK170KPImK055PspLUewHvRF7AgSj/WyvLgIdRjv0RlCtsCcPuIzdHAH8ERmW8nKQYA3wtCBmb9ULSwhekbY8K3j6A2gwH9eClpqJD0cXAmCQ9Wa9jUBIk2hOtdxTJ1mksReqZE5HS4L2oaHJ5K0ds0sYMekZ472wk6i/e1f/3CGTcN0aGv5qT9Cp0Ip6DTsVTWW3InwlC5iW89DVwERsjxaoT0e/Sk6jDImTQbwUeQOpkKxJbZJPhD3aHoDDkbpkuJnluQ8IoL2a9kEbiDfmO6FB7OCoY7YkU6wJ07d8I/KvRcxNcxDBk1PdGOfYRKFq4KTLw1aQDO4DFKPo3A+05E4Hn0L4zzdrQssEMehPgq+I3Q6fmrf1/b4wGMAxGYiL9kIFvQ0Z8OTKE81gt2TkZ3ViL08xV+cPJ7qjd6gj/3z3pm54HPI7C8fcBLxUxx+4i9kIiPu8kPwVw1dIB/Ac4s5J0cN7wB7FB6AD+HtTCuTerxZVqYRlKN92CjPkraRYV+q6VDVCEcBskIVzac9ZDe05/ZODb0Z6zEhnyuehenY32nNeBuVYUmT1m0JsUb+SHog2kdGOVDHobq2+upc2Qs/Sb3fpog3sfquzfkZ6JXcxF+bfHUOjuMQoSuvPDbH6J2hqzFItpJEtRKuGcIGRp1ouply6GfH/gvSg/vhsyiLXSjlq3bkDRjGeBZc1wbfs02hDkRPRH12cfdEgrORJLgTfNeDcnZtCNRPEn/42RYT8Gee1b0LNrbTFqsXsaVefflmcD4QunzgK+giZmFRWH0j8/AS7Jc2Wzi1gPhdSPQpGnt9GztJJD4ekb/GMsMD/Pn43RfJhBNxqCjzBsjgz7R9CG2JPQJMgzmAK8gPLsN+ZxXrKL+AhqTxtN8e+9DuAJ4BtByGNZL6ZWXMSWyJB/ELWAddVbr5XFyBv/BzqczjIP12gERd9UjIzxFbaboXzxqah9pqcbY2kK2CvIsN+MpDEzTzlUwkWMQiIhR5Avnf96WIam930rCFmc9WIq4Q+huwDHoorwUeja7akg1Co0FvQyVBsyKwglgWwYjcAMupEKfiLdRij/+GXqGzXbgYRy5gLPANcA9wQhC+tdZyPwuckz0QCNWhXD8s6rwA+DkKuyXkg5XMRQdNA8CeXJN6X6LpNyjEHSuE+g0Lr1YRsNxwy6kSreCxqCCudOR/279dDO6klg/0VhzUnN5LW7iAPQ5n4ArXfPdSIlua8HIVOyXkwJf8gahWbMH+f/ewDyxuv5jsYi1bx7gSXWvmWkSattLkYT0GVwxSCUW/8q6o3tT30jIEta9XcCVwH3I0++LaucpY9MfB9550mKB+WJGahA7uIsDlr+euuNqrbXQ2mPk5EITD/q2wc70IHyCeA3qOVyOeCaoXLdaC3MoBuZ4yI2QLK4n0aVxEORca/3+nwDqdDdiCQ1l6A2v1TymN6QHIgmYB2Uxns2Mf8Gvh2ETErrDX00aBC6nvZBBW4fpP4Og9LksIXII78EuCsPdQJGsTGDbjQNfvjLAch72h8pWA2m/uu0NLnqLiSD+wJS6FqEvPeG4L3zrwE/QL9HKzMF+C5wdaO8dH+A6ocM+IZINOVQ1D65LfVFf2D1kKMZaODIP4EH89xKaRQLM+hG0+EN4b5ostu+qM1rY5K5XpchicoH0KY8GcnmvkHCs9pdxA5o8MpxSb1mjnFI6vacJOWIve7BAKRwtjmSM90PhdN38P9W99sgb/xVpE+eyJAjw0gaM+hG0+I36x1QmPQ9SHluS+r3tEqsRLKVY4FHUTvcVDSvvS6vyw9fOQb4NdLpN6RZ/q0g5JF6X8hXpo9Ao0FHo+EjpcNfUgp8HWjgyHhUtX4rmo/QNAWXhtEVM+hGLvB93IeikPyuSLGrJ8MwytEBTELe+9NIoW4qUjx7o1ZNeV8XcDoqiEvqAJJ33kTFgVfUWsfgIgYhD7xkxHdAhZS7+v9Pci97Ex3unkOHkHuCkMkJvr5hNAQz6EZu8B77UGAvVOS0B9rUR9Jz8Y9u3woJ2LzqHxNRaL40/GZmJYPkInZExXAfTHBdReC3wM8rKf35gT+boHay7bs8tvN/bkiy+1c78safRhXrj/v/XmTyrEZeSHITNIyG4jfWhcA9LuIh5K29HRXQHYi8tZ7obK/zVsAw/zgQDaYojaedBExwEf8Eopjw6zBgpwTWUjR2Rp9Ntwbd10/shQ5CI9D0wZJiWyMU9haz2hMfi4alTCrilD+j+JhBN3KJL0h6zUW8jgrcRiMDujcy8DuTnAHoi3L3W6I87UKUU325uyd7udttkEEy1mRHYJiLoEx3QS8kv3o6al1sBB0o0vII+h6fRykWG5Zi5Boz6Eau8R7yXGCuixgL3I7a3XZA+fZ3o3x7kiwjviJ+CAoLN8og5ZnN0ffTD7qtEl+Fvs9GpAOnA/chwaEI1UjMMm/cKApm0I3C4L326cB0F/Es6jv/K6tntB+MQrf1MgNiRUSGYJXt5eiDIheD6N6gdwDzUQ3D8ATebz7ywm9Guv+zgDlByIoEXtswmgoz6EYh8cZ9pouYhdqObkTe4b6oBe4gFELviSc4EwmMlGMwyRijojIcGfR1hukEIbiIRch77sln6NChbgySYX0KGfGFJKwzYBjNhhl0o9D4DXw5sNxFvIGM+zXIi94Jee5HobB8tTn3RRAbph2MwspG9wwnXjlvOfKsq6UddSDcg3rFn0atZyuBVWbEjVbBDLrRMviNfSWw0nuBM1FO9fuoWKtk3PdCxr23f6w9RnMFxE7RKo2KNbpnQ+LrC1bRfUrDoZB8O+o8eAoZ8DtRgWIHmu5mg1GMlsQMutGS+A2/ZCA6gHH+8QsXsT4KzR+CZERD5FH2R1KiK/zPlKM3rTtZrRoGEb/3rEIpjQ78AQwVIk5BRvwB4P4kJWQNowiYQTeMtQhCFqEhLnd7CddhSMBmbyRoM4nuC7pKA0L6kIyGeFEZSLx63grgNVSNPg4Z8UeBaTZf3DDKYwbdMGLwbXEzgVuAW/xIzj5QVikuQOH6tcP0xmr6EW/Q5yNFuV+aATeM6jGDbhg14A1MJSNTyuWaUe+edig/4CQI30qDGIZRA7bhGEaC+MK7NsqE5A1A+XDzvA0jYcygG0bytCOjZXTPcswDN4zEMYNuGMmzCvVBG92zkPg+fsMweoAZdMNInmWokM7onhnISzcMI0HMoBtG8ixDo1aN7pkGLM16EYZRNMygG0byLEFa5Eb3TMcMumEkjhl0w0ieRUiK1DTE12UO8tCtC8AwEsYMumEkz0okUzo964U0IS+jGeR22DGMhDGDbhgJ43XiZwIvZbuSpuRFNM7UMIyEMYNuGI1hJvAsMYpoLchK4DlgdtYLMYwiYgbdMBrDPDRUZE7WC2kiXgTGB2FZHXzDMOrADLphNACfI46AsVmvpUnoBJ4EXsl6IYZRVMygG0bjmAg8jomogCIVT2L5c8NoGGbQDaNBBCFLgEew4jiHjPnjfhytYRgNwAy6YTSWp4EHaO1hLXOA+7Bwu2E0FDPohtFAgpD5wJ20rjHrRIeaO4PQxGQMo5GYQTeMxvM4cBetOYFtBnAzrXugMYzUMINuGA0mCFkIXAWMo7X60lcCY4DrzTs3jMZjBt0w0uFF4Bpaq8p7EnApNkrWMFLBDLphpIAXU7kGuJXWKJCbD1wGPGC67YaRDmbQDSM9FgA/pfih91WoZuDPQciKrBdjGK2CGXTDSAk/tGUy8C2KG3p3wHj0O7ZiEaBhZEaQ9QIMoxVxEUcAVwKbZL2WhHkNODoIeTnrhRhGq2EeumFkQBByO3A6yjUXAQdMBU4xY24Y2WAG3TCy4xrgJ8C0rBdSJ51oEM2XUJuaYRgZYCF3w8gQFzEAOAk4EwjJ3z3ZhpTgfgTcY6NRDSM78rZ5GEbhcBEDgfejEPxewIBsV1Q1i4AHgQuAx8yYG0a2mEE3jCbARfQH9gE+DxwObJrtiioyFbgeuBh4OQhpz3g9htHymEE3jCbBRfQCtgVO9I8dgL6ZLmpdlgNjUf7/f8B0345nGEbGmEE3jCbDRWwEvAM4DoXih2W7IkCFb9ORV/4f4JkgZGm2SzIMoytm0A2jCXERvYGtgYOBDwGHAutlsRQ0z/wWNDXtCeSVm5yrYTQZZtANo4nxVfAjgD2Bj6D8+uCU3n4uCqtfh4bLzLBcuWE0L2bQDSMHuIh+wObAcOC9wAeAPUheS6Idac3fhAbJTAXmBCEdCb+PYRgJYwbdMHKEiwiAIcCGwNuAg/xjT/93Nb8kGm/6BPAw8Agy4m8CSyy0bhj5wQy6YeQQFwHQG1XB90Fh+BFInCYEtgI2AIb6f+sElgCLgXloVvkr/jEDWIFEYtqBTqtcNwzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAzDMAyjCPw/O3RUGMBJ/dUAAAAASUVORK5CYII=\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEtherium);\nexport default __webpack_public_path__ + \"static/media/etherium.eb1a6eedfbfe4d5095aac15ee0cff05b.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4, _path5, _path6, _path7;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgMintGpo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 82,\n height: 82,\n viewBox: \"0 0 82 82\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 41.1357,\n cy: 40.8407,\n r: 39.0341,\n fill: \"#24262E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.40726 39.169H0C0.93138 17.9573 17.9577 0.93138 39.1694 0V5.40688C20.9433 6.32898 6.32897 20.9433 5.40726 39.169Z\",\n fill: \"#F0CE0E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.0019 39.1688H76.5947C75.6819 21.1183 61.3364 6.6196 43.3555 5.44648V0.0249023C64.3235 1.21079 81.0783 18.1315 82.0019 39.1688Z\",\n fill: \"#F0CE0E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.1712 81.9977C18.134 81.0744 1.21284 64.3196 0.0273438 43.3516H5.44854C6.62166 61.3321 21.1207 75.6776 39.1712 76.5908V81.9977Z\",\n fill: \"#F0CE0E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.3555 81.9725V76.551C61.1615 75.389 75.3933 61.1573 76.5552 43.3516H81.9764C80.8006 64.1456 64.1499 80.7967 43.3555 81.9725Z\",\n fill: \"#F0CE0E\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.1829 40.8527H79.0225C79.0221 51.3137 74.7837 60.7791 67.9287 67.6349C61.0725 74.4903 51.6071 78.7283 41.1461 78.7287C30.6851 78.7283 21.2197 74.4903 14.3635 67.6349C7.50852 60.7791 3.27012 51.3137 3.26973 40.8527C3.27012 30.3913 7.50813 20.9259 14.3635 14.0701C18.2735 10.1604 23.0322 7.10212 28.34 5.19566C32.3394 3.75913 36.6509 2.97628 41.1461 2.97628C51.6071 2.97666 61.0725 7.21468 67.9287 14.0701C74.7837 20.9259 79.0221 30.3913 79.0225 40.8527H80.1829C80.1825 19.2928 62.706 1.8163 41.1461 1.81592C19.5863 1.8163 2.10976 19.2928 2.10938 40.8527C2.10976 62.4121 19.5863 79.8887 41.1461 79.889C62.706 79.8887 80.1825 62.4121 80.1829 40.8527Z\",\n fill: \"#24262E\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.6865 38.9606C23.2478 38.9618 22.8275 39.1365 22.5174 39.4467C22.2072 39.7568 22.0324 40.1772 22.0312 40.6158V45.2716C22.0483 46.3729 22.1474 47.4714 22.3279 48.5579C22.3279 48.5579 22.9283 51.8495 24.7709 53.8889C26.6434 55.8996 30.4723 56.586 30.4723 56.586C31.559 56.7645 32.6574 56.8621 33.7585 56.8781H49.3534C50.4531 56.8588 51.5493 56.749 52.631 56.5499C52.631 56.5499 55.4848 55.9705 57.1496 54.3166C58.8268 52.686 59.3585 49.9573 59.3585 49.9573C59.5508 48.8738 59.6567 47.7766 59.675 46.6763V40.6158C59.6736 40.1772 59.4987 39.757 59.1886 39.4469C58.8785 39.1368 58.4583 38.962 58.0198 38.9606H46.6388C46.1659 38.9814 45.7101 39.1438 45.3305 39.4266C44.9509 39.7094 44.6648 40.0996 44.5095 40.5468L43.9208 42.5186C43.6592 43.3922 44.1906 44.1059 45.1017 44.1059H51.3282C52.2382 44.1059 52.9834 44.7402 52.9834 45.5157C52.9834 46.2912 52.8946 47.6673 52.7871 48.5702C52.6981 49.0784 52.4664 49.5508 52.119 49.9323C51.7653 50.3143 51.2973 50.5713 50.7851 50.6647C49.6925 50.8058 48.5927 50.8834 47.4911 50.8972H35.7642C34.6638 50.8799 33.5662 50.78 32.4808 50.5982C31.6554 50.41 30.8942 50.0073 30.2743 49.4307C29.6563 48.8217 29.2269 48.0476 29.0374 47.201C28.8609 46.1141 28.7641 45.0158 28.7477 43.9148V40.6147C28.7463 40.1763 28.5715 39.7562 28.2616 39.4462C27.9517 39.1361 27.5317 38.9611 27.0933 38.9595H23.6865V38.9606Z\",\n fill: \"#F0CE0E\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.7656 31.0008C23.3287 31.8008 23.7165 32.4539 24.6276 32.4539H54.7602C55.2339 32.4327 55.6906 32.2709 56.0721 31.9893C56.4536 31.7077 56.7426 31.3189 56.9025 30.8724L57.6968 28.2856C57.9642 27.4154 57.4386 26.7041 56.5293 26.7041H33.8413C32.7403 26.7209 31.642 26.8181 30.5551 26.9949C30.5551 26.9949 26.6419 27.6958 24.8222 29.6498C24.4232 30.0615 24.069 30.5144 23.7656 31.0008Z\",\n fill: \"#F0CE0E\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMintGpo);\nexport default __webpack_public_path__ + \"static/media/mint-gpo.90b4c3ae4e2cc9f084835b0358d33ba3.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgMintGpx(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 90,\n viewBox: \"0 0 90 90\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 90,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4588\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4588\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMintGpx);\nexport default __webpack_public_path__ + \"static/media/mint-gpx.ec718c793ba77dd8369e4dd4a25ecc33.svg\";\nexport { ForwardRef as ReactComponent };","var _ellipse, _path, _path2, _path3, _path4, _path5, _path6, _path7;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgListGpx(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 82,\n height: 82,\n viewBox: \"0 0 82 82\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 41.1357,\n cy: 40.8418,\n rx: 39.0342,\n ry: 39.0352,\n fill: \"#F0CE0E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.40728 39.1701H0C0.931382 17.9578 17.9577 0.931407 39.1695 0V5.40703C20.9433 6.32916 6.32899 20.9439 5.40728 39.1701Z\",\n fill: \"#24262E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.9981 39.1699H76.5908C75.678 21.1189 61.3325 6.61979 43.3516 5.44663V0.0249023C64.3197 1.21082 81.0745 18.132 81.9981 39.1699Z\",\n fill: \"#24262E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.1713 82.0002C18.134 81.077 1.21285 64.3217 0.0273438 43.353H5.44855C6.62167 61.3341 21.1208 75.68 39.1713 76.5932V82.0002Z\",\n fill: \"#24262E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.3516 81.9751V76.5534C61.1577 75.3914 75.3895 61.1592 76.5514 43.353H81.9726C80.7968 64.1476 64.146 80.7992 43.3516 81.9751Z\",\n fill: \"#24262E\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.183 40.8538H79.0227C79.0223 51.3151 74.7839 60.7808 67.9289 67.6368C61.0727 74.4924 51.6072 78.7305 41.1462 78.7309C30.6852 78.7305 21.2197 74.4924 14.3635 67.6368C7.50853 60.7808 3.27012 51.3151 3.26974 40.8538C3.27012 30.3921 7.50814 20.9264 14.3635 14.0704C18.2736 10.1607 23.0322 7.10227 28.3401 5.19575C32.3395 3.75919 36.651 2.97631 41.1462 2.97631C51.6072 2.9767 61.0727 7.21483 67.9289 14.0704C74.7839 20.9264 79.0223 30.3921 79.0227 40.8538H80.183C80.1826 19.2933 62.7061 1.8163 41.1462 1.81592C19.5863 1.8163 2.10976 19.2933 2.10938 40.8538C2.10976 62.4139 19.5863 79.8909 41.1462 79.8913C62.7061 79.8909 80.1826 62.4139 80.183 40.8538Z\",\n fill: \"#F0CE0E\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.6904 38.962C23.2518 38.9632 22.8314 39.138 22.5213 39.4482C22.2111 39.7583 22.0364 40.1787 22.0352 40.6173V45.2733C22.0522 46.3746 22.1513 47.4731 22.3318 48.5596C22.3318 48.5596 22.9322 51.8513 24.7748 53.8908C26.6473 55.9015 30.4762 56.588 30.4762 56.588C31.5629 56.7665 32.6614 56.8641 33.7625 56.8801H49.3574C50.4571 56.8608 51.5533 56.751 52.635 56.5519C52.635 56.5519 55.4888 55.9724 57.1536 54.3185C58.8308 52.6878 59.3625 49.9591 59.3625 49.9591C59.5548 48.8755 59.6606 47.7784 59.679 46.678V40.6173C59.6776 40.1787 59.5027 39.7585 59.1926 39.4484C58.8825 39.1383 58.4623 38.9634 58.0238 38.962H46.6428C46.1699 38.9829 45.7141 39.1452 45.3344 39.4281C44.9548 39.7109 44.6688 40.1011 44.5134 40.5483L43.9247 42.5201C43.6631 43.3938 44.1945 44.1075 45.1056 44.1075H51.3322C52.2421 44.1075 52.9874 44.7418 52.9874 45.5174C52.9874 46.2929 52.8985 47.6691 52.7911 48.5719C52.702 49.0801 52.4704 49.5525 52.123 49.934C51.7693 50.3161 51.3012 50.5731 50.7891 50.6665C49.6965 50.8076 48.5966 50.8852 47.4951 50.899H35.7682C34.6677 50.8817 33.5702 50.7818 32.4847 50.5999C31.6593 50.4118 30.8981 50.0091 30.2782 49.4324C29.6602 48.8235 29.2308 48.0494 29.0413 47.2027C28.8649 46.1158 28.768 45.0174 28.7516 43.9164V40.6162C28.7502 40.1778 28.5755 39.7577 28.2655 39.4476C27.9556 39.1375 27.5357 38.9626 27.0973 38.9609H23.6904V38.962Z\",\n fill: \"#24262E\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.7695 31.0019C23.3326 31.8019 23.7204 32.4551 24.6315 32.4551H54.7641C55.2379 32.4338 55.6945 32.2721 56.076 31.9904C56.4576 31.7088 56.7466 31.32 56.9065 30.8735L57.7008 28.2866C57.9682 27.4164 57.4426 26.7051 56.5333 26.7051H33.8453C32.7442 26.7218 31.6459 26.819 30.559 26.9959C30.559 26.9959 26.6458 27.6968 24.8261 29.6509C24.4271 30.0626 24.0729 30.5155 23.7695 31.0019Z\",\n fill: \"#24262E\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgListGpx);\nexport default __webpack_public_path__ + \"static/media/list-gpx.6bb5c332d8184e9a0d12be7b3c151ce1.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgHandshake(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 78,\n height: 78,\n viewBox: \"0 0 78 78\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 78,\n height: 78,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4595\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4595\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHandshake);\nexport default __webpack_public_path__ + \"static/media/handshake.3b0b385dd49f95766aad7d4e5ff9eed0.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgBlockchain(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 78,\n height: 78,\n viewBox: \"0 0 78 78\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 78,\n height: 78,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4596\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4596\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBlockchain);\nexport default __webpack_public_path__ + \"static/media/blockchain.7534c86f3643da7e375216e58ab1d6cc.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgGraph(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 79,\n height: 79,\n viewBox: \"0 0 79 79\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 79,\n height: 79,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_549_4597\",\n transform: \"scale(0.002)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_549_4597\",\n width: 500,\n height: 500,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGraph);\nexport default __webpack_public_path__ + \"static/media/graph.2cb831c77e742b73e42fa8a40689ee5c.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2, _path3, _path4, _path5, _path6, _path7;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgGpoLarge(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 114,\n height: 114,\n viewBox: \"0 0 114 114\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 57.4658,\n cy: 56.3266,\n r: 53.8369,\n fill: \"#24262E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.18831 54.023H0.730469C2.01505 24.7672 25.4982 1.28458 54.754 0V7.45731C29.616 8.7291 9.45956 28.8855 8.18831 54.023Z\",\n fill: \"#F0CE0E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.826 54.023H106.368C105.109 29.1272 85.3232 9.13025 60.5234 7.51225V0.034668C89.4431 1.67027 112.552 25.0078 113.826 54.023Z\",\n fill: \"#F0CE0E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.7539 113.094C25.7388 111.821 2.4007 88.7122 0.765625 59.7925H8.24268C9.86068 84.5917 29.8582 104.377 54.7539 105.637V113.094Z\",\n fill: \"#F0CE0E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.5234 113.06V105.582C85.082 103.979 104.711 84.3506 106.313 59.7925H113.79C112.169 88.4721 89.2036 111.438 60.5234 113.06Z\",\n fill: \"#F0CE0E\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.322 56.3449H109.721C109.721 70.773 103.875 83.828 94.4204 93.2837C84.9642 102.739 71.9092 108.584 57.4811 108.585C43.053 108.584 29.9981 102.739 20.5419 93.2837C11.0873 83.828 5.24155 70.773 5.24102 56.3449C5.24155 41.9163 11.0867 28.8613 20.5419 19.4057C25.9347 14.0134 32.4979 9.79527 39.8186 7.16582C45.3347 5.18453 51.2812 4.10479 57.4811 4.10479C71.9092 4.10532 84.9642 9.95051 94.4204 19.4057C103.875 28.8613 109.721 41.9163 109.721 56.3449H111.322C111.321 26.609 87.217 2.50493 57.4811 2.50439C27.7453 2.50493 3.64116 26.609 3.64062 56.3449C3.64116 86.0803 27.7453 110.184 57.4811 110.185C87.217 110.184 111.321 86.0803 111.322 56.3449Z\",\n fill: \"#24262E\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.4001 53.7344C32.7952 53.7361 32.2154 53.9771 31.7877 54.4049C31.3599 54.8327 31.1188 55.4124 31.1172 56.0173V62.4388C31.1407 63.9577 31.2774 65.4727 31.5263 66.9713C31.5263 66.9713 32.3544 71.5112 34.8958 74.324C37.4784 77.0972 42.7593 78.0439 42.7593 78.0439C44.2581 78.2901 45.7731 78.4247 47.2918 78.4468H68.8007C70.3174 78.4202 71.8293 78.2688 73.3212 77.9941C73.3212 77.9941 77.2573 77.195 79.5533 74.9138C81.8667 72.6649 82.5999 68.9015 82.5999 68.9015C82.8652 67.407 83.0112 65.8938 83.0364 64.3761V56.0173C83.0345 55.4125 82.7933 54.8329 82.3656 54.4052C81.9379 53.9775 81.3584 53.7364 80.7535 53.7344H65.0566C64.4043 53.7632 63.7757 53.9871 63.2521 54.3772C62.7285 54.7672 62.334 55.3055 62.1198 55.9222L61.3078 58.6417C60.947 59.8467 61.6799 60.831 62.9365 60.831H71.5243C72.7794 60.831 73.8072 61.7059 73.8072 62.7755C73.8072 63.8451 73.6847 65.743 73.5365 66.9883C73.4137 67.6892 73.0941 68.3407 72.6151 68.8669C72.1272 69.3938 71.4817 69.7483 70.7753 69.8771C69.2683 70.0717 67.7514 70.1787 66.2321 70.1977H50.0581C48.5403 70.1739 47.0266 70.0361 45.5295 69.7853C44.391 69.5258 43.3412 68.9703 42.4862 68.1751C41.6339 67.3352 41.0416 66.2676 40.7803 65.0999C40.5369 63.6008 40.4033 62.0859 40.3807 60.5674V56.0158C40.3787 55.4112 40.1377 54.8318 39.7103 54.4042C39.2828 53.9765 38.7036 53.7352 38.099 53.7329H33.4001V53.7344Z\",\n fill: \"#F0CE0E\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.5095 42.7568C32.9069 43.8601 33.4418 44.7609 34.6984 44.7609H76.258C76.9114 44.7316 77.5413 44.5085 78.0675 44.1201C78.5936 43.7316 78.9923 43.1954 79.2128 42.5796L80.3083 39.0118C80.6772 37.8116 79.9523 36.8306 78.6981 36.8306H47.4063C45.8877 36.8537 44.3728 36.9877 42.8738 37.2316C42.8738 37.2316 37.4766 38.1984 34.9668 40.8934C34.4164 41.4612 33.9279 42.0858 33.5095 42.7568Z\",\n fill: \"#F0CE0E\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGpoLarge);\nexport default __webpack_public_path__ + \"static/media/gpo-large.77776b6197c7d7368316d45eb0f29bc6.svg\";\nexport { ForwardRef as ReactComponent };","var _ellipse, _path, _path2, _path3, _path4, _path5, _path6, _path7;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgGpxLarge(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 114,\n height: 114,\n viewBox: \"0 0 114 114\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ellipse || (_ellipse = /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 56.9111,\n cy: 56.6298,\n rx: 53.8368,\n ry: 53.8382,\n fill: \"#F0CE0E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.63362 54.3251H0.175781C1.46037 25.0686 24.9435 1.5854 54.1993 0.300781V7.75829C29.0613 9.0301 8.90487 29.1871 7.63362 54.3251Z\",\n fill: \"#24262E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.271 54.3251H105.813C104.554 29.4287 84.7685 9.43127 59.9688 7.81322V0.335449C88.8884 1.9711 111.997 25.3092 113.271 54.3251Z\",\n fill: \"#24262E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.1992 113.397C25.1841 112.123 1.84601 89.0142 0.210938 60.0938H7.68799C9.30599 84.8936 29.3035 104.68 54.1992 105.939V113.397Z\",\n fill: \"#24262E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.9688 113.362V105.884C84.5273 104.282 104.156 84.6525 105.759 60.0938H113.236C111.614 88.7741 88.6489 111.74 59.9688 113.362Z\",\n fill: \"#24262E\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.767 56.6471H109.167C109.166 71.0756 103.32 84.1309 93.8657 93.5868C84.4095 103.042 71.3545 108.888 56.9264 108.888C42.4983 108.888 29.4434 103.042 19.9872 93.5868C10.5326 84.1309 4.68687 71.0756 4.68633 56.6471C4.68687 42.2181 10.532 29.1628 19.9872 19.7069C25.38 14.3145 31.9432 10.0962 39.2639 7.46672C44.78 5.48538 50.7265 4.40561 56.9264 4.40561C71.3545 4.40615 84.4095 10.2515 93.8657 19.7069C103.32 29.1628 109.166 42.2181 109.167 56.6471H110.767C110.766 26.9104 86.6623 2.80571 56.9264 2.80518C27.1906 2.80571 3.08647 26.9104 3.08594 56.6471C3.08647 86.3832 27.1906 110.488 56.9264 110.489C86.6623 110.488 110.766 86.3832 110.767 56.6471Z\",\n fill: \"#F0CE0E\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.8493 54.0381C32.2444 54.0398 31.6647 54.2808 31.2369 54.7086C30.8091 55.1364 30.5681 55.7161 30.5664 56.3211V62.7428C30.5899 64.2617 30.7267 65.7767 30.9755 67.2753C30.9755 67.2753 31.8036 71.8154 34.345 74.6283C36.9276 77.4015 42.2085 78.3483 42.2085 78.3483C43.7073 78.5944 45.2223 78.7291 46.741 78.7511H68.2499C69.7666 78.7245 71.2785 78.5731 72.7704 78.2985C72.7704 78.2985 76.7065 77.4993 79.0025 75.2181C81.3158 72.9691 82.0491 69.2056 82.0491 69.2056C82.3144 67.711 82.4603 66.1978 82.4856 64.6801V56.3211C82.4837 55.7162 82.2425 55.1367 81.8148 54.709C81.3871 54.2812 80.8076 54.0401 80.2027 54.0381H64.5058C63.8535 54.0669 63.2249 54.2908 62.7013 54.6809C62.1777 55.071 61.7833 55.6092 61.569 56.226L60.757 58.9455C60.3962 60.1505 61.1291 61.1349 62.3857 61.1349H70.9735C72.2286 61.1349 73.2564 62.0098 73.2564 63.0794C73.2564 64.149 73.1339 66.0471 72.9857 67.2923C72.8629 67.9932 72.5433 68.6448 72.0643 69.171C71.5764 69.6979 70.9309 70.0524 70.2245 70.1813C68.7175 70.3758 67.2006 70.4829 65.6813 70.5018H49.5073C47.9896 70.4781 46.4758 70.3402 44.9787 70.0894C43.8402 69.8299 42.7904 69.2744 41.9354 68.4792C41.0831 67.6393 40.4908 66.5716 40.2295 65.4039C39.9861 63.9047 39.8525 62.3899 39.8299 60.8713V56.3196C39.8279 55.7149 39.5869 55.1356 39.1595 54.7079C38.7321 54.2802 38.1528 54.0389 37.5482 54.0366H32.8493V54.0381Z\",\n fill: \"#24262E\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.9548 43.0601C32.3522 44.1635 32.8871 45.0643 34.1437 45.0643H75.7033C76.3567 45.035 76.9866 44.8119 77.5127 44.4235C78.0389 44.035 78.4376 43.4988 78.6581 42.883L79.7536 39.3151C80.1225 38.1149 79.3976 37.1338 78.1434 37.1338H46.8516C45.333 37.1569 43.8181 37.291 42.3191 37.5349C42.3191 37.5349 36.9219 38.5016 34.4121 41.1967C33.8617 41.7645 33.3733 42.3892 32.9548 43.0601Z\",\n fill: \"#24262E\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGpxLarge);\nexport default __webpack_public_path__ + \"static/media/gpx-large.1b720a2efe3b95f381a1eb5f91ddf668.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState, useContext } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport { useTranslation } from \"react-i18next\";\n\n/* Images */\nimport ArrowRight from \"assets/images/about-us/arrow-right.svg\";\nimport Image1 from \"assets/images/about-us/goldbars.svg\";\nimport Image2 from \"assets/images/about-us/pawn.svg\";\nimport Image3 from \"assets/images/about-us/etherium.svg\";\nimport Image4 from \"assets/images/about-us/mint-gpo.svg\";\nimport Image5 from \"assets/images/about-us/mint-gpx.svg\";\nimport Image6 from \"assets/images/about-us/list-gpx.svg\";\nimport Image7 from \"assets/images/about-us/handshake.svg\";\nimport Image8 from \"assets/images/about-us/blockchain.svg\";\nimport Image9 from \"assets/images/about-us/graph.svg\";\n// import CoinMarketCap from \"assets/images/about-us/coin-market-cap.svg\";\n// import CoinGecko from \"assets/images/about-us/coin-gecko.svg\";\nimport GPO from \"assets/images/about-us/gpo-large.svg\";\nimport GPX from \"assets/images/about-us/gpx-large.svg\";\nimport ExternalLink from \"assets/images/icons/external-link.svg\";\n\nimport { ImageRotationContext } from '../../../src/ImageRotationContext';\n\nconst AboutUs = () => {\n const isMobileView = window.innerWidth <= 768;\n const { rotateImage } = useContext(ImageRotationContext);\n const { t } = useTranslation();\n const [isLoading, setIsLoading] = useState(false);\n\n const launchAppFunc = () => {\n window.location.href = \"https://app.goldpesa.com/\";\n };\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.aboutUs}>\n <section className={styles.aboutUs__section}>\n <div className={styles.aboutUs__top}>\n <h1 className=\"heading-2 center\">{t(\"About Us\")}</h1>\n\n <div className={styles.aboutUs__layout}>\n <div className={styles.aboutUs__cardsWrapper}>\n {/* First Card */}\n <div className={styles.card1}>\n <div className={styles.card1__wrapper}>\n <div className={styles.card1__top}>\n <h2 className={styles.card1__title}>\n {t(\"Why buy GoldPesa (GPX) ?\")}\n </h2>\n </div>\n\n <div className={styles.card1__bottom}>\n {/* Card 1-1 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_1}`}\n >\n <div className={styles.cardItem__wrapper}>\n <figure className={styles.cardItem__figure}>\n <img src={Image1} alt=\"Goldbars\" />\n </figure>\n <h2 className={styles.cardItem__title}>\n {t(\"Digital Gold\")}\n </h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"GPX captures the essence of gold in a purely digital form.\")}\n </p>\n </div>\n </div>\n\n {/* Card 1-2 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_2}`}\n >\n <div className={styles.cardItem__wrapper}>\n <figure className={styles.cardItem__figure}>\n <img src={Image2} alt=\"Pawn\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"The Pawn\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"A profitable algorithm that buys and burns GPX tokens.\")}\n </p>\n </div>\n </div>\n\n {/* Card 1-3 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_3}`}\n >\n <div className={styles.cardItem__wrapper}>\n <figure className={styles.cardItem__figure}>\n <img src={Image3} alt=\"Etherium\" />\n </figure>\n <h2 className={styles.cardItem__title}>\n {t(\"Trustless\")}\n </h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"Like Bitcoin, GoldPesa is fully decentralized and beyond anyone's control.\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Second Card */}\n <div className={styles.card1}>\n <div className={styles.card1__wrapper}>\n <div className={styles.card1__top}>\n <h2 className={styles.card1__title}>{t(\"The plan\")}</h2>\n </div>\n\n <div className={styles.card1__bottom}>\n {/* Card 1-1 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_1}`}\n >\n <div className={styles.cardItem__wrapper}>\n <h3 className={styles.cardItem__subTitle}>{t(\"Phase 1\")}</h3>\n <figure className={styles.cardItem__figure}>\n <img src={Image4} alt=\"Mint GPO\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"Mint GPO\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"Buy GoldPesa Option (GPO)\")}\n </p>\n </div>\n </div>\n\n <div\n className=\"arrowImg\"\n style={{ display: isMobileView ? 'none' : 'block' }}\n >\n <img\n src={ArrowRight}\n alt=\"Arrow Right\"\n style={{ transform: rotateImage ? 'rotate(180deg)' : 'rotate(0deg)' }}\n />\n </div>\n\n {/* Card 1-2 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_2}`}\n >\n <div className={styles.cardItem__wrapper}>\n <h3 className={styles.cardItem__subTitle}>{t(\"Phase 2\")}</h3>\n <figure className={styles.cardItem__figure}>\n <img src={Image5} alt=\"Mint GPX\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"Mint GPX\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"Convert GPO into GPX\")}\n </p>\n </div>\n </div>\n\n <div\n className=\"arrowImg\"\n style={{ display: isMobileView ? 'none' : 'block' }}\n >\n <img\n src={ArrowRight}\n alt=\"Arrow Right\"\n style={{ transform: rotateImage ? 'rotate(180deg)' : 'rotate(0deg)' }}\n />\n </div>\n\n {/* Card 1-3 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_3}`}\n >\n <div className={styles.cardItem__wrapper}>\n <h3 className={styles.cardItem__subTitle}>{t(\"Phase 3\")}</h3>\n <figure className={styles.cardItem__figure}>\n <img src={Image6} alt=\"List GPX\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"List GPX\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"Trade GPX on Uniswap\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Third Card */}\n <div className={styles.card1}>\n <div className={styles.card1__wrapper}>\n <div className={styles.card1__top}>\n <h2 className={styles.card1__title}>\n {t(\"Where is my gold? What if crypto markets crash?\")}\n </h2>\n </div>\n\n <div className={styles.card1__bottom}>\n {/* Card 1-1 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_1}`}\n >\n <div className={styles.cardItem__wrapper}>\n <figure className={styles.cardItem__figure}>\n <img src={Image7} alt=\"Handshake\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"Trusted\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"GPX is backed by code, NOT by physical gold.\")}\n </p>\n </div>\n </div>\n\n {/* Card 1-2 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_2}`}\n >\n <div className={styles.cardItem__wrapper}>\n <figure className={styles.cardItem__figure}>\n <img src={Image8} alt=\"Blockchain\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"Fair Launch\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"USDC cannot be removed from liquidity.\")}\n </p>\n </div>\n </div>\n\n {/* Card 1-3 */}\n <div\n className={`${styles.cardItem} ${styles.cardItem_3}`}\n >\n <div className={styles.cardItem__wrapper}>\n <figure className={styles.cardItem__figure}>\n <img src={Image9} alt=\"Graph\" />\n </figure>\n <h2 className={styles.cardItem__title}>{t(\"Safe Haven\")}</h2>\n <p className={styles.cardItem__tagLine}>\n {t(\"Liquidity code stabilizes prices in all markets.\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Ecosystem */}\n <div className={styles.ecoSystem}>\n <div className={styles.ecoSystem__heading}>\n <h2>{t(\"GoldPesa Ecosystem\")}</h2>\n </div>\n\n <div className={styles.ecoSystem__cards}>\n <div className={styles.card2}>\n <div className={styles.card2__absoluteTop}>\n {/* <div className={styles.card2__absoluteTop__left}>\n <a\n href=\"https://coinmarketcap.com/currencies/goldpesa/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src={CoinMarketCap} alt=\"Coin Market Cap\" />\n </a>\n <a\n href=\"https://www.coingecko.com/en/coins/goldpesa-option\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src={CoinGecko} alt=\"Coin Gecko\" />\n </a>\n </div> */}\n\n <div className={styles.card2__absoluteTop__right}>\n <a\n href=\"https://www.certik.com/projects/goldpesa\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <img src={ExternalLink} alt=\"External Link\" />\n <p>{t(\"Certik Audit\")}</p>\n </a>\n </div>\n </div>\n\n <div>\n <figure className={styles.card2__figure}>\n <img src={GPO} alt=\"GPO\" />\n </figure>\n\n <h2 className={styles.card2__title}>\n GoldPesa Option (GPO)\n </h2>\n\n <h3 className={styles.card2__subTitle}>\n 0x0308a3a9c433256aD7eF24dBEF9c49C8cb01300A\n </h3>\n\n <p className={styles.card2__gist}>\n {t(\"1 GPO token gives you the option to convert to 1 GPX token.\")}\n </p>\n\n <div className={styles.card2__attributes}>\n <h3 className={styles.card2__attributes__heading}>\n {t(\"Smart Contract\")}\n </h3>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>{t(\"Name\")}: </span>\n <span className={styles.bold}>\n {t(\"GoldPesa Option\")}\n </span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>{t(\"Symbol\")}: </span>\n <span className={styles.bold}>{t(\"GPO\")}</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Blockchain\")}:{\" \"}\n </span>\n <span className={styles.bold}>\n {t(\"Polygon\")}\n </span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Max Supply\")}:{\" \"}\n </span>\n <span className={styles.bold}>100,000,000</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Fee On Swap\")}:{\" \"}\n </span>\n <span className={styles.bold}>10%</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Max Tokens Per Wallet\")}:\n </span>\n <span className={styles.bold}>100,000</span>\n </p>\n </div>\n </div>\n\n <div className={styles.card2__cta}>\n <button type=\"button\" onClick={launchAppFunc}>\n {t(\"Buy Now\")}\n </button>\n </div>\n </div>\n </div>\n\n <div className={styles.card2}>\n <div>\n <figure className={styles.card2__figure}>\n <img src={GPX} alt=\"GPO\" />\n </figure>\n\n <h2 className={styles.card2__title}>GoldPesa (GPX)</h2>\n\n <h3 className={styles.card2__subTitle}> </h3>\n\n <p className={styles.card2__gist}>\n {t(\"An advanced form of money fueled by the Pawn, our intelligent algorithm.\")}\n </p>\n\n <div className={styles.card2__attributes}>\n <h3 className={styles.card2__attributes__heading}>\n {t(\"Smart Contract\")}\n </h3>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>{t(\"Name\")}: </span>\n <span className={styles.bold}>{t(\"GoldPesa\")}</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>{t(\"Symbol\")}: </span>\n <span className={styles.bold}>{t(\"GPX\")}</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Blockchain\")}:{\" \"}\n </span>\n <span className={styles.bold}>\n {t(\"Polygon\")}\n </span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Max Supply\")}:{\" \"}\n </span>\n <span className={styles.bold}>100,000,000</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Fee On Transfer\")}:{\" \"}\n </span>\n <span className={styles.bold}>1%</span>\n </p>\n </div>\n\n <div className={styles.card2__attributes__item}>\n <p>\n <span className={styles.medium}>\n {t(\"Release Date\")}:{\" \"}\n </span>\n <span className={styles.bold}>{t(\"Q1 2025\")}</span>\n </p>\n </div>\n </div>\n\n <div className={styles.card2__cta}>\n <button type=\"button\">{t(\"Q1 2025\")}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n );\n};\n\nexport default AboutUs;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport HeroImage from \"assets/images/gp-academy/gp-academy.png\";\n\nconst Academy = () => {\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.gpAcademy}>\n <div className={styles.gpAcademy__heroSection}>\n <div className={styles.heroSection}>\n <div className={styles.heroSection__top}>\n <div className={styles.heroSection__heading}>\n <h2>GoldPesa Academy</h2>\n </div>\n </div>\n\n <div className={styles.heroSection__bottom}>\n <div className={styles.heroSection__image__wrapper}>\n <figure className={styles.heroSection__image}>\n <img src={HeroImage} alt=\"GP STAKE2WIN\" />\n </figure>\n </div>\n </div>\n\n <div className={styles.heroSection__text}>\n <p>\n Learn about crypto and blockchain technology from actual\n engineers, scientists and coders.\n </p>\n </div>\n </div>\n </div>\n\n <div className={styles.gpAcademy__mission}>\n <div className={styles.gpAcademy__mission__heading}>\n <h2>OUR MISSION</h2>\n </div>\n\n <div className={styles.gpAcademy__mission__text}>\n <p>Helping our community navigate the world of blockchain.</p>\n <p>\n To provide students with the necessary tools to assess\n opportunities in the crypto space.\n </p>\n <p>\n To help you understand how to protect yourself from inherent risks\n in the crypto market.\n </p>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Academy;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport Accordion from \"components/Accordion\";\nimport { faqConfig } from \"configs/faqConfig\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FAQ = () => {\n const { t } = useTranslation();\n const accordionRef = useRef([]);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, 2500);\n }, []);\n\n const translatedFaqConfig = faqConfig.map((item) => ({\n ...item,\n translatedQuestion: t(item.question),\n // translatedAnswer: t(item.answer, { returnObjects: true }),\n translatedAnswer: item.answer.map((ans)=> {\n return t(ans, { returnObjects: true });\n })\n }\n \n ));\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.faq}>\n <section className={styles.faq__section}>\n <div className={styles.faq__top}>\n <h1 className=\"heading-2 center\">{t(\"FAQ\")}</h1>\n\n <div className={styles.faq__layout}>\n <div className={styles.faq__accordionWrapper}>\n {translatedFaqConfig.map((item, index) => (\n <Accordion\n key={index}\n index={index}\n innerRef={(ref) => (accordionRef.current[index] = ref)}\n parentRef={accordionRef}\n title={item.translatedQuestion}\n content={item.translatedAnswer}\n />\n ))}\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n );\n};\n\nexport default FAQ;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport HeroImage from \"assets/images/goldmines/gp-mines.png\";\nimport GPMountainsDesktop from \"assets/images/goldmines/gp-mountains-1.png\";\n\nconst Goldmines = () => {\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.goldmines}>\n <div className={styles.goldmines__heroSection}>\n <div className={styles.heroSection}>\n <div className={styles.heroSection__top}>\n <div className={styles.heroSection__heading}>\n <h2>GoldPesa Mines</h2>\n </div>\n </div>\n\n <div className={styles.heroSection__bottom}>\n <div className={styles.heroSection__image__wrapper}>\n <figure className={styles.heroSection__image}>\n <img src={HeroImage} alt=\"Goldmines\" />\n </figure>\n </div>\n </div>\n\n <div className={styles.heroSection__text}>\n <p>\n GoldPesa will be launching a unique play to earn game, whereby\n players compete with other players for GPO tokens while they\n advance deeper into the GoldPesa Mine.\n </p>\n <p>\n Players will be required to dig using GPO in order to mine real\n GPX tokens, which effectively simplifies the process of\n exercising GoldPesa Options (GPO) to purchase GoldPesa Tokens\n (GPX).\n </p>\n <p>\n A truly innovative gamification of DeFi and real-world assets.\n </p>\n </div>\n </div>\n </div>\n\n <div className={styles.goldmines__mountains}>\n <figure>\n <img src={GPMountainsDesktop} alt=\"GP Mountains\" />\n </figure>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Goldmines;\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgArrowDownCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 29,\n height: 29,\n viewBox: \"0 0 29 29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.4607 6.13677C21.1634 3.83945 18.0476 2.54883 14.7987 2.54883C11.5498 2.54883 8.43393 3.83945 6.13661 6.13677C3.83929 8.43409 2.54867 11.5499 2.54867 14.7988C2.54867 18.0477 3.83929 21.1636 6.13661 23.4609C8.43393 25.7582 11.5498 27.0488 14.7987 27.0488C18.0476 27.0488 21.1634 25.7582 23.4607 23.4609C25.758 21.1636 27.0487 18.0477 27.0487 14.7988C27.0487 11.5499 25.758 8.43409 23.4607 6.13677ZM4.89917 24.6983C2.27366 22.0728 0.798665 18.5119 0.798665 14.7988C0.798665 11.0858 2.27366 7.52484 4.89917 4.89933C7.52468 2.27382 11.0856 0.798828 14.7987 0.798828C18.5117 0.798828 22.0727 2.27382 24.6982 4.89933C27.3237 7.52484 28.7987 11.0858 28.7987 14.7988C28.7987 18.5119 27.3237 22.0728 24.6982 24.6983C22.0727 27.3238 18.5117 28.7988 14.7987 28.7988C11.0856 28.7988 7.52468 27.3238 4.89917 24.6983ZM13.9857 8.67475C13.9855 8.44256 14.0776 8.21981 14.2417 8.05551C14.4057 7.89121 14.6283 7.79881 14.8605 7.79865C15.0927 7.79848 15.3155 7.89056 15.4798 8.05463C15.6441 8.2187 15.7365 8.44132 15.7366 8.67352L15.7354 18.8118L19.1606 15.3866C19.3247 15.2225 19.5473 15.1303 19.7793 15.1303C20.0114 15.1303 20.234 15.2225 20.3981 15.3866C20.5622 15.5507 20.6544 15.7733 20.6543 16.0053C20.6543 16.2374 20.5622 16.46 20.3981 16.624L15.4793 21.5429C15.3152 21.707 15.0926 21.7991 14.8605 21.7991C14.6285 21.7991 14.4059 21.707 14.2418 21.5429L9.32301 16.624C9.15891 16.46 9.06673 16.2374 9.06673 16.0053C9.06673 15.7733 9.15891 15.5507 9.32301 15.3866C9.4871 15.2225 9.70966 15.1303 9.94173 15.1303C10.1738 15.1303 10.3964 15.2225 10.5604 15.3866L13.9857 18.8118L13.9857 8.67475Z\",\n fill: \"#000\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDownCircle);\nexport default __webpack_public_path__ + \"static/media/arrow-down-circle.6f99a042915088785cc23a64f4dac6d7.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef, useState, useEffect } from \"react\";\nimport styles from \"./index.module.scss\";\nimport CardStyle1 from \"components/Cards/Style1\";\n\n/* Images & Icons */\nimport GPOImage from \"assets/images/gpo-icon.png\";\nimport PawnImage from \"assets/images/pawn-icon.png\";\nimport GPXImage from \"assets/images/gpx-icon.png\";\nimport { ReactComponent as ArrowDownCircleIcon } from \"assets/images/icons/arrow-down-circle.svg\";\nimport Loader from \"components/Loader\";\nimport { useTranslation } from \"react-i18next\";\nimport InfiniteLoopBrandSlider from \"components/InfiniteLoopBrandSlider\";\nimport { useQuery } from \"react-query\";\n\nconst Home = () => {\n const { t } = useTranslation();\n const { isLoading: load, error, data } = useQuery('priceData', () =>\n fetch('https://gpw-api.goldpesa.com/price').then(res =>\n res.json()\n )\n )\n\n const pricePretty =\n !(load || error)\n ? new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n }).format(data.price)\n : \"...\";\n const volumePretty =\n (load || error)\n ? \"...\"\n : new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n }).format(data.vol24hr);\n const videoSectionRef = useRef(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const scrollToAnimationSection = () => {\n const headerHeight = document.getElementById(\"header\").clientHeight;\n const y =\n videoSectionRef.current.getBoundingClientRect().top +\n window.pageYOffset -\n headerHeight;\n\n window.scrollTo({ top: y, behavior: \"smooth\" });\n };\n\n const launchAppFunc = () => {\n window.location.href = \"https://app.goldpesa.com/\";\n };\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n return (\n \n <div className=\"container\">\n <Loader isLoading={isLoading} />\n \n <section>\n <div className={styles.heroSection}>\n <div className={styles.heroSection__cardsGrid}>\n <CardStyle1\n image={GPOImage}\n title=\"GPO\"\n subTitle={<div style={{marginTop: '15px'}}>0x0308a3a9c433256aD7eF24dBEF9c49C8cb01300A</div>}\n attributes={[\n { name: t('Price'), value: pricePretty }, \n { name: t('24HR Volume'), value: volumePretty },\n ]}\n showCta={true}\n ctaText={t(\"Buy Now\")}\n ctaFunc={launchAppFunc}\n />\n <CardStyle1\n image={PawnImage}\n title=\"PAWN\"\n subTitle={<div style={{marginTop: '20px'}}></div>}\n attributes={[\n { name: \"Total Buyback ($)\", value: \"$0.00\" },\n { name: \"GPX Balance\", value: \"0.00\" },\n ]}\n showCta={false} lastUpdated=\"01/01/2025 00:00 GMT\"\n />\n <CardStyle1\n image={GPXImage}\n title=\"GPX\"\n subTitle={<div style={{marginTop: '15px'}}>{t(\"Coming soon\")}</div>}\n attributes={[\n { name: t('Price'), value: t('TBA') },\n { name: t('24HR Volume'), value: t('TBA') },\n ]}\n showCta={true}\n ctaText={t(\"Q1 2025\")}\n ctaFunc={() => {}}\n />\n </div>\n\n <section className={styles.mediaAndPress__section} >\n <div className={styles.mediaAndPress__brandsSlider} >\n <InfiniteLoopBrandSlider />\n </div>\n </section>\n\n <div className={styles.heroSection__sectionScroller}>\n <span\n className={`${styles.heroSection__sectionScroller__icon} myLinkForCursor`}\n onClick={scrollToAnimationSection}\n >\n <ArrowDownCircleIcon />\n </span>\n </div>\n </div>\n </section>\n \n\n <section ref={videoSectionRef} className={styles.videoSection}>\n <div className={styles.videoSection__video}>\n <div className={styles.videoSection__video__wrapper}>\n <iframe\n width=\"560\"\n height=\"315\"\n src=\"https://www.youtube-nocookie.com/embed/BsyI9MFzGwk\"\n title=\"YouTube video player\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n allowfullscreen\n ></iframe>\n </div>\n </div>\n </section>\n </div>\n );\n};\n\nexport default Home;\n","import React, { useEffect, useState, } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styles from \"./index.module.scss\";\nimport InfiniteLoopBrandSlider from \"components/InfiniteLoopBrandSlider\";\nimport MediaCardsSlider from \"components/MediaCardsSlider\";\nimport Loader from \"components/Loader\";\n\nconst MediaAndPress = () => {\n const [isLoading, setIsLoading] = useState(false);\n const { t } = useTranslation();\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, 3500);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.mediaAndPress}>\n <section className={styles.mediaAndPress__section}>\n <div className={styles.mediaAndPress__top}>\n <h1 className=\"heading-2 center\">{t(\"mediaPress.title\")}</h1>\n </div>\n </section>\n\n <section className={styles.mediaAndPress__section}>\n <div className={styles.mediaAndPress__brandsSlider}>\n <InfiniteLoopBrandSlider />\n </div>\n </section>\n\n <section className={styles.mediaAndPress__section}>\n <div className={styles.mediaAndPress__bottom}>\n <div className={styles.mediaAndPress__newsSlider}>\n <MediaCardsSlider />\n </div>\n </div>\n </section>\n </div>\n </div>\n );\n};\n\nexport default MediaAndPress;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport { roadmapConfig } from \"configs/roadmapConfig\";\nimport Loader from \"components/Loader\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RoadMap = () => {\n const { t } = useTranslation();\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n const getIsActive = (index) => {\n const today = new Date();\n const month = (today.getMonth() + 1).toString().padStart(2, \"0\");\n const year = today.getFullYear();\n const endDay = roadmapConfig[index].endDate.getDate();\n\n if (\n roadmapConfig[index].startDate.getTime() >=\n new Date(`${year}-${month}-01`).getTime() &&\n roadmapConfig[index].endDate.getTime() <=\n new Date(`${year}-${month}-${endDay}`).getTime()\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.roadMap}>\n <section className={styles.roadMap__section}>\n <div className={styles.roadMap__top}>\n <h1 className=\"heading-2 center\">{t(\"Roadmap\")}</h1>\n\n <div className={styles.roadMap__layout}>\n {roadmapConfig?.length &&\n roadmapConfig.map((item, index) => {\n return (\n <div\n key={index}\n id={`${getIsActive(index) ? \"activeRoadmapCard\" : \"\"}`}\n className={`${styles.card} ${\n getIsActive(index) ? styles.active : \"\"\n }`}\n >\n <div\n className={`${styles.card__title} ${\n index !== roadmapConfig.length - 1\n ? styles.notLast\n : \"\"\n }`}\n >\n {t(item.name)}\n\n <span className={styles.horizontalLine}></span>\n </div>\n\n <div\n className={`${styles.card__text} ${\n index !== roadmapConfig.length - 1\n ? styles.notLast\n : \"\"\n }`}\n >\n {t(item.text)}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </section>\n </div>\n </div>\n );\n};\n\nexport default RoadMap;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport HeroImage from \"assets/images/stake-2-win/stake-2-win-logo.png\";\n\nconst StakeTwoWin = () => {\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.stakeTwoWin}>\n <div className={styles.stakeTwoWin__heroSection}>\n <div className={styles.heroSection}>\n <div className={styles.heroSection__top}>\n <div className={styles.heroSection__heading}>\n <h2>Stake2Win</h2>\n </div>\n </div>\n\n <div className={styles.heroSection__bottom}>\n <div className={styles.heroSection__image__wrapper}>\n <figure className={styles.heroSection__image}>\n <img src={HeroImage} alt=\"STAKE2WIN\" />\n </figure>\n </div>\n </div>\n\n <div className={styles.heroSection__text}>\n <p>\n A unique no-loss lottery model where users have a chance to win\n a lump sum of tokens without any chance of loss! Yes, you heard\n that right!\n </p>\n <p>\n In this model, users stake GPO, GPX or USDC tokens into a pool\n which is deployed into the GoldPesa Liquidity Protocol. One\n lucky winner takes all the accrued interest as a lottery prize\n while the rest of players receive their original tokens back.\n Lotteries are transparent & on-chain, and are conducted over a\n period of time.\n </p>\n <p>The more players, the bigger the prize!</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default StakeTwoWin;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport { teamConfig } from \"configs/teamConfig\";\nimport FounderImage from \"assets/images/founder-image.png\";\nimport LinkedInIcon from \"assets/images/team/linkedin-icon-blue.png\";\nimport TeamCard from \"components/TeamCard\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Team = () => {\n const { t } = useTranslation();\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [2500]);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.team}>\n <section className={styles.team__section}>\n <div className={styles.team__bottom}>\n <div className={styles.team__grid}>\n <div className={styles.team__grid__left}>\n <div className={styles.team__image}>\n <figure>\n <img src={FounderImage} alt=\"Shamik Raja\" />\n </figure>\n </div>\n </div>\n\n <div className={styles.team__grid__right}>\n <div className={styles.team__title}>\n <div>\n <h1 className=\"heading-2 fullWidth\">{t(\"Shamik Raja\")}</h1>\n <p className={styles.team__text}>{t(\"Founder - CEO\")}</p>\n </div>\n\n <a\n href=\"https://www.linkedin.com/in/shamikraja/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n className={styles.team__linkedin}\n >\n <figure>\n <img src={LinkedInIcon} alt=\"Shamik's Linkedin\" />\n </figure>\n </a>\n </div>\n\n <div>\n <p className={styles.team__text}>\n {t(\"GoldPesa is the brainchild of developer and computer engineer Shamik Raja, who has extensive experience in digital signal processing, programming, commodities, and quantitative science.\")}\n </p>\n <p className={styles.team__text}>\n {t(\"Between 2001 and 2006, Raja earned a degree in Electrical & Computer Engineering from the University of British Columbia in Canada. Over the years, he has focused on research involving the application of principals in digital signal processing to create an automated commodity-buying system that uses algorithmic calculations to navigate complex international commodity and currency markets.\")}\n </p>\n <p className={styles.team__text}>\n {t(\"GoldPesa is an amalgamation of his 8 years of experience in the blockchain sector combined with over 20 years in quantitative science and financial engineering.\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <section className={styles.team__section}>\n <div className={styles.ourTeam}>\n <h1 className=\"heading-2 center fullWidth\">{t(\"Our Team\")}</h1>\n <div className={styles.ourTeam__grid}>\n {teamConfig &&\n teamConfig.length &&\n teamConfig.map((member, index) => {\n return (\n <TeamCard\n key={index}\n name={t(member.name || \"\")}\n specializations={\n Array.isArray(member.specializations)\n ? member.specializations.map(specialization =>\n t(specialization || \"\")\n )\n : \"\"\n }\n linkedin={member.linkedin || \"\"}\n avatar={member.avatar || \"\"}\n />\n );\n })}\n </div>\n </div>\n </section>\n </div>\n </div>\n );\n};\n\nexport default Team;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport Loader from \"components/Loader\";\nimport HeroImage from \"assets/images/xenii/hero.png\";\nimport Image3 from \"assets/images/xenii/3.png\";\n\nconst Xenii2 = () => {\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsLoading(false);\n }, [0]);\n }, []);\n\n return (\n <div className=\"container\">\n <Loader isLoading={isLoading} />\n\n <div className={styles.xenii}>\n <div className={styles.xenii__heroSection}>\n <div className={styles.heroSection__section}>\n <div className={styles.heroSection__top}>\n <div className={styles.heroSection__heading}>\n <h2>Xenii 2.0</h2>\n </div>\n </div>\n\n <div className={styles.heroSection__bottom}>\n <div className={styles.heroSection__image__wrapper}>\n <figure className={styles.heroSection__image}>\n <img src={HeroImage} alt=\"Xenii 2.0\" />\n </figure>\n </div>\n </div>\n\n <div className={styles.heroSection__text}>\n <p>\n XENII is a private membership community designed to help connect\n global brands to the Hollywood tastemaker on a consistent basis\n in this digital crypto age.\n </p>\n <p>\n XENII was originally launched by founder Michael Sutton in 2005.\n XENII brought the world's elite together with A-list celebrities\n in a private, exclusive and unforgettable after party\n experience.\n </p>\n <p>\n Hollywood had never seen anything like XENII before and we are\n now bringing this elite unicorn experience back for the next\n generation.\n </p>\n <p>\n XENII events will be held at sound stages around Los Angeles on\n a quarterly basis from Midnight until 5AM.\n </p>\n </div>\n </div>\n </div>\n\n <div className={styles.xenii__gallery}>\n <div className={styles.gallery}>\n <div className={styles.gallery__item}>\n <figure>\n <img src={Image3} alt=\"Xenii\" />\n </figure>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default Xenii2;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","/* -------------------------------------------------------- */\n/* ---- This Function Deep Clone Given Object or Array ---- */\n/* -------------------------------------------------------- */\n\nexport const customCloneDeep = (inObject) => {\n let outObject, value, key;\n\n if (typeof inObject !== \"object\" || inObject === null) {\n return inObject; // Return the value if inObject is not an object\n }\n\n // Create an array or object to hold the values\n outObject = Array.isArray(inObject) ? [] : {};\n\n for (key in inObject) {\n value = inObject[key];\n\n // Recursively (deep) copy for nested objects, including arrays\n outObject[key] = customCloneDeep(value);\n }\n\n return outObject;\n};\n\n/* -------------------------------------------------------- */\n/* --------------- Custom Debounce Function --------------- */\n/* -------------------------------------------------------- */\n\nexport const debounce = (func, timeout = 150) => {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n};\n\n/* -------------------------------------------------------- */\n/* ---------- This Function Detects Network Speed --------- */\n/* -------------------------------------------------------- */\nconst calculateSpeed = (imageSize, startTime, endTime) => {\n let timeDuration = (endTime - startTime) / 1000;\n let loadedBits = imageSize * 8;\n /* Converts a number into string using toFixed(2) rounding to 2 */\n let speedInBps = (loadedBits / timeDuration).toFixed(2);\n let speedInKbps = (speedInBps / 1024).toFixed(2);\n let speedInMbps = (speedInKbps / 1024).toFixed(2);\n\n return parseFloat(speedInMbps || 0);\n};\n\nexport const getConnectionSpeed = () => {\n return new Promise((resolve) => {\n try {\n let startTime, endTime;\n let imageSize = \"\";\n let image = new Image();\n\n //Gets random image from unsplash.com\n let imageLink = \"https://source.unsplash.com/random?topics=nature\";\n\n //When image loads\n image.onload = () => {\n endTime = new Date().getTime();\n\n //Get image size\n fetch(imageLink).then((response) => {\n imageSize = response.headers.get(\"content-length\");\n const mbps = calculateSpeed(imageSize, startTime, endTime);\n resolve(mbps);\n });\n };\n\n image.src = imageLink;\n startTime = new Date().getTime();\n } catch (error) {\n resolve(0);\n }\n });\n};\n","export default class CssParseError extends Error {\n readonly reason: string;\n readonly filename?: string;\n readonly line: number;\n readonly column: number;\n readonly source: string;\n\n constructor(\n filename: string,\n msg: string,\n lineno: number,\n column: number,\n css: string\n ) {\n super(filename + ':' + lineno + ':' + column + ': ' + msg);\n this.reason = msg;\n this.filename = filename;\n this.line = lineno;\n this.column = column;\n this.source = css;\n }\n}\n","/**\n * Store position information for a node\n */\nexport default class Position {\n start: {line: number; column: number};\n end: {line: number; column: number};\n source?: string;\n\n constructor(\n start: {line: number; column: number},\n end: {line: number; column: number},\n source: string\n ) {\n this.start = start;\n this.end = end;\n this.source = source;\n }\n}\n","export {default as parse} from './parse';\nexport {default as stringify} from './stringify';\nexport * from './type';\nexport * from './CssParseError';\nexport * from './CssPosition';\n","import CssParseError from '../CssParseError';\nimport Position from '../CssPosition';\nimport {\n CssAtRuleAST,\n CssCharsetAST,\n CssCommentAST,\n CssCommonPositionAST,\n CssContainerAST,\n CssCustomMediaAST,\n CssDeclarationAST,\n CssDocumentAST,\n CssFontFaceAST,\n CssHostAST,\n CssImportAST,\n CssKeyframeAST,\n CssKeyframesAST,\n CssLayerAST,\n CssMediaAST,\n CssNamespaceAST,\n CssPageAST,\n CssRuleAST,\n CssStylesheetAST,\n CssSupportsAST,\n CssTypes,\n} from '../type';\n\n// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nconst commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nexport const parse = (\n css: string,\n options?: {source?: string; silent?: boolean}\n): CssStylesheetAST => {\n options = options || {};\n\n /**\n * Positional.\n */\n let lineno = 1;\n let column = 1;\n\n /**\n * Update lineno and column based on `str`.\n */\n function updatePosition(str: string) {\n const lines = str.match(/\\n/g);\n if (lines) lineno += lines.length;\n const i = str.lastIndexOf('\\n');\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n */\n function position() {\n const start = {line: lineno, column: column};\n return function <T1 extends CssCommonPositionAST>(\n node: Omit<T1, 'position'>\n ): T1 {\n (node as T1).position = new Position(\n start,\n {line: lineno, column: column},\n options?.source || ''\n );\n whitespace();\n return node as T1;\n };\n }\n\n /**\n * Error `msg`.\n */\n const errorsList: Array<CssParseError> = [];\n\n function error(msg: string) {\n const err = new CssParseError(\n options?.source || '',\n msg,\n lineno,\n column,\n css\n );\n\n if (options?.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Parse stylesheet.\n */\n function stylesheet(): CssStylesheetAST {\n const rulesList = rules();\n\n const result: CssStylesheetAST = {\n type: CssTypes.stylesheet,\n stylesheet: {\n source: options?.source,\n rules: rulesList,\n parsingErrors: errorsList,\n },\n };\n\n return result;\n }\n\n /**\n * Opening brace.\n */\n function open() {\n return match(/^{\\s*/);\n }\n\n /**\n * Closing brace.\n */\n function close() {\n return match(/^}/);\n }\n\n /**\n * Parse ruleset.\n */\n function rules() {\n let node: CssRuleAST | CssAtRuleAST | void;\n const rules: Array<CssRuleAST | CssAtRuleAST> = [];\n whitespace();\n comments(rules);\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n if (node) {\n rules.push(node);\n comments(rules);\n }\n }\n return rules;\n }\n\n /**\n * Match `re` and return captures.\n */\n function match(re: RegExp) {\n const m = re.exec(css);\n if (!m) {\n return;\n }\n const str = m[0];\n updatePosition(str);\n css = css.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(/^\\s*/);\n }\n\n /**\n * Parse comments;\n */\n function comments<T1 extends CssCommonPositionAST>(\n rules?: Array<T1 | CssCommentAST>\n ) {\n let c;\n rules = rules || [];\n while ((c = comment())) {\n if (c) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n */\n function comment(): CssCommentAST | void {\n const pos = position();\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n return;\n }\n\n const m = match(/^\\/\\*[^]*?\\*\\//);\n if (!m) {\n return error('End of comment missing');\n }\n\n return pos<CssCommentAST>({\n type: CssTypes.comment,\n comment: m[0].slice(2, -2),\n });\n }\n\n /**\n * Parse selector.\n */\n function selector() {\n const m = match(/^([^{]+)/);\n if (!m) {\n return;\n }\n\n // remove comment in selector; [^] is equivalent to [.\\n\\r]\n const res = trim(m[0]).replace(/\\/\\*[^]*?\\*\\//gm, '');\n\n // Optimisation: If there is no ',' no need to split or post-process (this is less costly)\n if (res.indexOf(',') === -1) {\n return [res];\n }\n\n return (\n res\n /**\n * replace ',' by \\u200C for data selector (div[data-lang=\"fr,de,us\"])\n * replace ',' by \\u200C for nthChild and other selector (div:nth-child(2,3,4))\n *\n * Examples:\n * div[data-lang=\"fr,\\\"de,us\"]\n * div[data-lang='fr,\\'de,us']\n * div:matches(.toto, .titi:matches(.toto, .titi))\n *\n * Regex logic:\n * (\"|')(?:\\\\\\1|.)*?\\1 => Handle the \" and '\n * \\(.*?\\) => Handle the ()\n *\n * Optimization 1:\n * No greedy capture (see docs about the difference between .* and .*?)\n *\n * Optimization 2:\n * (\"|')(?:\\\\\\1|.)*?\\1 this use reference to capture group, it work faster.\n */\n .replace(/(\"|')(?:\\\\\\1|.)*?\\1|\\(.*?\\)/g, m => m.replace(/,/g, '\\u200C'))\n // Split the selector by ','\n .split(',')\n // Replace back \\u200C by ','\n .map(s => {\n return trim(s.replace(/\\u200C/g, ','));\n })\n );\n }\n\n /**\n * Parse declaration.\n */\n function declaration(): CssDeclarationAST | void {\n const pos = position();\n\n // prop\n const propMatch = match(/^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!propMatch) {\n return;\n }\n const propValue = trim(propMatch[0]);\n\n // :\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n\n // val\n const val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/);\n\n const ret = pos<CssDeclarationAST>({\n type: CssTypes.declaration,\n property: propValue.replace(commentre, ''),\n value: val ? trim(val[0]).replace(commentre, '') : '',\n });\n\n // ;\n match(/^[;\\s]*/);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n */\n function declarations() {\n const decls: Array<CssDeclarationAST | CssCommentAST> = [];\n\n if (!open()) {\n return error(\"missing '{'\");\n }\n comments(decls);\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n if (decl) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n\n /**\n * Parse keyframe.\n */\n function keyframe() {\n let m;\n const vals = [];\n const pos = position();\n\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n\n if (!vals.length) {\n return;\n }\n\n return pos<CssKeyframeAST>({\n type: CssTypes.keyframe,\n values: vals,\n declarations: declarations() || [],\n });\n }\n\n /**\n * Parse keyframes.\n */\n function atkeyframes(): CssKeyframesAST | void {\n const pos = position();\n const m1 = match(/^@([-\\w]+)?keyframes\\s*/);\n\n if (!m1) {\n return;\n }\n const vendor = m1[1];\n\n // identifier\n const m2 = match(/^([-\\w]+)\\s*/);\n if (!m2) {\n return error('@keyframes missing name');\n }\n const name = m2[1];\n\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n\n let frame;\n let frames: Array<CssKeyframeAST | CssCommentAST> = comments();\n while ((frame = keyframe())) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n\n return pos<CssKeyframesAST>({\n type: CssTypes.keyframes,\n name: name,\n vendor: vendor,\n keyframes: frames,\n });\n }\n\n /**\n * Parse supports.\n */\n function atsupports(): CssSupportsAST | void {\n const pos = position();\n const m = match(/^@supports *([^{]+)/);\n\n if (!m) {\n return;\n }\n const supports = trim(m[1]);\n\n if (!open()) {\n return error(\"@supports missing '{'\");\n }\n\n const style = comments<CssAtRuleAST>().concat(rules());\n\n if (!close()) {\n return error(\"@supports missing '}'\");\n }\n\n return pos<CssSupportsAST>({\n type: CssTypes.supports,\n supports: supports,\n rules: style,\n });\n }\n\n /**\n * Parse host.\n */\n function athost() {\n const pos = position();\n const m = match(/^@host\\s*/);\n\n if (!m) {\n return;\n }\n\n if (!open()) {\n return error(\"@host missing '{'\");\n }\n\n const style = comments<CssAtRuleAST>().concat(rules());\n\n if (!close()) {\n return error(\"@host missing '}'\");\n }\n\n return pos<CssHostAST>({\n type: CssTypes.host,\n rules: style,\n });\n }\n\n /**\n * Parse container.\n */\n function atcontainer(): CssContainerAST | void {\n const pos = position();\n const m = match(/^@container *([^{]+)/);\n\n if (!m) {\n return;\n }\n const container = trim(m[1]);\n\n if (!open()) {\n return error(\"@container missing '{'\");\n }\n\n const style = comments<CssAtRuleAST>().concat(rules());\n\n if (!close()) {\n return error(\"@container missing '}'\");\n }\n\n return pos<CssContainerAST>({\n type: CssTypes.container,\n container: container,\n rules: style,\n });\n }\n\n /**\n * Parse container.\n */\n function atlayer(): CssLayerAST | void {\n const pos = position();\n const m = match(/^@layer *([^{;@]+)/);\n\n if (!m) {\n return;\n }\n const layer = trim(m[1]);\n\n if (!open()) {\n match(/^[;\\s]*/);\n return pos<CssLayerAST>({\n type: CssTypes.layer,\n layer: layer,\n });\n }\n\n const style = comments<CssAtRuleAST>().concat(rules());\n\n if (!close()) {\n return error(\"@layer missing '}'\");\n }\n\n return pos<CssLayerAST>({\n type: CssTypes.layer,\n layer: layer,\n rules: style,\n });\n }\n\n /**\n * Parse media.\n */\n function atmedia(): CssMediaAST | void {\n const pos = position();\n const m = match(/^@media *([^{]+)/);\n\n if (!m) {\n return;\n }\n const media = trim(m[1]);\n\n if (!open()) {\n return error(\"@media missing '{'\");\n }\n\n const style = comments<CssAtRuleAST>().concat(rules());\n\n if (!close()) {\n return error(\"@media missing '}'\");\n }\n\n return pos<CssMediaAST>({\n type: CssTypes.media,\n media: media,\n rules: style,\n });\n }\n\n /**\n * Parse custom-media.\n */\n function atcustommedia(): CssCustomMediaAST | void {\n const pos = position();\n const m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (!m) {\n return;\n }\n\n return pos<CssCustomMediaAST>({\n type: CssTypes.customMedia,\n name: trim(m[1]),\n media: trim(m[2]),\n });\n }\n\n /**\n * Parse paged media.\n */\n function atpage(): CssPageAST | void {\n const pos = position();\n const m = match(/^@page */);\n if (!m) {\n return;\n }\n\n const sel = selector() || [];\n\n if (!open()) {\n return error(\"@page missing '{'\");\n }\n let decls = comments<CssDeclarationAST>();\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n\n if (!close()) {\n return error(\"@page missing '}'\");\n }\n\n return pos<CssPageAST>({\n type: CssTypes.page,\n selectors: sel,\n declarations: decls,\n });\n }\n\n /**\n * Parse document.\n */\n function atdocument(): CssDocumentAST | void {\n const pos = position();\n const m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (!m) {\n return;\n }\n\n const vendor = trim(m[1]);\n const doc = trim(m[2]);\n\n if (!open()) {\n return error(\"@document missing '{'\");\n }\n\n const style = comments<CssAtRuleAST>().concat(rules());\n\n if (!close()) {\n return error(\"@document missing '}'\");\n }\n\n return pos<CssDocumentAST>({\n type: CssTypes.document,\n document: doc,\n vendor: vendor,\n rules: style,\n });\n }\n\n /**\n * Parse font-face.\n */\n function atfontface(): CssFontFaceAST | void {\n const pos = position();\n const m = match(/^@font-face\\s*/);\n if (!m) {\n return;\n }\n\n if (!open()) {\n return error(\"@font-face missing '{'\");\n }\n let decls = comments<CssDeclarationAST>();\n\n // declarations\n let decl;\n while ((decl = declaration())) {\n decls.push(decl);\n decls = decls.concat(comments());\n }\n\n if (!close()) {\n return error(\"@font-face missing '}'\");\n }\n\n return pos<CssFontFaceAST>({\n type: CssTypes.fontFace,\n declarations: decls,\n });\n }\n\n /**\n * Parse import\n */\n const atimport = _compileAtrule<CssImportAST>('import');\n\n /**\n * Parse charset\n */\n const atcharset = _compileAtrule<CssCharsetAST>('charset');\n\n /**\n * Parse namespace\n */\n const atnamespace = _compileAtrule<CssNamespaceAST>('namespace');\n\n /**\n * Parse non-block at-rules\n */\n function _compileAtrule<T1 extends CssCommonPositionAST>(\n name: string\n ): () => T1 | void {\n const re = new RegExp(\n '^@' +\n name +\n '\\\\s*((:?[^;\\'\"]|\"(?:\\\\\\\\\"|[^\"])*?\"|\\'(?:\\\\\\\\\\'|[^\\'])*?\\')+);'\n );\n\n // ^@import\\s*([^;\"']|(\"|')(?:\\\\\\2|.)*?\\2)+;\n\n return function (): T1 | void {\n const pos = position();\n const m = match(re);\n if (!m) {\n return;\n }\n const ret: Record<string, string> = {type: name};\n ret[name] = m[1].trim();\n return pos<T1>(ret as unknown as T1) as T1;\n };\n }\n\n /**\n * Parse at rule.\n */\n function atrule(): CssAtRuleAST | void {\n if (css[0] !== '@') {\n return;\n }\n\n return (\n atkeyframes() ||\n atmedia() ||\n atcustommedia() ||\n atsupports() ||\n atimport() ||\n atcharset() ||\n atnamespace() ||\n atdocument() ||\n atpage() ||\n athost() ||\n atfontface() ||\n atcontainer() ||\n atlayer()\n );\n }\n\n /**\n * Parse rule.\n */\n function rule() {\n const pos = position();\n const sel = selector();\n\n if (!sel) {\n return error('selector missing');\n }\n comments();\n\n return pos<CssRuleAST>({\n type: CssTypes.rule,\n selectors: sel,\n declarations: declarations() || [],\n });\n }\n\n return addParent(stylesheet());\n};\n\n/**\n * Trim `str`.\n */\nfunction trim(str: string) {\n return str ? str.trim() : '';\n}\n\n/**\n * Adds non-enumerable parent node reference to each node.\n */\nfunction addParent<T1 extends {type?: string}>(obj: T1, parent?: unknown): T1 {\n const isNode = obj && typeof obj.type === 'string';\n const childParent = isNode ? obj : parent;\n\n for (const k in obj) {\n const value = obj[k];\n if (Array.isArray(value)) {\n value.forEach(v => {\n addParent(v, childParent);\n });\n } else if (value && typeof value === 'object') {\n addParent(value, childParent);\n }\n }\n\n if (isNode) {\n Object.defineProperty(obj, 'parent', {\n configurable: true,\n writable: true,\n enumerable: false,\n value: parent || null,\n });\n }\n\n return obj;\n}\n\nexport default parse;\n","import {\n CssAllNodesAST,\n CssCharsetAST,\n CssCommentAST,\n CssCommonPositionAST,\n CssContainerAST,\n CssCustomMediaAST,\n CssDeclarationAST,\n CssDocumentAST,\n CssFontFaceAST,\n CssHostAST,\n CssImportAST,\n CssKeyframeAST,\n CssKeyframesAST,\n CssLayerAST,\n CssMediaAST,\n CssNamespaceAST,\n CssPageAST,\n CssRuleAST,\n CssStylesheetAST,\n CssSupportsAST,\n CssTypes,\n} from '../type';\n\nclass Compiler {\n level = 0;\n indentation = ' ';\n compress = false;\n\n constructor(options?: {indent?: string; compress?: boolean}) {\n if (typeof options?.indent === 'string') {\n this.indentation = options?.indent;\n }\n if (options?.compress) {\n this.compress = true;\n }\n }\n\n // We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emit(str: string, _position?: CssCommonPositionAST['position']) {\n return str;\n }\n\n /**\n * Increase, decrease or return current indentation.\n */\n indent(level?: number) {\n this.level = this.level || 1;\n\n if (level) {\n this.level += level;\n return '';\n }\n\n return Array(this.level).join(this.indentation);\n }\n\n visit(node: CssAllNodesAST): string {\n switch (node.type) {\n case CssTypes.stylesheet:\n return this.stylesheet(node);\n case CssTypes.rule:\n return this.rule(node);\n case CssTypes.declaration:\n return this.declaration(node);\n case CssTypes.comment:\n return this.comment(node);\n case CssTypes.container:\n return this.container(node);\n case CssTypes.charset:\n return this.charset(node);\n case CssTypes.document:\n return this.document(node);\n case CssTypes.customMedia:\n return this.customMedia(node);\n case CssTypes.fontFace:\n return this.fontFace(node);\n case CssTypes.host:\n return this.host(node);\n case CssTypes.import:\n return this.import(node);\n case CssTypes.keyframes:\n return this.keyframes(node);\n case CssTypes.keyframe:\n return this.keyframe(node);\n case CssTypes.layer:\n return this.layer(node);\n case CssTypes.media:\n return this.media(node);\n case CssTypes.namespace:\n return this.namespace(node);\n case CssTypes.page:\n return this.page(node);\n case CssTypes.supports:\n return this.supports(node);\n }\n }\n\n mapVisit(nodes: Array<CssAllNodesAST>, delim?: string) {\n let buf = '';\n delim = delim || '';\n\n for (let i = 0, length = nodes.length; i < length; i++) {\n buf += this.visit(nodes[i]);\n if (delim && i < length - 1) {\n buf += this.emit(delim);\n }\n }\n\n return buf;\n }\n\n compile(node: CssStylesheetAST) {\n if (this.compress) {\n return node.stylesheet.rules.map(this.visit, this).join('');\n }\n\n return this.stylesheet(node);\n }\n\n /**\n * Visit stylesheet node.\n */\n stylesheet(node: CssStylesheetAST) {\n return this.mapVisit(node.stylesheet.rules, '\\n\\n');\n }\n\n /**\n * Visit comment node.\n */\n comment(node: CssCommentAST) {\n if (this.compress) {\n return this.emit('', node.position);\n }\n return this.emit(this.indent() + '/*' + node.comment + '*/', node.position);\n }\n\n /**\n * Visit container node.\n */\n container(node: CssContainerAST) {\n if (this.compress) {\n return (\n this.emit('@container ' + node.container, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@container ' + node.container, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit container node.\n */\n layer(node: CssLayerAST) {\n if (this.compress) {\n return (\n this.emit('@layer ' + node.layer, node.position) +\n (node.rules\n ? this.emit('{') +\n this.mapVisit(<CssAllNodesAST[]>node.rules) +\n this.emit('}')\n : ';')\n );\n }\n return (\n this.emit(this.indent() + '@layer ' + node.layer, node.position) +\n (node.rules\n ? this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(<CssAllNodesAST[]>node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n : ';')\n );\n }\n\n /**\n * Visit import node.\n */\n import(node: CssImportAST) {\n return this.emit('@import ' + node.import + ';', node.position);\n }\n\n /**\n * Visit media node.\n */\n media(node: CssMediaAST) {\n if (this.compress) {\n return (\n this.emit('@media ' + node.media, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@media ' + node.media, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit document node.\n */\n document(node: CssDocumentAST) {\n const doc = '@' + (node.vendor || '') + 'document ' + node.document;\n if (this.compress) {\n return (\n this.emit(doc, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(doc, node.position) +\n this.emit(' ' + ' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit(this.indent(-1) + '\\n}')\n );\n }\n\n /**\n * Visit charset node.\n */\n charset(node: CssCharsetAST) {\n return this.emit('@charset ' + node.charset + ';', node.position);\n }\n\n /**\n * Visit namespace node.\n */\n namespace(node: CssNamespaceAST) {\n return this.emit('@namespace ' + node.namespace + ';', node.position);\n }\n\n /**\n * Visit supports node.\n */\n supports(node: CssSupportsAST) {\n if (this.compress) {\n return (\n this.emit('@supports ' + node.supports, node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit(this.indent() + '@supports ' + node.supports, node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit('\\n' + this.indent(-1) + this.indent() + '}')\n );\n }\n\n /**\n * Visit keyframes node.\n */\n keyframes(node: CssKeyframesAST) {\n if (this.compress) {\n return (\n this.emit(\n '@' + (node.vendor || '') + 'keyframes ' + node.name,\n node.position\n ) +\n this.emit('{') +\n this.mapVisit(node.keyframes) +\n this.emit('}')\n );\n }\n return (\n this.emit(\n '@' + (node.vendor || '') + 'keyframes ' + node.name,\n node.position\n ) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.keyframes, '\\n') +\n this.emit(this.indent(-1) + '}')\n );\n }\n\n /**\n * Visit keyframe node.\n */\n keyframe(node: CssKeyframeAST) {\n const decls = node.declarations;\n if (this.compress) {\n return (\n this.emit(node.values.join(','), node.position) +\n this.emit('{') +\n this.mapVisit(decls) +\n this.emit('}')\n );\n }\n\n return (\n this.emit(this.indent()) +\n this.emit(node.values.join(', '), node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(decls, '\\n') +\n this.emit(this.indent(-1) + '\\n' + this.indent() + '}\\n')\n );\n }\n\n /**\n * Visit page node.\n */\n page(node: CssPageAST) {\n if (this.compress) {\n const sel = node.selectors.length ? node.selectors.join(', ') : '';\n\n return (\n this.emit('@page ' + sel, node.position) +\n this.emit('{') +\n this.mapVisit(node.declarations) +\n this.emit('}')\n );\n }\n const sel = node.selectors.length ? node.selectors.join(', ') + ' ' : '';\n\n return (\n this.emit('@page ' + sel, node.position) +\n this.emit('{\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(node.declarations, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n}')\n );\n }\n\n /**\n * Visit font-face node.\n */\n fontFace(node: CssFontFaceAST) {\n if (this.compress) {\n return (\n this.emit('@font-face', node.position) +\n this.emit('{') +\n this.mapVisit(node.declarations) +\n this.emit('}')\n );\n }\n return (\n this.emit('@font-face ', node.position) +\n this.emit('{\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(node.declarations, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n}')\n );\n }\n\n /**\n * Visit host node.\n */\n host(node: CssHostAST) {\n if (this.compress) {\n return (\n this.emit('@host', node.position) +\n this.emit('{') +\n this.mapVisit(node.rules) +\n this.emit('}')\n );\n }\n return (\n this.emit('@host', node.position) +\n this.emit(' {\\n' + this.indent(1)) +\n this.mapVisit(node.rules, '\\n\\n') +\n this.emit(this.indent(-1) + '\\n}')\n );\n }\n\n /**\n * Visit custom-media node.\n */\n customMedia(node: CssCustomMediaAST) {\n return this.emit(\n '@custom-media ' + node.name + ' ' + node.media + ';',\n node.position\n );\n }\n\n /**\n * Visit rule node.\n */\n rule(node: CssRuleAST) {\n const decls = node.declarations;\n if (!decls.length) {\n return '';\n }\n\n if (this.compress) {\n return (\n this.emit(node.selectors.join(','), node.position) +\n this.emit('{') +\n this.mapVisit(decls) +\n this.emit('}')\n );\n }\n const indent = this.indent();\n\n return (\n this.emit(\n node.selectors\n .map(s => {\n return indent + s;\n })\n .join(',\\n'),\n node.position\n ) +\n this.emit(' {\\n') +\n this.emit(this.indent(1)) +\n this.mapVisit(decls, '\\n') +\n this.emit(this.indent(-1)) +\n this.emit('\\n' + this.indent() + '}')\n );\n }\n\n /**\n * Visit declaration node.\n */\n declaration(node: CssDeclarationAST) {\n if (this.compress) {\n return (\n this.emit(node.property + ':' + node.value, node.position) +\n this.emit(';')\n );\n }\n return (\n this.emit(this.indent()) +\n this.emit(node.property + ': ' + node.value, node.position) +\n this.emit(';')\n );\n }\n}\n\nexport default Compiler;\n","import {CssStylesheetAST} from '../type';\nimport Compiler from './compiler';\n\nexport default (\n node: CssStylesheetAST,\n options?: ConstructorParameters<typeof Compiler>[0]\n) => {\n const compiler = new Compiler(options || {});\n return compiler.compile(node);\n};\n","import CssParseError from './CssParseError';\nimport Position from './CssPosition';\n\nexport enum CssTypes {\n stylesheet = 'stylesheet',\n rule = 'rule',\n declaration = 'declaration',\n comment = 'comment',\n container = 'container',\n charset = 'charset',\n document = 'document',\n customMedia = 'custom-media',\n fontFace = 'font-face',\n host = 'host',\n import = 'import',\n keyframes = 'keyframes',\n keyframe = 'keyframe',\n layer = 'layer',\n media = 'media',\n namespace = 'namespace',\n page = 'page',\n supports = 'supports',\n}\n\nexport type CssCommonAST = {\n type: CssTypes;\n};\n\nexport type CssCommonPositionAST = CssCommonAST & {\n position?: Position;\n parent?: unknown;\n};\n\nexport type CssStylesheetAST = CssCommonAST & {\n type: CssTypes.stylesheet;\n stylesheet: {\n source?: string;\n rules: Array<CssAtRuleAST>;\n parsingErrors?: Array<CssParseError>;\n };\n};\n\nexport type CssRuleAST = CssCommonPositionAST & {\n type: CssTypes.rule;\n selectors: Array<string>;\n declarations: Array<CssDeclarationAST | CssCommentAST>;\n};\n\nexport type CssDeclarationAST = CssCommonPositionAST & {\n type: CssTypes.declaration;\n property: string;\n value: string;\n};\n\nexport type CssCommentAST = CssCommonPositionAST & {\n type: CssTypes.comment;\n comment: string;\n};\nexport type CssContainerAST = CssCommonPositionAST & {\n type: CssTypes.container;\n container: string;\n rules: Array<CssAtRuleAST>;\n};\n\nexport type CssCharsetAST = CssCommonPositionAST & {\n type: CssTypes.charset;\n charset: string;\n};\nexport type CssCustomMediaAST = CssCommonPositionAST & {\n type: CssTypes.customMedia;\n name: string;\n media: string;\n};\nexport type CssDocumentAST = CssCommonPositionAST & {\n type: CssTypes.document;\n document: string;\n vendor?: string;\n rules: Array<CssAtRuleAST>;\n};\nexport type CssFontFaceAST = CssCommonPositionAST & {\n type: CssTypes.fontFace;\n declarations: Array<CssDeclarationAST | CssCommentAST>;\n};\nexport type CssHostAST = CssCommonPositionAST & {\n type: CssTypes.host;\n rules: Array<CssAtRuleAST>;\n};\nexport type CssImportAST = CssCommonPositionAST & {\n type: CssTypes.import;\n import: string;\n};\nexport type CssKeyframesAST = CssCommonPositionAST & {\n type: CssTypes.keyframes;\n name: string;\n vendor?: string;\n keyframes: Array<CssKeyframeAST | CssCommentAST>;\n};\nexport type CssKeyframeAST = CssCommonPositionAST & {\n type: CssTypes.keyframe;\n values: Array<string>;\n declarations: Array<CssDeclarationAST | CssCommentAST>;\n};\nexport type CssLayerAST = CssCommonPositionAST & {\n type: CssTypes.layer;\n layer: string;\n rules?: Array<CssAtRuleAST>;\n};\nexport type CssMediaAST = CssCommonPositionAST & {\n type: CssTypes.media;\n media: string;\n rules: Array<CssAtRuleAST>;\n};\nexport type CssNamespaceAST = CssCommonPositionAST & {\n type: CssTypes.namespace;\n namespace: string;\n};\nexport type CssPageAST = CssCommonPositionAST & {\n type: CssTypes.page;\n selectors: Array<string>;\n declarations: Array<CssDeclarationAST | CssCommentAST>;\n};\nexport type CssSupportsAST = CssCommonPositionAST & {\n type: CssTypes.supports;\n supports: string;\n rules: Array<CssAtRuleAST>;\n};\n\nexport type CssAtRuleAST =\n | CssRuleAST\n | CssCommentAST\n | CssContainerAST\n | CssCharsetAST\n | CssCustomMediaAST\n | CssDocumentAST\n | CssFontFaceAST\n | CssHostAST\n | CssImportAST\n | CssKeyframesAST\n | CssLayerAST\n | CssMediaAST\n | CssNamespaceAST\n | CssPageAST\n | CssSupportsAST;\n\nexport type CssAllNodesAST =\n | CssAtRuleAST\n | CssStylesheetAST\n | CssDeclarationAST\n | CssKeyframeAST;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(607);\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise<Response> | Response | Promise<any> | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise<Response> | Response | Promise<any> | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n (): Promise<Omit<R, ImmutableRouteKey>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n detectErrorBoundary: DetectErrorBoundaryFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n hasErrorBoundary: detectErrorBoundary(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n hasErrorBoundary: detectErrorBoundary(route),\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n detectErrorBoundary,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch<string, RouteObjectType>(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam<Path>;\n const starParam = params[star];\n\n // Apply the splat\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam<Path>];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n\n return param;\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce<Mutable<Params>>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set<string> = new Set<string>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record<string, unknown>;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record<string, unknown>,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise<void>;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): Promise<void>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key?: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n\n /**\n * Map of current blockers\n */\n blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n activeDeferreds: Record<string, DeferredData> | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise<any>;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit<LinkNavigateOptions, \"replace\">\n | Omit<SubmissionNavigateOptions, \"replace\">;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultDetectErrorBoundary = (route: AgnosticRouteObject) =>\n Boolean(route.hasErrorBoundary);\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let detectErrorBoundary =\n init.detectErrorBoundary || defaultDetectErrorBoundary;\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set<string>();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map<string, BlockerFunction>();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (state.initialized) {\n return router;\n }\n\n let lazyMatches = state.matches.filter((m) => m.route.lazy);\n\n if (lazyMatches.length === 0) {\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n startNavigation(HistoryAction.Pop, state.location);\n return router;\n }\n\n // Load lazy modules, then kick off initial data load if needed\n let lazyPromises = lazyMatches.map((m) =>\n loadLazyRouteModule(m.route, detectErrorBoundary, manifest)\n );\n Promise.all(lazyPromises).then(() => {\n let initialized =\n !state.matches.some((m) => m.route.loader) ||\n init.hydrationData != null;\n if (initialized) {\n // We already have required loaderData so we can just set initialized\n updateState({ initialized: true });\n } else {\n // We still need to kick off initial data loads\n startNavigation(HistoryAction.Pop, state.location);\n }\n });\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial<RouterState>): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a <Form method=\"post\"> which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n init.basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename =\n stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n router.basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n manifest,\n detectErrorBoundary,\n router.basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let detectErrorBoundary =\n opts?.detectErrorBoundary || defaultDetectErrorBoundary;\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n detectErrorBoundary,\n undefined,\n manifest\n );\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n detectErrorBoundary,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map<string, DeferredData>();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set<string>(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map<string, FetchLoadMatch>,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({ key, ...f, matches: null, match: null });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n matches: fetcherMatches,\n match: fetcherMatch,\n ...f,\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters<ShouldRevalidateFunction>[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record<string, any> = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to detectErrorBoundary\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `detectErrorBoundary` function to set the `hasErrorBoundary` route\n // property since the logic will differ between frameworks.\n hasErrorBoundary: detectErrorBoundary({ ...routeToUpdate }),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n detectErrorBoundary: DetectErrorBoundaryFunction,\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise<DataResult> {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, detectErrorBoundary, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, detectErrorBoundary, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n throw getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else {\n invariant<Function>(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","\"use strict\";\n\nvar extensions = _interopRequireWildcard(require(\"./matchers\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nexpect.extend(extensions);","\"use strict\";\n\nrequire(\"./extend-expect\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"toBeChecked\", {\n enumerable: true,\n get: function () {\n return _toBeChecked.toBeChecked;\n }\n});\nObject.defineProperty(exports, \"toBeDisabled\", {\n enumerable: true,\n get: function () {\n return _toBeDisabled.toBeDisabled;\n }\n});\nObject.defineProperty(exports, \"toBeEmpty\", {\n enumerable: true,\n get: function () {\n return _toBeEmpty.toBeEmpty;\n }\n});\nObject.defineProperty(exports, \"toBeEmptyDOMElement\", {\n enumerable: true,\n get: function () {\n return _toBeEmptyDomElement.toBeEmptyDOMElement;\n }\n});\nObject.defineProperty(exports, \"toBeEnabled\", {\n enumerable: true,\n get: function () {\n return _toBeDisabled.toBeEnabled;\n }\n});\nObject.defineProperty(exports, \"toBeInTheDOM\", {\n enumerable: true,\n get: function () {\n return _toBeInTheDom.toBeInTheDOM;\n }\n});\nObject.defineProperty(exports, \"toBeInTheDocument\", {\n enumerable: true,\n get: function () {\n return _toBeInTheDocument.toBeInTheDocument;\n }\n});\nObject.defineProperty(exports, \"toBeInvalid\", {\n enumerable: true,\n get: function () {\n return _toBeInvalid.toBeInvalid;\n }\n});\nObject.defineProperty(exports, \"toBePartiallyChecked\", {\n enumerable: true,\n get: function () {\n return _toBePartiallyChecked.toBePartiallyChecked;\n }\n});\nObject.defineProperty(exports, \"toBeRequired\", {\n enumerable: true,\n get: function () {\n return _toBeRequired.toBeRequired;\n }\n});\nObject.defineProperty(exports, \"toBeValid\", {\n enumerable: true,\n get: function () {\n return _toBeInvalid.toBeValid;\n }\n});\nObject.defineProperty(exports, \"toBeVisible\", {\n enumerable: true,\n get: function () {\n return _toBeVisible.toBeVisible;\n }\n});\nObject.defineProperty(exports, \"toContainElement\", {\n enumerable: true,\n get: function () {\n return _toContainElement.toContainElement;\n }\n});\nObject.defineProperty(exports, \"toContainHTML\", {\n enumerable: true,\n get: function () {\n return _toContainHtml.toContainHTML;\n }\n});\nObject.defineProperty(exports, \"toHaveAccessibleDescription\", {\n enumerable: true,\n get: function () {\n return _toHaveAccessibleDescription.toHaveAccessibleDescription;\n }\n});\nObject.defineProperty(exports, \"toHaveAccessibleName\", {\n enumerable: true,\n get: function () {\n return _toHaveAccessibleName.toHaveAccessibleName;\n }\n});\nObject.defineProperty(exports, \"toHaveAttribute\", {\n enumerable: true,\n get: function () {\n return _toHaveAttribute.toHaveAttribute;\n }\n});\nObject.defineProperty(exports, \"toHaveClass\", {\n enumerable: true,\n get: function () {\n return _toHaveClass.toHaveClass;\n }\n});\nObject.defineProperty(exports, \"toHaveDescription\", {\n enumerable: true,\n get: function () {\n return _toHaveDescription.toHaveDescription;\n }\n});\nObject.defineProperty(exports, \"toHaveDisplayValue\", {\n enumerable: true,\n get: function () {\n return _toHaveDisplayValue.toHaveDisplayValue;\n }\n});\nObject.defineProperty(exports, \"toHaveErrorMessage\", {\n enumerable: true,\n get: function () {\n return _toHaveErrormessage.toHaveErrorMessage;\n }\n});\nObject.defineProperty(exports, \"toHaveFocus\", {\n enumerable: true,\n get: function () {\n return _toHaveFocus.toHaveFocus;\n }\n});\nObject.defineProperty(exports, \"toHaveFormValues\", {\n enumerable: true,\n get: function () {\n return _toHaveFormValues.toHaveFormValues;\n }\n});\nObject.defineProperty(exports, \"toHaveStyle\", {\n enumerable: true,\n get: function () {\n return _toHaveStyle.toHaveStyle;\n }\n});\nObject.defineProperty(exports, \"toHaveTextContent\", {\n enumerable: true,\n get: function () {\n return _toHaveTextContent.toHaveTextContent;\n }\n});\nObject.defineProperty(exports, \"toHaveValue\", {\n enumerable: true,\n get: function () {\n return _toHaveValue.toHaveValue;\n }\n});\n\nvar _toBeInTheDom = require(\"./to-be-in-the-dom\");\n\nvar _toBeInTheDocument = require(\"./to-be-in-the-document\");\n\nvar _toBeEmpty = require(\"./to-be-empty\");\n\nvar _toBeEmptyDomElement = require(\"./to-be-empty-dom-element\");\n\nvar _toContainElement = require(\"./to-contain-element\");\n\nvar _toContainHtml = require(\"./to-contain-html\");\n\nvar _toHaveTextContent = require(\"./to-have-text-content\");\n\nvar _toHaveAccessibleDescription = require(\"./to-have-accessible-description\");\n\nvar _toHaveAccessibleName = require(\"./to-have-accessible-name\");\n\nvar _toHaveAttribute = require(\"./to-have-attribute\");\n\nvar _toHaveClass = require(\"./to-have-class\");\n\nvar _toHaveStyle = require(\"./to-have-style\");\n\nvar _toHaveFocus = require(\"./to-have-focus\");\n\nvar _toHaveFormValues = require(\"./to-have-form-values\");\n\nvar _toBeVisible = require(\"./to-be-visible\");\n\nvar _toBeDisabled = require(\"./to-be-disabled\");\n\nvar _toBeRequired = require(\"./to-be-required\");\n\nvar _toBeInvalid = require(\"./to-be-invalid\");\n\nvar _toHaveValue = require(\"./to-have-value\");\n\nvar _toHaveDisplayValue = require(\"./to-have-display-value\");\n\nvar _toBeChecked = require(\"./to-be-checked\");\n\nvar _toBePartiallyChecked = require(\"./to-be-partially-checked\");\n\nvar _toHaveDescription = require(\"./to-have-description\");\n\nvar _toHaveErrormessage = require(\"./to-have-errormessage\");","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeChecked = toBeChecked;\n\nvar _ariaQuery = require(\"aria-query\");\n\nvar _utils = require(\"./utils\");\n\nfunction toBeChecked(element) {\n (0, _utils.checkHtmlElement)(element, toBeChecked, this);\n\n const isValidInput = () => {\n return element.tagName.toLowerCase() === 'input' && ['checkbox', 'radio'].includes(element.type);\n };\n\n const isValidAriaElement = () => {\n return roleSupportsChecked(element.getAttribute('role')) && ['true', 'false'].includes(element.getAttribute('aria-checked'));\n };\n\n if (!isValidInput() && !isValidAriaElement()) {\n return {\n pass: false,\n message: () => `only inputs with type=\"checkbox\" or type=\"radio\" or elements with ${supportedRolesSentence()} and a valid aria-checked attribute can be used with .toBeChecked(). Use .toHaveValue() instead`\n };\n }\n\n const isChecked = () => {\n if (isValidInput()) return element.checked;\n return element.getAttribute('aria-checked') === 'true';\n };\n\n return {\n pass: isChecked(),\n message: () => {\n const is = isChecked() ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeChecked`, 'element', ''), '', `Received element ${is} checked:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}\n\nfunction supportedRolesSentence() {\n return (0, _utils.toSentence)(supportedRoles().map(role => `role=\"${role}\"`), {\n lastWordConnector: ' or '\n });\n}\n\nfunction supportedRoles() {\n return _ariaQuery.roles.keys().filter(roleSupportsChecked);\n}\n\nfunction roleSupportsChecked(role) {\n var _roles$get;\n\n return ((_roles$get = _ariaQuery.roles.get(role)) == null ? void 0 : _roles$get.props['aria-checked']) !== undefined;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeDisabled = toBeDisabled;\nexports.toBeEnabled = toBeEnabled;\n\nvar _utils = require(\"./utils\");\n\n// form elements that support 'disabled'\nconst FORM_TAGS = ['fieldset', 'input', 'select', 'optgroup', 'option', 'button', 'textarea'];\n/*\n * According to specification:\n * If <fieldset> is disabled, the form controls that are its descendants,\n * except descendants of its first optional <legend> element, are disabled\n *\n * https://html.spec.whatwg.org/multipage/form-elements.html#concept-fieldset-disabled\n *\n * This method tests whether element is first legend child of fieldset parent\n */\n\nfunction isFirstLegendChildOfFieldset(element, parent) {\n return (0, _utils.getTag)(element) === 'legend' && (0, _utils.getTag)(parent) === 'fieldset' && element.isSameNode(Array.from(parent.children).find(child => (0, _utils.getTag)(child) === 'legend'));\n}\n\nfunction isElementDisabledByParent(element, parent) {\n return isElementDisabled(parent) && !isFirstLegendChildOfFieldset(element, parent);\n}\n\nfunction isCustomElement(tag) {\n return tag.includes('-');\n}\n/*\n * Only certain form elements and custom elements can actually be disabled:\n * https://html.spec.whatwg.org/multipage/semantics-other.html#disabled-elements\n */\n\n\nfunction canElementBeDisabled(element) {\n const tag = (0, _utils.getTag)(element);\n return FORM_TAGS.includes(tag) || isCustomElement(tag);\n}\n\nfunction isElementDisabled(element) {\n return canElementBeDisabled(element) && element.hasAttribute('disabled');\n}\n\nfunction isAncestorDisabled(element) {\n const parent = element.parentElement;\n return Boolean(parent) && (isElementDisabledByParent(element, parent) || isAncestorDisabled(parent));\n}\n\nfunction isElementOrAncestorDisabled(element) {\n return canElementBeDisabled(element) && (isElementDisabled(element) || isAncestorDisabled(element));\n}\n\nfunction toBeDisabled(element) {\n (0, _utils.checkHtmlElement)(element, toBeDisabled, this);\n const isDisabled = isElementOrAncestorDisabled(element);\n return {\n pass: isDisabled,\n message: () => {\n const is = isDisabled ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeDisabled`, 'element', ''), '', `Received element ${is} disabled:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}\n\nfunction toBeEnabled(element) {\n (0, _utils.checkHtmlElement)(element, toBeEnabled, this);\n const isEnabled = !isElementOrAncestorDisabled(element);\n return {\n pass: isEnabled,\n message: () => {\n const is = isEnabled ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeEnabled`, 'element', ''), '', `Received element ${is} enabled:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeEmptyDOMElement = toBeEmptyDOMElement;\n\nvar _utils = require(\"./utils\");\n\nfunction toBeEmptyDOMElement(element) {\n (0, _utils.checkHtmlElement)(element, toBeEmptyDOMElement, this);\n return {\n pass: isEmptyElement(element),\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeEmptyDOMElement`, 'element', ''), '', 'Received:', ` ${this.utils.printReceived(element.innerHTML)}`].join('\\n');\n }\n };\n}\n/**\n * Identifies if an element doesn't contain child nodes (excluding comments)\n * ℹ Node.COMMENT_NODE can't be used because of the following issue \n * https://github.com/jsdom/jsdom/issues/2220\n *\n * @param {*} element an HtmlElement or SVGElement\n * @return {*} true if the element only contains comments or none\n */\n\n\nfunction isEmptyElement(element) {\n const nonCommentChildNodes = [...element.childNodes].filter(node => node.nodeType !== 8);\n return nonCommentChildNodes.length === 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeEmpty = toBeEmpty;\n\nvar _utils = require(\"./utils\");\n\nfunction toBeEmpty(element) {\n (0, _utils.deprecate)('toBeEmpty', 'Please use instead toBeEmptyDOMElement for finding empty nodes in the DOM.');\n (0, _utils.checkHtmlElement)(element, toBeEmpty, this);\n return {\n pass: element.innerHTML === '',\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeEmpty`, 'element', ''), '', 'Received:', ` ${this.utils.printReceived(element.innerHTML)}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeInTheDocument = toBeInTheDocument;\n\nvar _utils = require(\"./utils\");\n\nfunction toBeInTheDocument(element) {\n if (element !== null || !this.isNot) {\n (0, _utils.checkHtmlElement)(element, toBeInTheDocument, this);\n }\n\n const pass = element === null ? false : element.ownerDocument === element.getRootNode({\n composed: true\n });\n\n const errorFound = () => {\n return `expected document not to contain element, found ${this.utils.stringify(element.cloneNode(true))} instead`;\n };\n\n const errorNotFound = () => {\n return `element could not be found in the document`;\n };\n\n return {\n pass,\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeInTheDocument`, 'element', ''), '', // eslint-disable-next-line @babel/new-cap\n this.utils.RECEIVED_COLOR(this.isNot ? errorFound() : errorNotFound())].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeInTheDOM = toBeInTheDOM;\n\nvar _utils = require(\"./utils\");\n\nfunction toBeInTheDOM(element, container) {\n (0, _utils.deprecate)('toBeInTheDOM', 'Please use toBeInTheDocument for searching the entire document and toContainElement for searching a specific container.');\n\n if (element) {\n (0, _utils.checkHtmlElement)(element, toBeInTheDOM, this);\n }\n\n if (container) {\n (0, _utils.checkHtmlElement)(container, toBeInTheDOM, this);\n }\n\n return {\n pass: container ? container.contains(element) : !!element,\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeInTheDOM`, 'element', ''), '', 'Received:', ` ${this.utils.printReceived(element ? element.cloneNode(false) : element)}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeInvalid = toBeInvalid;\nexports.toBeValid = toBeValid;\n\nvar _utils = require(\"./utils\");\n\nconst FORM_TAGS = ['form', 'input', 'select', 'textarea'];\n\nfunction isElementHavingAriaInvalid(element) {\n return element.hasAttribute('aria-invalid') && element.getAttribute('aria-invalid') !== 'false';\n}\n\nfunction isSupportsValidityMethod(element) {\n return FORM_TAGS.includes((0, _utils.getTag)(element));\n}\n\nfunction isElementInvalid(element) {\n const isHaveAriaInvalid = isElementHavingAriaInvalid(element);\n\n if (isSupportsValidityMethod(element)) {\n return isHaveAriaInvalid || !element.checkValidity();\n } else {\n return isHaveAriaInvalid;\n }\n}\n\nfunction toBeInvalid(element) {\n (0, _utils.checkHtmlElement)(element, toBeInvalid, this);\n const isInvalid = isElementInvalid(element);\n return {\n pass: isInvalid,\n message: () => {\n const is = isInvalid ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeInvalid`, 'element', ''), '', `Received element ${is} currently invalid:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}\n\nfunction toBeValid(element) {\n (0, _utils.checkHtmlElement)(element, toBeValid, this);\n const isValid = !isElementInvalid(element);\n return {\n pass: isValid,\n message: () => {\n const is = isValid ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeValid`, 'element', ''), '', `Received element ${is} currently valid:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBePartiallyChecked = toBePartiallyChecked;\n\nvar _utils = require(\"./utils\");\n\nfunction toBePartiallyChecked(element) {\n (0, _utils.checkHtmlElement)(element, toBePartiallyChecked, this);\n\n const isValidInput = () => {\n return element.tagName.toLowerCase() === 'input' && element.type === 'checkbox';\n };\n\n const isValidAriaElement = () => {\n return element.getAttribute('role') === 'checkbox';\n };\n\n if (!isValidInput() && !isValidAriaElement()) {\n return {\n pass: false,\n message: () => 'only inputs with type=\"checkbox\" or elements with role=\"checkbox\" and a valid aria-checked attribute can be used with .toBePartiallyChecked(). Use .toHaveValue() instead'\n };\n }\n\n const isPartiallyChecked = () => {\n const isAriaMixed = element.getAttribute('aria-checked') === 'mixed';\n\n if (isValidInput()) {\n return element.indeterminate || isAriaMixed;\n }\n\n return isAriaMixed;\n };\n\n return {\n pass: isPartiallyChecked(),\n message: () => {\n const is = isPartiallyChecked() ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBePartiallyChecked`, 'element', ''), '', `Received element ${is} partially checked:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeRequired = toBeRequired;\n\nvar _utils = require(\"./utils\");\n\n// form elements that support 'required'\nconst FORM_TAGS = ['select', 'textarea'];\nconst ARIA_FORM_TAGS = ['input', 'select', 'textarea'];\nconst UNSUPPORTED_INPUT_TYPES = ['color', 'hidden', 'range', 'submit', 'image', 'reset'];\nconst SUPPORTED_ARIA_ROLES = ['combobox', 'gridcell', 'radiogroup', 'spinbutton', 'tree'];\n\nfunction isRequiredOnFormTagsExceptInput(element) {\n return FORM_TAGS.includes((0, _utils.getTag)(element)) && element.hasAttribute('required');\n}\n\nfunction isRequiredOnSupportedInput(element) {\n return (0, _utils.getTag)(element) === 'input' && element.hasAttribute('required') && (element.hasAttribute('type') && !UNSUPPORTED_INPUT_TYPES.includes(element.getAttribute('type')) || !element.hasAttribute('type'));\n}\n\nfunction isElementRequiredByARIA(element) {\n return element.hasAttribute('aria-required') && element.getAttribute('aria-required') === 'true' && (ARIA_FORM_TAGS.includes((0, _utils.getTag)(element)) || element.hasAttribute('role') && SUPPORTED_ARIA_ROLES.includes(element.getAttribute('role')));\n}\n\nfunction toBeRequired(element) {\n (0, _utils.checkHtmlElement)(element, toBeRequired, this);\n const isRequired = isRequiredOnFormTagsExceptInput(element) || isRequiredOnSupportedInput(element) || isElementRequiredByARIA(element);\n return {\n pass: isRequired,\n message: () => {\n const is = isRequired ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeRequired`, 'element', ''), '', `Received element ${is} required:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toBeVisible = toBeVisible;\n\nvar _utils = require(\"./utils\");\n\nfunction isStyleVisible(element) {\n const {\n getComputedStyle\n } = element.ownerDocument.defaultView;\n const {\n display,\n visibility,\n opacity\n } = getComputedStyle(element);\n return display !== 'none' && visibility !== 'hidden' && visibility !== 'collapse' && opacity !== '0' && opacity !== 0;\n}\n\nfunction isAttributeVisible(element, previousElement) {\n let detailsVisibility;\n\n if (previousElement) {\n detailsVisibility = element.nodeName === 'DETAILS' && previousElement.nodeName !== 'SUMMARY' ? element.hasAttribute('open') : true;\n } else {\n detailsVisibility = element.nodeName === 'DETAILS' ? element.hasAttribute('open') : true;\n }\n\n return !element.hasAttribute('hidden') && detailsVisibility;\n}\n\nfunction isElementVisible(element, previousElement) {\n return isStyleVisible(element) && isAttributeVisible(element, previousElement) && (!element.parentElement || isElementVisible(element.parentElement, element));\n}\n\nfunction toBeVisible(element) {\n (0, _utils.checkHtmlElement)(element, toBeVisible, this);\n const isInDocument = element.ownerDocument === element.getRootNode({\n composed: true\n });\n const isVisible = isInDocument && isElementVisible(element);\n return {\n pass: isVisible,\n message: () => {\n const is = isVisible ? 'is' : 'is not';\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toBeVisible`, 'element', ''), '', `Received element ${is} visible${isInDocument ? '' : ' (element is not in the document)'}:`, ` ${this.utils.printReceived(element.cloneNode(false))}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toContainElement = toContainElement;\n\nvar _utils = require(\"./utils\");\n\nfunction toContainElement(container, element) {\n (0, _utils.checkHtmlElement)(container, toContainElement, this);\n\n if (element !== null) {\n (0, _utils.checkHtmlElement)(element, toContainElement, this);\n }\n\n return {\n pass: container.contains(element),\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toContainElement`, 'element', 'element'), '', // eslint-disable-next-line @babel/new-cap\n this.utils.RECEIVED_COLOR(`${this.utils.stringify(container.cloneNode(false))} ${this.isNot ? 'contains:' : 'does not contain:'} ${this.utils.stringify(element ? element.cloneNode(false) : element)}\n `)].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toContainHTML = toContainHTML;\n\nvar _utils = require(\"./utils\");\n\nfunction getNormalizedHtml(container, htmlText) {\n const div = container.ownerDocument.createElement('div');\n div.innerHTML = htmlText;\n return div.innerHTML;\n}\n\nfunction toContainHTML(container, htmlText) {\n (0, _utils.checkHtmlElement)(container, toContainHTML, this);\n\n if (typeof htmlText !== 'string') {\n throw new Error(`.toContainHTML() expects a string value, got ${htmlText}`);\n }\n\n return {\n pass: container.outerHTML.includes(getNormalizedHtml(container, htmlText)),\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toContainHTML`, 'element', ''), 'Expected:', // eslint-disable-next-line @babel/new-cap\n ` ${this.utils.EXPECTED_COLOR(htmlText)}`, 'Received:', ` ${this.utils.printReceived(container.cloneNode(true))}`].join('\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveAccessibleDescription = toHaveAccessibleDescription;\n\nvar _domAccessibilityApi = require(\"dom-accessibility-api\");\n\nvar _utils = require(\"./utils\");\n\nfunction toHaveAccessibleDescription(htmlElement, expectedAccessibleDescription) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveAccessibleDescription, this);\n const actualAccessibleDescription = (0, _domAccessibilityApi.computeAccessibleDescription)(htmlElement);\n const missingExpectedValue = arguments.length === 1;\n let pass = false;\n\n if (missingExpectedValue) {\n // When called without an expected value we only want to validate that the element has an\n // accessible description, whatever it may be.\n pass = actualAccessibleDescription !== '';\n } else {\n pass = expectedAccessibleDescription instanceof RegExp ? expectedAccessibleDescription.test(actualAccessibleDescription) : this.equals(actualAccessibleDescription, expectedAccessibleDescription);\n }\n\n return {\n pass,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.${toHaveAccessibleDescription.name}`, 'element', ''), `Expected element ${to} have accessible description`, expectedAccessibleDescription, 'Received', actualAccessibleDescription);\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveAccessibleName = toHaveAccessibleName;\n\nvar _domAccessibilityApi = require(\"dom-accessibility-api\");\n\nvar _utils = require(\"./utils\");\n\nfunction toHaveAccessibleName(htmlElement, expectedAccessibleName) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveAccessibleName, this);\n const actualAccessibleName = (0, _domAccessibilityApi.computeAccessibleName)(htmlElement);\n const missingExpectedValue = arguments.length === 1;\n let pass = false;\n\n if (missingExpectedValue) {\n // When called without an expected value we only want to validate that the element has an\n // accessible name, whatever it may be.\n pass = actualAccessibleName !== '';\n } else {\n pass = expectedAccessibleName instanceof RegExp ? expectedAccessibleName.test(actualAccessibleName) : this.equals(actualAccessibleName, expectedAccessibleName);\n }\n\n return {\n pass,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.${toHaveAccessibleName.name}`, 'element', ''), `Expected element ${to} have accessible name`, expectedAccessibleName, 'Received', actualAccessibleName);\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveAttribute = toHaveAttribute;\n\nvar _utils = require(\"./utils\");\n\nfunction printAttribute(stringify, name, value) {\n return value === undefined ? name : `${name}=${stringify(value)}`;\n}\n\nfunction getAttributeComment(stringify, name, value) {\n return value === undefined ? `element.hasAttribute(${stringify(name)})` : `element.getAttribute(${stringify(name)}) === ${stringify(value)}`;\n}\n\nfunction toHaveAttribute(htmlElement, name, expectedValue) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveAttribute, this);\n const isExpectedValuePresent = expectedValue !== undefined;\n const hasAttribute = htmlElement.hasAttribute(name);\n const receivedValue = htmlElement.getAttribute(name);\n return {\n pass: isExpectedValuePresent ? hasAttribute && this.equals(receivedValue, expectedValue) : hasAttribute,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const receivedAttribute = hasAttribute ? printAttribute(this.utils.stringify, name, receivedValue) : null;\n const matcher = this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveAttribute`, 'element', this.utils.printExpected(name), {\n secondArgument: isExpectedValuePresent ? this.utils.printExpected(expectedValue) : undefined,\n comment: getAttributeComment(this.utils.stringify, name, expectedValue)\n });\n return (0, _utils.getMessage)(this, matcher, `Expected the element ${to} have attribute`, printAttribute(this.utils.stringify, name, expectedValue), 'Received', receivedAttribute);\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveClass = toHaveClass;\n\nvar _utils = require(\"./utils\");\n\nfunction getExpectedClassNamesAndOptions(params) {\n const lastParam = params.pop();\n let expectedClassNames, options;\n\n if (typeof lastParam === 'object') {\n expectedClassNames = params;\n options = lastParam;\n } else {\n expectedClassNames = params.concat(lastParam);\n options = {\n exact: false\n };\n }\n\n return {\n expectedClassNames,\n options\n };\n}\n\nfunction splitClassNames(str) {\n if (!str) {\n return [];\n }\n\n return str.split(/\\s+/).filter(s => s.length > 0);\n}\n\nfunction isSubset(subset, superset) {\n return subset.every(item => superset.includes(item));\n}\n\nfunction toHaveClass(htmlElement, ...params) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveClass, this);\n const {\n expectedClassNames,\n options\n } = getExpectedClassNamesAndOptions(params);\n const received = splitClassNames(htmlElement.getAttribute('class'));\n const expected = expectedClassNames.reduce((acc, className) => acc.concat(splitClassNames(className)), []);\n\n if (options.exact) {\n return {\n pass: isSubset(expected, received) && expected.length === received.length,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveClass`, 'element', this.utils.printExpected(expected.join(' '))), `Expected the element ${to} have EXACTLY defined classes`, expected.join(' '), 'Received', received.join(' '));\n }\n };\n }\n\n return expected.length > 0 ? {\n pass: isSubset(expected, received),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveClass`, 'element', this.utils.printExpected(expected.join(' '))), `Expected the element ${to} have class`, expected.join(' '), 'Received', received.join(' '));\n }\n } : {\n pass: this.isNot ? received.length > 0 : false,\n message: () => this.isNot ? (0, _utils.getMessage)(this, this.utils.matcherHint('.not.toHaveClass', 'element', ''), 'Expected the element to have classes', '(none)', 'Received', received.join(' ')) : [this.utils.matcherHint(`.toHaveClass`, 'element'), 'At least one expected class must be provided.'].join('\\n')\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveDescription = toHaveDescription;\n\nvar _utils = require(\"./utils\");\n\n// See algoritm: https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_description\nfunction toHaveDescription(htmlElement, checkWith) {\n (0, _utils.deprecate)('toHaveDescription', 'Please use toHaveAccessibleDescription.');\n (0, _utils.checkHtmlElement)(htmlElement, toHaveDescription, this);\n const expectsDescription = checkWith !== undefined;\n const descriptionIDRaw = htmlElement.getAttribute('aria-describedby') || '';\n const descriptionIDs = descriptionIDRaw.split(/\\s+/).filter(Boolean);\n let description = '';\n\n if (descriptionIDs.length > 0) {\n const document = htmlElement.ownerDocument;\n const descriptionEls = descriptionIDs.map(descriptionID => document.getElementById(descriptionID)).filter(Boolean);\n description = (0, _utils.normalize)(descriptionEls.map(el => el.textContent).join(' '));\n }\n\n return {\n pass: expectsDescription ? checkWith instanceof RegExp ? checkWith.test(description) : this.equals(description, checkWith) : Boolean(description),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveDescription`, 'element', ''), `Expected the element ${to} have description`, this.utils.printExpected(checkWith), 'Received', this.utils.printReceived(description));\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveDisplayValue = toHaveDisplayValue;\n\nvar _utils = require(\"./utils\");\n\nfunction toHaveDisplayValue(htmlElement, expectedValue) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveDisplayValue, this);\n const tagName = htmlElement.tagName.toLowerCase();\n\n if (!['select', 'input', 'textarea'].includes(tagName)) {\n throw new Error('.toHaveDisplayValue() currently supports only input, textarea or select elements, try with another matcher instead.');\n }\n\n if (tagName === 'input' && ['radio', 'checkbox'].includes(htmlElement.type)) {\n throw new Error(`.toHaveDisplayValue() currently does not support input[type=\"${htmlElement.type}\"], try with another matcher instead.`);\n }\n\n const values = getValues(tagName, htmlElement);\n const expectedValues = getExpectedValues(expectedValue);\n const numberOfMatchesWithValues = expectedValues.filter(expected => values.some(value => expected instanceof RegExp ? expected.test(value) : this.equals(value, String(expected)))).length;\n const matchedWithAllValues = numberOfMatchesWithValues === values.length;\n const matchedWithAllExpectedValues = numberOfMatchesWithValues === expectedValues.length;\n return {\n pass: matchedWithAllValues && matchedWithAllExpectedValues,\n message: () => (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveDisplayValue`, 'element', ''), `Expected element ${this.isNot ? 'not ' : ''}to have display value`, expectedValue, 'Received', values)\n };\n}\n\nfunction getValues(tagName, htmlElement) {\n return tagName === 'select' ? Array.from(htmlElement).filter(option => option.selected).map(option => option.textContent) : [htmlElement.value];\n}\n\nfunction getExpectedValues(expectedValue) {\n return expectedValue instanceof Array ? expectedValue : [expectedValue];\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveErrorMessage = toHaveErrorMessage;\n\nvar _utils = require(\"./utils\");\n\n// See aria-errormessage spec https://www.w3.org/TR/wai-aria-1.2/#aria-errormessage\nfunction toHaveErrorMessage(htmlElement, checkWith) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveErrorMessage, this);\n\n if (!htmlElement.hasAttribute('aria-invalid') || htmlElement.getAttribute('aria-invalid') === 'false') {\n const not = this.isNot ? '.not' : '';\n return {\n pass: false,\n message: () => {\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${not}.toHaveErrorMessage`, 'element', ''), `Expected the element to have invalid state indicated by`, 'aria-invalid=\"true\"', 'Received', htmlElement.hasAttribute('aria-invalid') ? `aria-invalid=\"${htmlElement.getAttribute('aria-invalid')}\"` : this.utils.printReceived(''));\n }\n };\n }\n\n const expectsErrorMessage = checkWith !== undefined;\n const errormessageIDRaw = htmlElement.getAttribute('aria-errormessage') || '';\n const errormessageIDs = errormessageIDRaw.split(/\\s+/).filter(Boolean);\n let errormessage = '';\n\n if (errormessageIDs.length > 0) {\n const document = htmlElement.ownerDocument;\n const errormessageEls = errormessageIDs.map(errormessageID => document.getElementById(errormessageID)).filter(Boolean);\n errormessage = (0, _utils.normalize)(errormessageEls.map(el => el.textContent).join(' '));\n }\n\n return {\n pass: expectsErrorMessage ? checkWith instanceof RegExp ? checkWith.test(errormessage) : this.equals(errormessage, checkWith) : Boolean(errormessage),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveErrorMessage`, 'element', ''), `Expected the element ${to} have error message`, this.utils.printExpected(checkWith), 'Received', this.utils.printReceived(errormessage));\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveFocus = toHaveFocus;\n\nvar _utils = require(\"./utils\");\n\nfunction toHaveFocus(element) {\n (0, _utils.checkHtmlElement)(element, toHaveFocus, this);\n return {\n pass: element.ownerDocument.activeElement === element,\n message: () => {\n return [this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveFocus`, 'element', ''), '', ...(this.isNot ? ['Received element is focused:', ` ${this.utils.printReceived(element)}`] : ['Expected element with focus:', ` ${this.utils.printExpected(element)}`, 'Received element with focus:', ` ${this.utils.printReceived(element.ownerDocument.activeElement)}`])].join('\\n');\n }\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveFormValues = toHaveFormValues;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _isEqualWith = _interopRequireDefault(require(\"lodash/isEqualWith\"));\n\nvar _uniq = _interopRequireDefault(require(\"lodash/uniq\"));\n\nvar _css = _interopRequireDefault(require(\"css.escape\"));\n\nvar _utils = require(\"./utils\");\n\n// Returns the combined value of several elements that have the same name\n// e.g. radio buttons or groups of checkboxes\nfunction getMultiElementValue(elements) {\n const types = (0, _uniq.default)(elements.map(element => element.type));\n\n if (types.length !== 1) {\n throw new Error('Multiple form elements with the same name must be of the same type');\n }\n\n switch (types[0]) {\n case 'radio':\n {\n const theChosenOne = elements.find(radio => radio.checked);\n return theChosenOne ? theChosenOne.value : undefined;\n }\n\n case 'checkbox':\n return elements.filter(checkbox => checkbox.checked).map(checkbox => checkbox.value);\n\n default:\n // NOTE: Not even sure this is a valid use case, but just in case...\n return elements.map(element => element.value);\n }\n}\n\nfunction getFormValue(container, name) {\n const elements = [...container.querySelectorAll(`[name=\"${(0, _css.default)(name)}\"]`)];\n /* istanbul ignore if */\n\n if (elements.length === 0) {\n return undefined; // shouldn't happen, but just in case\n }\n\n switch (elements.length) {\n case 1:\n return (0, _utils.getSingleElementValue)(elements[0]);\n\n default:\n return getMultiElementValue(elements);\n }\n} // Strips the `[]` suffix off a form value name\n\n\nfunction getPureName(name) {\n return /\\[\\]$/.test(name) ? name.slice(0, -2) : name;\n}\n\nfunction getAllFormValues(container) {\n const names = Array.from(container.elements).map(element => element.name);\n return names.reduce((obj, name) => (0, _extends2.default)({}, obj, {\n [getPureName(name)]: getFormValue(container, name)\n }), {});\n}\n\nfunction toHaveFormValues(formElement, expectedValues) {\n (0, _utils.checkHtmlElement)(formElement, toHaveFormValues, this);\n\n if (!formElement.elements) {\n // TODO: Change condition to use instanceof against the appropriate element classes instead\n throw new Error('toHaveFormValues must be called on a form or a fieldset');\n }\n\n const formValues = getAllFormValues(formElement);\n return {\n pass: Object.entries(expectedValues).every(([name, expectedValue]) => (0, _isEqualWith.default)(formValues[name], expectedValue, _utils.compareArraysAsSet)),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const matcher = `${this.isNot ? '.not' : ''}.toHaveFormValues`;\n const commonKeyValues = Object.keys(formValues).filter(key => expectedValues.hasOwnProperty(key)).reduce((obj, key) => (0, _extends2.default)({}, obj, {\n [key]: formValues[key]\n }), {});\n return [this.utils.matcherHint(matcher, 'element', ''), `Expected the element ${to} have form values`, this.utils.diff(expectedValues, commonKeyValues)].join('\\n\\n');\n }\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveStyle = toHaveStyle;\n\nvar _chalk = _interopRequireDefault(require(\"chalk\"));\n\nvar _utils = require(\"./utils\");\n\nfunction getStyleDeclaration(document, css) {\n const styles = {}; // The next block is necessary to normalize colors\n\n const copy = document.createElement('div');\n Object.keys(css).forEach(property => {\n copy.style[property] = css[property];\n styles[property] = copy.style[property];\n });\n return styles;\n}\n\nfunction isSubset(styles, computedStyle) {\n return !!Object.keys(styles).length && Object.entries(styles).every(([prop, value]) => computedStyle[prop] === value || computedStyle.getPropertyValue(prop.toLowerCase()) === value);\n}\n\nfunction printoutStyles(styles) {\n return Object.keys(styles).sort().map(prop => `${prop}: ${styles[prop]};`).join('\\n');\n} // Highlights only style rules that were expected but were not found in the\n// received computed styles\n\n\nfunction expectedDiff(diffFn, expected, computedStyles) {\n const received = Array.from(computedStyles).filter(prop => expected[prop] !== undefined).reduce((obj, prop) => Object.assign(obj, {\n [prop]: computedStyles.getPropertyValue(prop)\n }), {});\n const diffOutput = diffFn(printoutStyles(expected), printoutStyles(received)); // Remove the \"+ Received\" annotation because this is a one-way diff\n\n return diffOutput.replace(`${_chalk.default.red('+ Received')}\\n`, '');\n}\n\nfunction toHaveStyle(htmlElement, css) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveStyle, this);\n const parsedCSS = typeof css === 'object' ? css : (0, _utils.parseCSS)(css, toHaveStyle, this);\n const {\n getComputedStyle\n } = htmlElement.ownerDocument.defaultView;\n const expected = getStyleDeclaration(htmlElement.ownerDocument, parsedCSS);\n const received = getComputedStyle(htmlElement);\n return {\n pass: isSubset(expected, received),\n message: () => {\n const matcher = `${this.isNot ? '.not' : ''}.toHaveStyle`;\n return [this.utils.matcherHint(matcher, 'element', ''), expectedDiff(this.utils.diff, expected, received)].join('\\n\\n');\n }\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveTextContent = toHaveTextContent;\n\nvar _utils = require(\"./utils\");\n\nfunction toHaveTextContent(node, checkWith, options = {\n normalizeWhitespace: true\n}) {\n (0, _utils.checkNode)(node, toHaveTextContent, this);\n const textContent = options.normalizeWhitespace ? (0, _utils.normalize)(node.textContent) : node.textContent.replace(/\\u00a0/g, ' '); // Replace with normal spaces\n\n const checkingWithEmptyString = textContent !== '' && checkWith === '';\n return {\n pass: !checkingWithEmptyString && (0, _utils.matches)(textContent, checkWith),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n return (0, _utils.getMessage)(this, this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveTextContent`, 'element', ''), checkingWithEmptyString ? `Checking with empty string will always match, use .toBeEmptyDOMElement() instead` : `Expected element ${to} have text content`, checkWith, 'Received', textContent);\n }\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toHaveValue = toHaveValue;\n\nvar _isEqualWith = _interopRequireDefault(require(\"lodash/isEqualWith\"));\n\nvar _utils = require(\"./utils\");\n\nfunction toHaveValue(htmlElement, expectedValue) {\n (0, _utils.checkHtmlElement)(htmlElement, toHaveValue, this);\n\n if (htmlElement.tagName.toLowerCase() === 'input' && ['checkbox', 'radio'].includes(htmlElement.type)) {\n throw new Error('input with type=checkbox or type=radio cannot be used with .toHaveValue(). Use .toBeChecked() for type=checkbox or .toHaveFormValues() instead');\n }\n\n const receivedValue = (0, _utils.getSingleElementValue)(htmlElement);\n const expectsValue = expectedValue !== undefined;\n let expectedTypedValue = expectedValue;\n let receivedTypedValue = receivedValue;\n\n if (expectedValue == receivedValue && expectedValue !== receivedValue) {\n expectedTypedValue = `${expectedValue} (${typeof expectedValue})`;\n receivedTypedValue = `${receivedValue} (${typeof receivedValue})`;\n }\n\n return {\n pass: expectsValue ? (0, _isEqualWith.default)(receivedValue, expectedValue, _utils.compareArraysAsSet) : Boolean(receivedValue),\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const matcher = this.utils.matcherHint(`${this.isNot ? '.not' : ''}.toHaveValue`, 'element', expectedValue);\n return (0, _utils.getMessage)(this, matcher, `Expected the element ${to} have value`, expectsValue ? expectedTypedValue : '(any)', 'Received', receivedTypedValue);\n }\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NodeTypeError = exports.HtmlElementTypeError = void 0;\nexports.checkHtmlElement = checkHtmlElement;\nexports.checkNode = checkNode;\nexports.compareArraysAsSet = compareArraysAsSet;\nexports.deprecate = deprecate;\nexports.getMessage = getMessage;\nexports.getSingleElementValue = getSingleElementValue;\nexports.getTag = getTag;\nexports.matches = matches;\nexports.normalize = normalize;\nexports.parseCSS = parseCSS;\nexports.toSentence = toSentence;\n\nvar _redent = _interopRequireDefault(require(\"redent\"));\n\nvar _isEqual = _interopRequireDefault(require(\"lodash/isEqual\"));\n\nvar _cssTools = require(\"@adobe/css-tools\");\n\nclass GenericTypeError extends Error {\n constructor(expectedString, received, matcherFn, context) {\n super();\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, matcherFn);\n }\n\n let withType = '';\n\n try {\n withType = context.utils.printWithType('Received', received, context.utils.printReceived);\n } catch (e) {// Can throw for Document:\n // https://github.com/jsdom/jsdom/issues/2304\n }\n\n this.message = [context.utils.matcherHint(`${context.isNot ? '.not' : ''}.${matcherFn.name}`, 'received', ''), '', // eslint-disable-next-line @babel/new-cap\n `${context.utils.RECEIVED_COLOR('received')} value must ${expectedString}.`, withType].join('\\n');\n }\n\n}\n\nclass HtmlElementTypeError extends GenericTypeError {\n constructor(...args) {\n super('be an HTMLElement or an SVGElement', ...args);\n }\n\n}\n\nexports.HtmlElementTypeError = HtmlElementTypeError;\n\nclass NodeTypeError extends GenericTypeError {\n constructor(...args) {\n super('be a Node', ...args);\n }\n\n}\n\nexports.NodeTypeError = NodeTypeError;\n\nfunction checkHasWindow(htmlElement, ErrorClass, ...args) {\n if (!htmlElement || !htmlElement.ownerDocument || !htmlElement.ownerDocument.defaultView) {\n throw new ErrorClass(htmlElement, ...args);\n }\n}\n\nfunction checkNode(node, ...args) {\n checkHasWindow(node, NodeTypeError, ...args);\n const window = node.ownerDocument.defaultView;\n\n if (!(node instanceof window.Node)) {\n throw new NodeTypeError(node, ...args);\n }\n}\n\nfunction checkHtmlElement(htmlElement, ...args) {\n checkHasWindow(htmlElement, HtmlElementTypeError, ...args);\n const window = htmlElement.ownerDocument.defaultView;\n\n if (!(htmlElement instanceof window.HTMLElement) && !(htmlElement instanceof window.SVGElement)) {\n throw new HtmlElementTypeError(htmlElement, ...args);\n }\n}\n\nclass InvalidCSSError extends Error {\n constructor(received, matcherFn, context) {\n super();\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, matcherFn);\n }\n\n this.message = [received.message, '', // eslint-disable-next-line @babel/new-cap\n context.utils.RECEIVED_COLOR(`Failing css:`), // eslint-disable-next-line @babel/new-cap\n context.utils.RECEIVED_COLOR(`${received.css}`)].join('\\n');\n }\n\n}\n\nfunction parseCSS(css, ...args) {\n const ast = (0, _cssTools.parse)(`selector { ${css} }`, {\n silent: true\n }).stylesheet;\n\n if (ast.parsingErrors && ast.parsingErrors.length > 0) {\n const {\n reason,\n line\n } = ast.parsingErrors[0];\n throw new InvalidCSSError({\n css,\n message: `Syntax error parsing expected css: ${reason} on line: ${line}`\n }, ...args);\n }\n\n const parsedRules = ast.rules[0].declarations.filter(d => d.type === 'declaration').reduce((obj, {\n property,\n value\n }) => Object.assign(obj, {\n [property]: value\n }), {});\n return parsedRules;\n}\n\nfunction display(context, value) {\n return typeof value === 'string' ? value : context.utils.stringify(value);\n}\n\nfunction getMessage(context, matcher, expectedLabel, expectedValue, receivedLabel, receivedValue) {\n return [`${matcher}\\n`, // eslint-disable-next-line @babel/new-cap\n `${expectedLabel}:\\n${context.utils.EXPECTED_COLOR((0, _redent.default)(display(context, expectedValue), 2))}`, // eslint-disable-next-line @babel/new-cap\n `${receivedLabel}:\\n${context.utils.RECEIVED_COLOR((0, _redent.default)(display(context, receivedValue), 2))}`].join('\\n');\n}\n\nfunction matches(textToMatch, matcher) {\n if (matcher instanceof RegExp) {\n return matcher.test(textToMatch);\n } else {\n return textToMatch.includes(String(matcher));\n }\n}\n\nfunction deprecate(name, replacementText) {\n // Notify user that they are using deprecated functionality.\n // eslint-disable-next-line no-console\n console.warn(`Warning: ${name} has been deprecated and will be removed in future updates.`, replacementText);\n}\n\nfunction normalize(text) {\n return text.replace(/\\s+/g, ' ').trim();\n}\n\nfunction getTag(element) {\n return element.tagName && element.tagName.toLowerCase();\n}\n\nfunction getSelectValue({\n multiple,\n options\n}) {\n const selectedOptions = [...options].filter(option => option.selected);\n\n if (multiple) {\n return [...selectedOptions].map(opt => opt.value);\n }\n /* istanbul ignore if */\n\n\n if (selectedOptions.length === 0) {\n return undefined; // Couldn't make this happen, but just in case\n }\n\n return selectedOptions[0].value;\n}\n\nfunction getInputValue(inputElement) {\n switch (inputElement.type) {\n case 'number':\n return inputElement.value === '' ? null : Number(inputElement.value);\n\n case 'checkbox':\n return inputElement.checked;\n\n default:\n return inputElement.value;\n }\n}\n\nfunction getSingleElementValue(element) {\n /* istanbul ignore if */\n if (!element) {\n return undefined;\n }\n\n switch (element.tagName.toLowerCase()) {\n case 'input':\n return getInputValue(element);\n\n case 'select':\n return getSelectValue(element);\n\n default:\n return element.value;\n }\n}\n\nfunction compareArraysAsSet(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return (0, _isEqual.default)(new Set(a), new Set(b));\n }\n\n return undefined;\n}\n\nfunction toSentence(array, {\n wordConnector = ', ',\n lastWordConnector = ' and '\n} = {}) {\n return [array.slice(0, -1).join(wordConnector), array[array.length - 1]].join(array.length > 1 ? lastWordConnector : '');\n}","'use strict';\n\nconst wrapAnsi16 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${code + offset}m`;\n};\n\nconst wrapAnsi256 = (fn, offset) => (...args) => {\n\tconst code = fn(...args);\n\treturn `\\u001B[${38 + offset};5;${code}m`;\n};\n\nconst wrapAnsi16m = (fn, offset) => (...args) => {\n\tconst rgb = fn(...args);\n\treturn `\\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;\n};\n\nconst ansi2ansi = n => n;\nconst rgb2rgb = (r, g, b) => [r, g, b];\n\nconst setLazyProperty = (object, property, get) => {\n\tObject.defineProperty(object, property, {\n\t\tget: () => {\n\t\t\tconst value = get();\n\n\t\t\tObject.defineProperty(object, property, {\n\t\t\t\tvalue,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\n\t\t\treturn value;\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t});\n};\n\n/** @type {typeof import('color-convert')} */\nlet colorConvert;\nconst makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => {\n\tif (colorConvert === undefined) {\n\t\tcolorConvert = require('color-convert');\n\t}\n\n\tconst offset = isBackground ? 10 : 0;\n\tconst styles = {};\n\n\tfor (const [sourceSpace, suite] of Object.entries(colorConvert)) {\n\t\tconst name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace;\n\t\tif (sourceSpace === targetSpace) {\n\t\t\tstyles[name] = wrap(identity, offset);\n\t\t} else if (typeof suite === 'object') {\n\t\t\tstyles[name] = wrap(suite[targetSpace], offset);\n\t\t}\n\t}\n\n\treturn styles;\n};\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\tconst styles = {\n\t\tmodifier: {\n\t\t\treset: [0, 0],\n\t\t\t// 21 isn't widely supported and 22 does the same thing\n\t\t\tbold: [1, 22],\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolor: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\n\t\t\t// Bright color\n\t\t\tblackBright: [90, 39],\n\t\t\tredBright: [91, 39],\n\t\t\tgreenBright: [92, 39],\n\t\t\tyellowBright: [93, 39],\n\t\t\tblueBright: [94, 39],\n\t\t\tmagentaBright: [95, 39],\n\t\t\tcyanBright: [96, 39],\n\t\t\twhiteBright: [97, 39]\n\t\t},\n\t\tbgColor: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49],\n\n\t\t\t// Bright color\n\t\t\tbgBlackBright: [100, 49],\n\t\t\tbgRedBright: [101, 49],\n\t\t\tbgGreenBright: [102, 49],\n\t\t\tbgYellowBright: [103, 49],\n\t\t\tbgBlueBright: [104, 49],\n\t\t\tbgMagentaBright: [105, 49],\n\t\t\tbgCyanBright: [106, 49],\n\t\t\tbgWhiteBright: [107, 49]\n\t\t}\n\t};\n\n\t// Alias bright black as gray (and grey)\n\tstyles.color.gray = styles.color.blackBright;\n\tstyles.bgColor.bgGray = styles.bgColor.bgBlackBright;\n\tstyles.color.grey = styles.color.blackBright;\n\tstyles.bgColor.bgGrey = styles.bgColor.bgBlackBright;\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tsetLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false));\n\tsetLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false));\n\tsetLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true));\n\tsetLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true));\n\n\treturn styles;\n}\n\n// Make the export immutable\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar properties = [['aria-activedescendant', {\n 'type': 'id'\n}], ['aria-atomic', {\n 'type': 'boolean'\n}], ['aria-autocomplete', {\n 'type': 'token',\n 'values': ['inline', 'list', 'both', 'none']\n}], ['aria-busy', {\n 'type': 'boolean'\n}], ['aria-checked', {\n 'type': 'tristate'\n}], ['aria-colcount', {\n type: 'integer'\n}], ['aria-colindex', {\n type: 'integer'\n}], ['aria-colspan', {\n type: 'integer'\n}], ['aria-controls', {\n 'type': 'idlist'\n}], ['aria-current', {\n type: 'token',\n values: ['page', 'step', 'location', 'date', 'time', true, false]\n}], ['aria-describedby', {\n 'type': 'idlist'\n}], ['aria-details', {\n 'type': 'id'\n}], ['aria-disabled', {\n 'type': 'boolean'\n}], ['aria-dropeffect', {\n 'type': 'tokenlist',\n 'values': ['copy', 'execute', 'link', 'move', 'none', 'popup']\n}], ['aria-errormessage', {\n 'type': 'id'\n}], ['aria-expanded', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-flowto', {\n 'type': 'idlist'\n}], ['aria-grabbed', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-haspopup', {\n 'type': 'token',\n 'values': [false, true, 'menu', 'listbox', 'tree', 'grid', 'dialog']\n}], ['aria-hidden', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-invalid', {\n 'type': 'token',\n 'values': ['grammar', false, 'spelling', true]\n}], ['aria-keyshortcuts', {\n type: 'string'\n}], ['aria-label', {\n 'type': 'string'\n}], ['aria-labelledby', {\n 'type': 'idlist'\n}], ['aria-level', {\n 'type': 'integer'\n}], ['aria-live', {\n 'type': 'token',\n 'values': ['assertive', 'off', 'polite']\n}], ['aria-modal', {\n type: 'boolean'\n}], ['aria-multiline', {\n 'type': 'boolean'\n}], ['aria-multiselectable', {\n 'type': 'boolean'\n}], ['aria-orientation', {\n 'type': 'token',\n 'values': ['vertical', 'undefined', 'horizontal']\n}], ['aria-owns', {\n 'type': 'idlist'\n}], ['aria-placeholder', {\n type: 'string'\n}], ['aria-posinset', {\n 'type': 'integer'\n}], ['aria-pressed', {\n 'type': 'tristate'\n}], ['aria-readonly', {\n 'type': 'boolean'\n}], ['aria-relevant', {\n 'type': 'tokenlist',\n 'values': ['additions', 'all', 'removals', 'text']\n}], ['aria-required', {\n 'type': 'boolean'\n}], ['aria-roledescription', {\n type: 'string'\n}], ['aria-rowcount', {\n type: 'integer'\n}], ['aria-rowindex', {\n type: 'integer'\n}], ['aria-rowspan', {\n type: 'integer'\n}], ['aria-selected', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-setsize', {\n 'type': 'integer'\n}], ['aria-sort', {\n 'type': 'token',\n 'values': ['ascending', 'descending', 'none', 'other']\n}], ['aria-valuemax', {\n 'type': 'number'\n}], ['aria-valuemin', {\n 'type': 'number'\n}], ['aria-valuenow', {\n 'type': 'number'\n}], ['aria-valuetext', {\n 'type': 'string'\n}]];\nvar ariaPropsMap = {\n entries: function entries() {\n return properties;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(properties),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, key, properties);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = properties.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!ariaPropsMap.get(key);\n },\n keys: function keys() {\n return properties.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return properties.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(ariaPropsMap, ariaPropsMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar dom = [['a', {\n reserved: false\n}], ['abbr', {\n reserved: false\n}], ['acronym', {\n reserved: false\n}], ['address', {\n reserved: false\n}], ['applet', {\n reserved: false\n}], ['area', {\n reserved: false\n}], ['article', {\n reserved: false\n}], ['aside', {\n reserved: false\n}], ['audio', {\n reserved: false\n}], ['b', {\n reserved: false\n}], ['base', {\n reserved: true\n}], ['bdi', {\n reserved: false\n}], ['bdo', {\n reserved: false\n}], ['big', {\n reserved: false\n}], ['blink', {\n reserved: false\n}], ['blockquote', {\n reserved: false\n}], ['body', {\n reserved: false\n}], ['br', {\n reserved: false\n}], ['button', {\n reserved: false\n}], ['canvas', {\n reserved: false\n}], ['caption', {\n reserved: false\n}], ['center', {\n reserved: false\n}], ['cite', {\n reserved: false\n}], ['code', {\n reserved: false\n}], ['col', {\n reserved: true\n}], ['colgroup', {\n reserved: true\n}], ['content', {\n reserved: false\n}], ['data', {\n reserved: false\n}], ['datalist', {\n reserved: false\n}], ['dd', {\n reserved: false\n}], ['del', {\n reserved: false\n}], ['details', {\n reserved: false\n}], ['dfn', {\n reserved: false\n}], ['dialog', {\n reserved: false\n}], ['dir', {\n reserved: false\n}], ['div', {\n reserved: false\n}], ['dl', {\n reserved: false\n}], ['dt', {\n reserved: false\n}], ['em', {\n reserved: false\n}], ['embed', {\n reserved: false\n}], ['fieldset', {\n reserved: false\n}], ['figcaption', {\n reserved: false\n}], ['figure', {\n reserved: false\n}], ['font', {\n reserved: false\n}], ['footer', {\n reserved: false\n}], ['form', {\n reserved: false\n}], ['frame', {\n reserved: false\n}], ['frameset', {\n reserved: false\n}], ['h1', {\n reserved: false\n}], ['h2', {\n reserved: false\n}], ['h3', {\n reserved: false\n}], ['h4', {\n reserved: false\n}], ['h5', {\n reserved: false\n}], ['h6', {\n reserved: false\n}], ['head', {\n reserved: true\n}], ['header', {\n reserved: false\n}], ['hgroup', {\n reserved: false\n}], ['hr', {\n reserved: false\n}], ['html', {\n reserved: true\n}], ['i', {\n reserved: false\n}], ['iframe', {\n reserved: false\n}], ['img', {\n reserved: false\n}], ['input', {\n reserved: false\n}], ['ins', {\n reserved: false\n}], ['kbd', {\n reserved: false\n}], ['keygen', {\n reserved: false\n}], ['label', {\n reserved: false\n}], ['legend', {\n reserved: false\n}], ['li', {\n reserved: false\n}], ['link', {\n reserved: true\n}], ['main', {\n reserved: false\n}], ['map', {\n reserved: false\n}], ['mark', {\n reserved: false\n}], ['marquee', {\n reserved: false\n}], ['menu', {\n reserved: false\n}], ['menuitem', {\n reserved: false\n}], ['meta', {\n reserved: true\n}], ['meter', {\n reserved: false\n}], ['nav', {\n reserved: false\n}], ['noembed', {\n reserved: true\n}], ['noscript', {\n reserved: true\n}], ['object', {\n reserved: false\n}], ['ol', {\n reserved: false\n}], ['optgroup', {\n reserved: false\n}], ['option', {\n reserved: false\n}], ['output', {\n reserved: false\n}], ['p', {\n reserved: false\n}], ['param', {\n reserved: true\n}], ['picture', {\n reserved: true\n}], ['pre', {\n reserved: false\n}], ['progress', {\n reserved: false\n}], ['q', {\n reserved: false\n}], ['rp', {\n reserved: false\n}], ['rt', {\n reserved: false\n}], ['rtc', {\n reserved: false\n}], ['ruby', {\n reserved: false\n}], ['s', {\n reserved: false\n}], ['samp', {\n reserved: false\n}], ['script', {\n reserved: true\n}], ['section', {\n reserved: false\n}], ['select', {\n reserved: false\n}], ['small', {\n reserved: false\n}], ['source', {\n reserved: true\n}], ['spacer', {\n reserved: false\n}], ['span', {\n reserved: false\n}], ['strike', {\n reserved: false\n}], ['strong', {\n reserved: false\n}], ['style', {\n reserved: true\n}], ['sub', {\n reserved: false\n}], ['summary', {\n reserved: false\n}], ['sup', {\n reserved: false\n}], ['table', {\n reserved: false\n}], ['tbody', {\n reserved: false\n}], ['td', {\n reserved: false\n}], ['textarea', {\n reserved: false\n}], ['tfoot', {\n reserved: false\n}], ['th', {\n reserved: false\n}], ['thead', {\n reserved: false\n}], ['time', {\n reserved: false\n}], ['title', {\n reserved: true\n}], ['tr', {\n reserved: false\n}], ['track', {\n reserved: true\n}], ['tt', {\n reserved: false\n}], ['u', {\n reserved: false\n}], ['ul', {\n reserved: false\n}], ['var', {\n reserved: false\n}], ['video', {\n reserved: false\n}], ['wbr', {\n reserved: false\n}], ['xmp', {\n reserved: false\n}]];\nvar domMap = {\n entries: function entries() {\n return dom;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(dom),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, key, dom);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = dom.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!domMap.get(key);\n },\n keys: function keys() {\n return dom.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return dom.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(domMap, domMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _deepEqual = _interopRequireDefault(require(\"deep-equal\"));\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar elementRoles = [];\nvar keys = _rolesMap.default.keys();\nfor (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var role = _rolesMap.default.get(key);\n if (role) {\n var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n for (var k = 0; k < concepts.length; k++) {\n var relation = concepts[k];\n if (relation.module === 'HTML') {\n var concept = relation.concept;\n if (concept) {\n (function () {\n var conceptStr = JSON.stringify(concept);\n var elementRoleRelation = elementRoles.find(function (relation) {\n return JSON.stringify(relation[0]) === conceptStr;\n });\n var roles = void 0;\n if (elementRoleRelation) {\n roles = elementRoleRelation[1];\n } else {\n roles = [];\n }\n var isUnique = true;\n for (var _i = 0; _i < roles.length; _i++) {\n if (roles[_i] === key) {\n isUnique = false;\n break;\n }\n }\n if (isUnique) {\n roles.push(key);\n }\n elementRoles.push([concept, roles]);\n })();\n }\n }\n }\n }\n}\nvar elementRoleMap = {\n entries: function entries() {\n return elementRoles;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(elementRoles),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n _key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, _key, elementRoles);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = elementRoles.find(function (tuple) {\n return (0, _deepEqual.default)(key, tuple[0]);\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!elementRoleMap.get(key);\n },\n keys: function keys() {\n return elementRoles.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return elementRoles.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(elementRoleMap, elementRoleMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar commandRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menuitem'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget']]\n};\nvar _default = commandRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar compositeRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-disabled': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget']]\n};\nvar _default = compositeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar inputRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null\n },\n relatedConcepts: [{\n concept: {\n name: 'input'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget']]\n};\nvar _default = inputRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar landmarkRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = landmarkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rangeRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuenow': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = rangeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar roletypeRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {\n 'aria-atomic': null,\n 'aria-busy': null,\n 'aria-controls': null,\n 'aria-current': null,\n 'aria-describedby': null,\n 'aria-details': null,\n 'aria-dropeffect': null,\n 'aria-flowto': null,\n 'aria-grabbed': null,\n 'aria-hidden': null,\n 'aria-keyshortcuts': null,\n 'aria-label': null,\n 'aria-labelledby': null,\n 'aria-live': null,\n 'aria-owns': null,\n 'aria-relevant': null,\n 'aria-roledescription': null\n },\n relatedConcepts: [{\n concept: {\n name: 'rel'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'role'\n },\n module: 'XHTML'\n }, {\n concept: {\n name: 'type'\n },\n module: 'Dublin Core'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: []\n};\nvar _default = roletypeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar sectionRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'frontmatter'\n },\n module: 'DTB'\n }, {\n concept: {\n name: 'level'\n },\n module: 'DTB'\n }, {\n concept: {\n name: 'level'\n },\n module: 'SMIL'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = sectionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar sectionheadRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = sectionheadRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar selectRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'group']]\n};\nvar _default = selectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar structureRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype']]\n};\nvar _default = structureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar widgetRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype']]\n};\nvar _default = widgetRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar windowRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-modal': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype']]\n};\nvar _default = windowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _commandRole = _interopRequireDefault(require(\"./abstract/commandRole\"));\nvar _compositeRole = _interopRequireDefault(require(\"./abstract/compositeRole\"));\nvar _inputRole = _interopRequireDefault(require(\"./abstract/inputRole\"));\nvar _landmarkRole = _interopRequireDefault(require(\"./abstract/landmarkRole\"));\nvar _rangeRole = _interopRequireDefault(require(\"./abstract/rangeRole\"));\nvar _roletypeRole = _interopRequireDefault(require(\"./abstract/roletypeRole\"));\nvar _sectionRole = _interopRequireDefault(require(\"./abstract/sectionRole\"));\nvar _sectionheadRole = _interopRequireDefault(require(\"./abstract/sectionheadRole\"));\nvar _selectRole = _interopRequireDefault(require(\"./abstract/selectRole\"));\nvar _structureRole = _interopRequireDefault(require(\"./abstract/structureRole\"));\nvar _widgetRole = _interopRequireDefault(require(\"./abstract/widgetRole\"));\nvar _windowRole = _interopRequireDefault(require(\"./abstract/windowRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaAbstractRoles = [['command', _commandRole.default], ['composite', _compositeRole.default], ['input', _inputRole.default], ['landmark', _landmarkRole.default], ['range', _rangeRole.default], ['roletype', _roletypeRole.default], ['section', _sectionRole.default], ['sectionhead', _sectionheadRole.default], ['select', _selectRole.default], ['structure', _structureRole.default], ['widget', _widgetRole.default], ['window', _windowRole.default]];\nvar _default = ariaAbstractRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _docAbstractRole = _interopRequireDefault(require(\"./dpub/docAbstractRole\"));\nvar _docAcknowledgmentsRole = _interopRequireDefault(require(\"./dpub/docAcknowledgmentsRole\"));\nvar _docAfterwordRole = _interopRequireDefault(require(\"./dpub/docAfterwordRole\"));\nvar _docAppendixRole = _interopRequireDefault(require(\"./dpub/docAppendixRole\"));\nvar _docBacklinkRole = _interopRequireDefault(require(\"./dpub/docBacklinkRole\"));\nvar _docBiblioentryRole = _interopRequireDefault(require(\"./dpub/docBiblioentryRole\"));\nvar _docBibliographyRole = _interopRequireDefault(require(\"./dpub/docBibliographyRole\"));\nvar _docBibliorefRole = _interopRequireDefault(require(\"./dpub/docBibliorefRole\"));\nvar _docChapterRole = _interopRequireDefault(require(\"./dpub/docChapterRole\"));\nvar _docColophonRole = _interopRequireDefault(require(\"./dpub/docColophonRole\"));\nvar _docConclusionRole = _interopRequireDefault(require(\"./dpub/docConclusionRole\"));\nvar _docCoverRole = _interopRequireDefault(require(\"./dpub/docCoverRole\"));\nvar _docCreditRole = _interopRequireDefault(require(\"./dpub/docCreditRole\"));\nvar _docCreditsRole = _interopRequireDefault(require(\"./dpub/docCreditsRole\"));\nvar _docDedicationRole = _interopRequireDefault(require(\"./dpub/docDedicationRole\"));\nvar _docEndnoteRole = _interopRequireDefault(require(\"./dpub/docEndnoteRole\"));\nvar _docEndnotesRole = _interopRequireDefault(require(\"./dpub/docEndnotesRole\"));\nvar _docEpigraphRole = _interopRequireDefault(require(\"./dpub/docEpigraphRole\"));\nvar _docEpilogueRole = _interopRequireDefault(require(\"./dpub/docEpilogueRole\"));\nvar _docErrataRole = _interopRequireDefault(require(\"./dpub/docErrataRole\"));\nvar _docExampleRole = _interopRequireDefault(require(\"./dpub/docExampleRole\"));\nvar _docFootnoteRole = _interopRequireDefault(require(\"./dpub/docFootnoteRole\"));\nvar _docForewordRole = _interopRequireDefault(require(\"./dpub/docForewordRole\"));\nvar _docGlossaryRole = _interopRequireDefault(require(\"./dpub/docGlossaryRole\"));\nvar _docGlossrefRole = _interopRequireDefault(require(\"./dpub/docGlossrefRole\"));\nvar _docIndexRole = _interopRequireDefault(require(\"./dpub/docIndexRole\"));\nvar _docIntroductionRole = _interopRequireDefault(require(\"./dpub/docIntroductionRole\"));\nvar _docNoterefRole = _interopRequireDefault(require(\"./dpub/docNoterefRole\"));\nvar _docNoticeRole = _interopRequireDefault(require(\"./dpub/docNoticeRole\"));\nvar _docPagebreakRole = _interopRequireDefault(require(\"./dpub/docPagebreakRole\"));\nvar _docPagelistRole = _interopRequireDefault(require(\"./dpub/docPagelistRole\"));\nvar _docPartRole = _interopRequireDefault(require(\"./dpub/docPartRole\"));\nvar _docPrefaceRole = _interopRequireDefault(require(\"./dpub/docPrefaceRole\"));\nvar _docPrologueRole = _interopRequireDefault(require(\"./dpub/docPrologueRole\"));\nvar _docPullquoteRole = _interopRequireDefault(require(\"./dpub/docPullquoteRole\"));\nvar _docQnaRole = _interopRequireDefault(require(\"./dpub/docQnaRole\"));\nvar _docSubtitleRole = _interopRequireDefault(require(\"./dpub/docSubtitleRole\"));\nvar _docTipRole = _interopRequireDefault(require(\"./dpub/docTipRole\"));\nvar _docTocRole = _interopRequireDefault(require(\"./dpub/docTocRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaDpubRoles = [['doc-abstract', _docAbstractRole.default], ['doc-acknowledgments', _docAcknowledgmentsRole.default], ['doc-afterword', _docAfterwordRole.default], ['doc-appendix', _docAppendixRole.default], ['doc-backlink', _docBacklinkRole.default], ['doc-biblioentry', _docBiblioentryRole.default], ['doc-bibliography', _docBibliographyRole.default], ['doc-biblioref', _docBibliorefRole.default], ['doc-chapter', _docChapterRole.default], ['doc-colophon', _docColophonRole.default], ['doc-conclusion', _docConclusionRole.default], ['doc-cover', _docCoverRole.default], ['doc-credit', _docCreditRole.default], ['doc-credits', _docCreditsRole.default], ['doc-dedication', _docDedicationRole.default], ['doc-endnote', _docEndnoteRole.default], ['doc-endnotes', _docEndnotesRole.default], ['doc-epigraph', _docEpigraphRole.default], ['doc-epilogue', _docEpilogueRole.default], ['doc-errata', _docErrataRole.default], ['doc-example', _docExampleRole.default], ['doc-footnote', _docFootnoteRole.default], ['doc-foreword', _docForewordRole.default], ['doc-glossary', _docGlossaryRole.default], ['doc-glossref', _docGlossrefRole.default], ['doc-index', _docIndexRole.default], ['doc-introduction', _docIntroductionRole.default], ['doc-noteref', _docNoterefRole.default], ['doc-notice', _docNoticeRole.default], ['doc-pagebreak', _docPagebreakRole.default], ['doc-pagelist', _docPagelistRole.default], ['doc-part', _docPartRole.default], ['doc-preface', _docPrefaceRole.default], ['doc-prologue', _docPrologueRole.default], ['doc-pullquote', _docPullquoteRole.default], ['doc-qna', _docQnaRole.default], ['doc-subtitle', _docSubtitleRole.default], ['doc-tip', _docTipRole.default], ['doc-toc', _docTocRole.default]];\nvar _default = ariaDpubRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _graphicsDocumentRole = _interopRequireDefault(require(\"./graphics/graphicsDocumentRole\"));\nvar _graphicsObjectRole = _interopRequireDefault(require(\"./graphics/graphicsObjectRole\"));\nvar _graphicsSymbolRole = _interopRequireDefault(require(\"./graphics/graphicsSymbolRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaGraphicsRoles = [['graphics-document', _graphicsDocumentRole.default], ['graphics-object', _graphicsObjectRole.default], ['graphics-symbol', _graphicsSymbolRole.default]];\nvar _default = ariaGraphicsRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _alertRole = _interopRequireDefault(require(\"./literal/alertRole\"));\nvar _alertdialogRole = _interopRequireDefault(require(\"./literal/alertdialogRole\"));\nvar _applicationRole = _interopRequireDefault(require(\"./literal/applicationRole\"));\nvar _articleRole = _interopRequireDefault(require(\"./literal/articleRole\"));\nvar _bannerRole = _interopRequireDefault(require(\"./literal/bannerRole\"));\nvar _blockquoteRole = _interopRequireDefault(require(\"./literal/blockquoteRole\"));\nvar _buttonRole = _interopRequireDefault(require(\"./literal/buttonRole\"));\nvar _captionRole = _interopRequireDefault(require(\"./literal/captionRole\"));\nvar _cellRole = _interopRequireDefault(require(\"./literal/cellRole\"));\nvar _checkboxRole = _interopRequireDefault(require(\"./literal/checkboxRole\"));\nvar _codeRole = _interopRequireDefault(require(\"./literal/codeRole\"));\nvar _columnheaderRole = _interopRequireDefault(require(\"./literal/columnheaderRole\"));\nvar _comboboxRole = _interopRequireDefault(require(\"./literal/comboboxRole\"));\nvar _complementaryRole = _interopRequireDefault(require(\"./literal/complementaryRole\"));\nvar _contentinfoRole = _interopRequireDefault(require(\"./literal/contentinfoRole\"));\nvar _definitionRole = _interopRequireDefault(require(\"./literal/definitionRole\"));\nvar _deletionRole = _interopRequireDefault(require(\"./literal/deletionRole\"));\nvar _dialogRole = _interopRequireDefault(require(\"./literal/dialogRole\"));\nvar _directoryRole = _interopRequireDefault(require(\"./literal/directoryRole\"));\nvar _documentRole = _interopRequireDefault(require(\"./literal/documentRole\"));\nvar _emphasisRole = _interopRequireDefault(require(\"./literal/emphasisRole\"));\nvar _feedRole = _interopRequireDefault(require(\"./literal/feedRole\"));\nvar _figureRole = _interopRequireDefault(require(\"./literal/figureRole\"));\nvar _formRole = _interopRequireDefault(require(\"./literal/formRole\"));\nvar _genericRole = _interopRequireDefault(require(\"./literal/genericRole\"));\nvar _gridRole = _interopRequireDefault(require(\"./literal/gridRole\"));\nvar _gridcellRole = _interopRequireDefault(require(\"./literal/gridcellRole\"));\nvar _groupRole = _interopRequireDefault(require(\"./literal/groupRole\"));\nvar _headingRole = _interopRequireDefault(require(\"./literal/headingRole\"));\nvar _imgRole = _interopRequireDefault(require(\"./literal/imgRole\"));\nvar _insertionRole = _interopRequireDefault(require(\"./literal/insertionRole\"));\nvar _linkRole = _interopRequireDefault(require(\"./literal/linkRole\"));\nvar _listRole = _interopRequireDefault(require(\"./literal/listRole\"));\nvar _listboxRole = _interopRequireDefault(require(\"./literal/listboxRole\"));\nvar _listitemRole = _interopRequireDefault(require(\"./literal/listitemRole\"));\nvar _logRole = _interopRequireDefault(require(\"./literal/logRole\"));\nvar _mainRole = _interopRequireDefault(require(\"./literal/mainRole\"));\nvar _marqueeRole = _interopRequireDefault(require(\"./literal/marqueeRole\"));\nvar _mathRole = _interopRequireDefault(require(\"./literal/mathRole\"));\nvar _menuRole = _interopRequireDefault(require(\"./literal/menuRole\"));\nvar _menubarRole = _interopRequireDefault(require(\"./literal/menubarRole\"));\nvar _menuitemRole = _interopRequireDefault(require(\"./literal/menuitemRole\"));\nvar _menuitemcheckboxRole = _interopRequireDefault(require(\"./literal/menuitemcheckboxRole\"));\nvar _menuitemradioRole = _interopRequireDefault(require(\"./literal/menuitemradioRole\"));\nvar _meterRole = _interopRequireDefault(require(\"./literal/meterRole\"));\nvar _navigationRole = _interopRequireDefault(require(\"./literal/navigationRole\"));\nvar _noneRole = _interopRequireDefault(require(\"./literal/noneRole\"));\nvar _noteRole = _interopRequireDefault(require(\"./literal/noteRole\"));\nvar _optionRole = _interopRequireDefault(require(\"./literal/optionRole\"));\nvar _paragraphRole = _interopRequireDefault(require(\"./literal/paragraphRole\"));\nvar _presentationRole = _interopRequireDefault(require(\"./literal/presentationRole\"));\nvar _progressbarRole = _interopRequireDefault(require(\"./literal/progressbarRole\"));\nvar _radioRole = _interopRequireDefault(require(\"./literal/radioRole\"));\nvar _radiogroupRole = _interopRequireDefault(require(\"./literal/radiogroupRole\"));\nvar _regionRole = _interopRequireDefault(require(\"./literal/regionRole\"));\nvar _rowRole = _interopRequireDefault(require(\"./literal/rowRole\"));\nvar _rowgroupRole = _interopRequireDefault(require(\"./literal/rowgroupRole\"));\nvar _rowheaderRole = _interopRequireDefault(require(\"./literal/rowheaderRole\"));\nvar _scrollbarRole = _interopRequireDefault(require(\"./literal/scrollbarRole\"));\nvar _searchRole = _interopRequireDefault(require(\"./literal/searchRole\"));\nvar _searchboxRole = _interopRequireDefault(require(\"./literal/searchboxRole\"));\nvar _separatorRole = _interopRequireDefault(require(\"./literal/separatorRole\"));\nvar _sliderRole = _interopRequireDefault(require(\"./literal/sliderRole\"));\nvar _spinbuttonRole = _interopRequireDefault(require(\"./literal/spinbuttonRole\"));\nvar _statusRole = _interopRequireDefault(require(\"./literal/statusRole\"));\nvar _strongRole = _interopRequireDefault(require(\"./literal/strongRole\"));\nvar _subscriptRole = _interopRequireDefault(require(\"./literal/subscriptRole\"));\nvar _superscriptRole = _interopRequireDefault(require(\"./literal/superscriptRole\"));\nvar _switchRole = _interopRequireDefault(require(\"./literal/switchRole\"));\nvar _tabRole = _interopRequireDefault(require(\"./literal/tabRole\"));\nvar _tableRole = _interopRequireDefault(require(\"./literal/tableRole\"));\nvar _tablistRole = _interopRequireDefault(require(\"./literal/tablistRole\"));\nvar _tabpanelRole = _interopRequireDefault(require(\"./literal/tabpanelRole\"));\nvar _termRole = _interopRequireDefault(require(\"./literal/termRole\"));\nvar _textboxRole = _interopRequireDefault(require(\"./literal/textboxRole\"));\nvar _timeRole = _interopRequireDefault(require(\"./literal/timeRole\"));\nvar _timerRole = _interopRequireDefault(require(\"./literal/timerRole\"));\nvar _toolbarRole = _interopRequireDefault(require(\"./literal/toolbarRole\"));\nvar _tooltipRole = _interopRequireDefault(require(\"./literal/tooltipRole\"));\nvar _treeRole = _interopRequireDefault(require(\"./literal/treeRole\"));\nvar _treegridRole = _interopRequireDefault(require(\"./literal/treegridRole\"));\nvar _treeitemRole = _interopRequireDefault(require(\"./literal/treeitemRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaLiteralRoles = [['alert', _alertRole.default], ['alertdialog', _alertdialogRole.default], ['application', _applicationRole.default], ['article', _articleRole.default], ['banner', _bannerRole.default], ['blockquote', _blockquoteRole.default], ['button', _buttonRole.default], ['caption', _captionRole.default], ['cell', _cellRole.default], ['checkbox', _checkboxRole.default], ['code', _codeRole.default], ['columnheader', _columnheaderRole.default], ['combobox', _comboboxRole.default], ['complementary', _complementaryRole.default], ['contentinfo', _contentinfoRole.default], ['definition', _definitionRole.default], ['deletion', _deletionRole.default], ['dialog', _dialogRole.default], ['directory', _directoryRole.default], ['document', _documentRole.default], ['emphasis', _emphasisRole.default], ['feed', _feedRole.default], ['figure', _figureRole.default], ['form', _formRole.default], ['generic', _genericRole.default], ['grid', _gridRole.default], ['gridcell', _gridcellRole.default], ['group', _groupRole.default], ['heading', _headingRole.default], ['img', _imgRole.default], ['insertion', _insertionRole.default], ['link', _linkRole.default], ['list', _listRole.default], ['listbox', _listboxRole.default], ['listitem', _listitemRole.default], ['log', _logRole.default], ['main', _mainRole.default], ['marquee', _marqueeRole.default], ['math', _mathRole.default], ['menu', _menuRole.default], ['menubar', _menubarRole.default], ['menuitem', _menuitemRole.default], ['menuitemcheckbox', _menuitemcheckboxRole.default], ['menuitemradio', _menuitemradioRole.default], ['meter', _meterRole.default], ['navigation', _navigationRole.default], ['none', _noneRole.default], ['note', _noteRole.default], ['option', _optionRole.default], ['paragraph', _paragraphRole.default], ['presentation', _presentationRole.default], ['progressbar', _progressbarRole.default], ['radio', _radioRole.default], ['radiogroup', _radiogroupRole.default], ['region', _regionRole.default], ['row', _rowRole.default], ['rowgroup', _rowgroupRole.default], ['rowheader', _rowheaderRole.default], ['scrollbar', _scrollbarRole.default], ['search', _searchRole.default], ['searchbox', _searchboxRole.default], ['separator', _separatorRole.default], ['slider', _sliderRole.default], ['spinbutton', _spinbuttonRole.default], ['status', _statusRole.default], ['strong', _strongRole.default], ['subscript', _subscriptRole.default], ['superscript', _superscriptRole.default], ['switch', _switchRole.default], ['tab', _tabRole.default], ['table', _tableRole.default], ['tablist', _tablistRole.default], ['tabpanel', _tabpanelRole.default], ['term', _termRole.default], ['textbox', _textboxRole.default], ['time', _timeRole.default], ['timer', _timerRole.default], ['toolbar', _toolbarRole.default], ['tooltip', _tooltipRole.default], ['tree', _treeRole.default], ['treegrid', _treegridRole.default], ['treeitem', _treeitemRole.default]];\nvar _default = ariaLiteralRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAbstractRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'abstract [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docAbstractRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAcknowledgmentsRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'acknowledgments [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAcknowledgmentsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAfterwordRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'afterword [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAfterwordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAppendixRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'appendix [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAppendixRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBacklinkRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'content'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'referrer [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBacklinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBiblioentryRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'EPUB biblioentry [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: ['doc-bibliography'],\n requiredContextRole: ['doc-bibliography'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docBiblioentryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBibliographyRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'bibliography [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['doc-biblioentry']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docBibliographyRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBibliorefRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'biblioref [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBibliorefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docChapterRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'chapter [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docChapterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docColophonRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'colophon [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docColophonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docConclusionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'conclusion [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docConclusionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docCoverRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'cover [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = docCoverRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docCreditRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'credit [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docCreditRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docCreditsRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'credits [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docCreditsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docDedicationRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'dedication [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docDedicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEndnoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'rearnote [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: ['doc-endnotes'],\n requiredContextRole: ['doc-endnotes'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docEndnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEndnotesRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'rearnotes [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['doc-endnote']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEndnotesRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEpigraphRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'epigraph [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docEpigraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEpilogueRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'epilogue [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEpilogueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docErrataRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'errata [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docErrataRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docExampleRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docExampleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docFootnoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'footnote [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docFootnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docForewordRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'foreword [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docForewordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docGlossaryRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'glossary [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['definition'], ['term']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docGlossaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docGlossrefRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'glossref [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docGlossrefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docIndexRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'index [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docIndexRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docIntroductionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'introduction [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docIntroductionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docNoterefRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'noteref [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docNoterefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docNoticeRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'notice [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docNoticeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPagebreakRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'pagebreak [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'separator']]\n};\nvar _default = docPagebreakRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPagelistRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'page-list [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docPagelistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPartRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'part [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPartRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPrefaceRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'preface [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrefaceRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPrologueRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'prologue [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrologueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPullquoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'pullquote [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['none']]\n};\nvar _default = docPullquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docQnaRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'qna [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docQnaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docSubtitleRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'subtitle [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = docSubtitleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docTipRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'help [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docTipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docTocRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'toc [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docTocRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar graphicsDocumentRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n module: 'GRAPHICS',\n concept: {\n name: 'graphics-object'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'img'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'article'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = graphicsDocumentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar graphicsObjectRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n module: 'GRAPHICS',\n concept: {\n name: 'graphics-document'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'group'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'img'\n }\n }, {\n module: 'GRAPHICS',\n concept: {\n name: 'graphics-symbol'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = graphicsObjectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar graphicsSymbolRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = graphicsSymbolRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar alertRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-atomic': 'true',\n 'aria-live': 'assertive'\n },\n relatedConcepts: [{\n concept: {\n name: 'alert'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = alertRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar alertdialogRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'alert'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'alert'], ['roletype', 'window', 'dialog']]\n};\nvar _default = alertdialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar applicationRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'Device Independence Delivery Unit'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = applicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar articleRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n name: 'article'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = articleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar bannerRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n constraints: ['direct descendant of document'],\n name: 'header'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = bannerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar blockquoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = blockquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar buttonRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-pressed': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-pressed'\n }, {\n name: 'type',\n value: 'checkbox'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'aria-expanded',\n value: 'false'\n }],\n name: 'summary'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'aria-expanded',\n value: 'true'\n }],\n constraints: ['direct descendant of details element with the open attribute defined'],\n name: 'summary'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'button'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'image'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'reset'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'submit'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'button'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'trigger'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = buttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar captionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: ['figure', 'grid', 'table'],\n requiredContextRole: ['figure', 'grid', 'table'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = captionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar cellRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-colindex': null,\n 'aria-colspan': null,\n 'aria-rowindex': null,\n 'aria-rowspan': null\n },\n relatedConcepts: [{\n concept: {\n constraints: ['descendant of table'],\n name: 'td'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row'],\n requiredContextRole: ['row'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = cellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar checkboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-checked': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'checkbox'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'option'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = checkboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar codeRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = codeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar columnheaderRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-sort': null\n },\n relatedConcepts: [{\n attributes: [{\n name: 'scope',\n value: 'col'\n }],\n concept: {\n name: 'th'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row'],\n requiredContextRole: ['row'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = columnheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar comboboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-autocomplete': null,\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-expanded': 'false',\n 'aria-haspopup': 'listbox'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'email'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'search'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'tel'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'text'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'url'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'url'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'multiple'\n }, {\n constraints: ['undefined'],\n name: 'size'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'multiple'\n }, {\n name: 'size',\n value: 1\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'select'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-controls': null,\n 'aria-expanded': 'false'\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = comboboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar complementaryRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'aside'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = complementaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar contentinfoRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n constraints: ['direct descendant of document'],\n name: 'footer'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = contentinfoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar definitionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'dd'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = definitionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar deletionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = deletionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar dialogRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'dialog'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'window']]\n};\nvar _default = dialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar directoryRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n module: 'DAISY Guide'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = directoryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar documentRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'Device Independence Delivery Unit'\n }\n }, {\n concept: {\n name: 'body'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = documentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar emphasisRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = emphasisRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar feedRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['article']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = feedRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar figureRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'figure'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = figureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-label'\n }],\n name: 'form'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-labelledby'\n }],\n name: 'form'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'name'\n }],\n name: 'form'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = formRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar genericRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'span'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'div'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = genericRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar gridRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-multiselectable': null,\n 'aria-readonly': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'role',\n value: 'grid'\n }],\n name: 'table'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'table']]\n};\nvar _default = gridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar gridcellRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-selected': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'role',\n value: 'gridcell'\n }],\n name: 'td'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row'],\n requiredContextRole: ['row'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'widget']]\n};\nvar _default = gridcellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar groupRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-disabled': null\n },\n relatedConcepts: [{\n concept: {\n name: 'details'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'fieldset'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'optgroup'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = groupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar headingRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-level': '2'\n },\n relatedConcepts: [{\n concept: {\n name: 'h1'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h2'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h3'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h4'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h5'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h6'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-level': '2'\n },\n superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = headingRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar imgRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'alt'\n }],\n name: 'img'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'alt'\n }],\n name: 'img'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'imggroup'\n },\n module: 'DTB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = imgRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar insertionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = insertionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar linkRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'href'\n }],\n name: 'a'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'href'\n }],\n name: 'area'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'href'\n }],\n name: 'link'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = linkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar listRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menu'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'ol'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'ul'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['listitem']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar listboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-invalid': null,\n 'aria-multiselectable': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-orientation': 'vertical'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['>1'],\n name: 'size'\n }, {\n name: 'multiple'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['>1'],\n name: 'size'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'multiple'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'datalist'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'list'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'select'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['option', 'group'], ['option']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = listboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar listitemRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-level': null,\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n constraints: ['direct descendant of ol, ul or menu'],\n name: 'li'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'item'\n },\n module: 'XForms'\n }],\n requireContextRole: ['directory', 'list'],\n requiredContextRole: ['directory', 'list'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar logRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-live': 'polite'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = logRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar mainRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'main'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = mainRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar marqueeRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = marqueeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar mathRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'math'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = mathRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': 'vertical'\n },\n relatedConcepts: [{\n concept: {\n name: 'MENU'\n },\n module: 'JAPI'\n }, {\n concept: {\n name: 'list'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'select'\n },\n module: 'XForms'\n }, {\n concept: {\n name: 'sidebar'\n },\n module: 'DTB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = menuRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menubarRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': 'horizontal'\n },\n relatedConcepts: [{\n concept: {\n name: 'toolbar'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select', 'menu'], ['roletype', 'structure', 'section', 'group', 'select', 'menu']]\n};\nvar _default = menubarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuitemRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n name: 'MENU_ITEM'\n },\n module: 'JAPI'\n }, {\n concept: {\n name: 'listitem'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'menuitem'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'option'\n },\n module: 'ARIA'\n }],\n requireContextRole: ['group', 'menu', 'menubar'],\n requiredContextRole: ['group', 'menu', 'menubar'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = menuitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuitemcheckboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menuitem'\n },\n module: 'ARIA'\n }],\n requireContextRole: ['group', 'menu', 'menubar'],\n requiredContextRole: ['group', 'menu', 'menubar'],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input', 'checkbox'], ['roletype', 'widget', 'command', 'menuitem']]\n};\nvar _default = menuitemcheckboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuitemradioRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menuitem'\n },\n module: 'ARIA'\n }],\n requireContextRole: ['group', 'menu', 'menubar'],\n requiredContextRole: ['group', 'menu', 'menubar'],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input', 'checkbox', 'menuitemcheckbox'], ['roletype', 'widget', 'command', 'menuitem', 'menuitemcheckbox'], ['roletype', 'widget', 'input', 'radio']]\n};\nvar _default = menuitemradioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar meterRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-valuetext': null,\n 'aria-valuemax': '100',\n 'aria-valuemin': '0'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-valuenow': null\n },\n superClass: [['roletype', 'structure', 'range']]\n};\nvar _default = meterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar navigationRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'nav'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = navigationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar noneRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: []\n};\nvar _default = noneRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar noteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = noteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar optionRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-checked': null,\n 'aria-posinset': null,\n 'aria-setsize': null,\n 'aria-selected': 'false'\n },\n relatedConcepts: [{\n concept: {\n name: 'item'\n },\n module: 'XForms'\n }, {\n concept: {\n name: 'listitem'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'option'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-selected': 'false'\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = optionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar paragraphRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = paragraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar presentationRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = presentationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar progressbarRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-valuetext': null\n },\n relatedConcepts: [{\n concept: {\n name: 'progress'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'status'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = progressbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar radioRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-checked': null,\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'radio'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = radioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar radiogroupRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null\n },\n relatedConcepts: [{\n concept: {\n name: 'list'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['radio']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = radiogroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar regionRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-label'\n }],\n name: 'section'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-labelledby'\n }],\n name: 'section'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'Device Independence Glossart perceivable unit'\n }\n }, {\n concept: {\n name: 'frame'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = regionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rowRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-colindex': null,\n 'aria-expanded': null,\n 'aria-level': null,\n 'aria-posinset': null,\n 'aria-rowindex': null,\n 'aria-selected': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n name: 'tr'\n },\n module: 'HTML'\n }],\n requireContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n requiredContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n requiredOwnedElements: [['cell'], ['columnheader'], ['gridcell'], ['rowheader']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'group'], ['roletype', 'widget']]\n};\nvar _default = rowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rowgroupRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'tbody'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'tfoot'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'thead'\n },\n module: 'HTML'\n }],\n requireContextRole: ['grid', 'table', 'treegrid'],\n requiredContextRole: ['grid', 'table', 'treegrid'],\n requiredOwnedElements: [['row']],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = rowgroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rowheaderRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-sort': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'scope',\n value: 'row'\n }],\n name: 'th'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'scope',\n value: 'rowgroup'\n }],\n name: 'th'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row', 'rowgroup'],\n requiredContextRole: ['row', 'rowgroup'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = rowheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar scrollbarRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-valuetext': null,\n 'aria-orientation': 'vertical',\n 'aria-valuemax': '100',\n 'aria-valuemin': '0'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-controls': null,\n 'aria-valuenow': null\n },\n superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = scrollbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar searchRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = searchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar searchboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'search'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'input', 'textbox']]\n};\nvar _default = searchboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar separatorRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-orientation': 'horizontal',\n 'aria-valuemax': '100',\n 'aria-valuemin': '0',\n 'aria-valuenow': null,\n 'aria-valuetext': null\n },\n relatedConcepts: [{\n concept: {\n name: 'hr'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = separatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar sliderRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-haspopup': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-valuetext': null,\n 'aria-orientation': 'horizontal',\n 'aria-valuemax': '100',\n 'aria-valuemin': '0'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'range'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-valuenow': null\n },\n superClass: [['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = sliderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar spinbuttonRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-valuetext': null,\n 'aria-valuenow': '0'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'number'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite'], ['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = spinbuttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar statusRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-atomic': 'true',\n 'aria-live': 'polite'\n },\n relatedConcepts: [{\n concept: {\n name: 'output'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = statusRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar strongRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = strongRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar subscriptRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = subscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar superscriptRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = superscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar switchRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'button'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input', 'checkbox']]\n};\nvar _default = switchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tabRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-posinset': null,\n 'aria-setsize': null,\n 'aria-selected': 'false'\n },\n relatedConcepts: [],\n requireContextRole: ['tablist'],\n requiredContextRole: ['tablist'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'sectionhead'], ['roletype', 'widget']]\n};\nvar _default = tabRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tableRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-colcount': null,\n 'aria-rowcount': null\n },\n relatedConcepts: [{\n concept: {\n name: 'table'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tableRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tablistRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-level': null,\n 'aria-multiselectable': null,\n 'aria-orientation': 'horizontal'\n },\n relatedConcepts: [{\n module: 'DAISY',\n concept: {\n name: 'guide'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['tab']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite']]\n};\nvar _default = tablistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tabpanelRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tabpanelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar termRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'dfn'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'dt'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = termRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar textboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-autocomplete': null,\n 'aria-errormessage': null,\n 'aria-haspopup': null,\n 'aria-invalid': null,\n 'aria-multiline': null,\n 'aria-placeholder': null,\n 'aria-readonly': null,\n 'aria-required': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'type'\n }, {\n constraints: ['undefined'],\n name: 'list'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'email'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'tel'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'text'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'url'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'input'\n },\n module: 'XForms'\n }, {\n concept: {\n name: 'textarea'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = textboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar timeRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = timeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar timerRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'status']]\n};\nvar _default = timerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar toolbarRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': 'horizontal'\n },\n relatedConcepts: [{\n concept: {\n name: 'menubar'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = toolbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tooltipRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tooltipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar treeRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-multiselectable': null,\n 'aria-required': null,\n 'aria-orientation': 'vertical'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['treeitem', 'group'], ['treeitem']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = treeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar treegridRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'grid'], ['roletype', 'structure', 'section', 'table', 'grid'], ['roletype', 'widget', 'composite', 'select', 'tree'], ['roletype', 'structure', 'section', 'group', 'select', 'tree']]\n};\nvar _default = treegridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar treeitemRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-expanded': null,\n 'aria-haspopup': null\n },\n relatedConcepts: [],\n requireContextRole: ['group', 'tree'],\n requiredContextRole: ['group', 'tree'],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-selected': null\n },\n superClass: [['roletype', 'structure', 'section', 'listitem'], ['roletype', 'widget', 'input', 'option']]\n};\nvar _default = treeitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.roles = exports.roleElements = exports.elementRoles = exports.dom = exports.aria = void 0;\nvar _ariaPropsMap = _interopRequireDefault(require(\"./ariaPropsMap\"));\nvar _domMap = _interopRequireDefault(require(\"./domMap\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nvar _elementRoleMap = _interopRequireDefault(require(\"./elementRoleMap\"));\nvar _roleElementMap = _interopRequireDefault(require(\"./roleElementMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar aria = _ariaPropsMap.default;\nexports.aria = aria;\nvar dom = _domMap.default;\nexports.dom = dom;\nvar roles = _rolesMap.default;\nexports.roles = roles;\nvar elementRoles = _elementRoleMap.default;\nexports.elementRoles = elementRoles;\nvar roleElements = _roleElementMap.default;\nexports.roleElements = roleElements;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar roleElement = [];\nvar keys = _rolesMap.default.keys();\nvar _loop = function _loop(i) {\n var key = keys[i];\n var role = _rolesMap.default.get(key);\n if (role) {\n var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n for (var k = 0; k < concepts.length; k++) {\n var relation = concepts[k];\n if (relation.module === 'HTML') {\n var concept = relation.concept;\n if (concept) {\n var roleElementRelation = roleElement.find(function (item) {\n return item[0] === key;\n });\n var relationConcepts = void 0;\n if (roleElementRelation) {\n relationConcepts = roleElementRelation[1];\n } else {\n relationConcepts = [];\n }\n relationConcepts.push(concept);\n roleElement.push([key, relationConcepts]);\n }\n }\n }\n }\n};\nfor (var i = 0; i < keys.length; i++) {\n _loop(i);\n}\nvar roleElementMap = {\n entries: function entries() {\n return roleElement;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(roleElement),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, key, roleElement);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = roleElement.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!roleElementMap.get(key);\n },\n keys: function keys() {\n return roleElement.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return roleElement.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(roleElementMap, roleElementMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _ariaAbstractRoles = _interopRequireDefault(require(\"./etc/roles/ariaAbstractRoles\"));\nvar _ariaLiteralRoles = _interopRequireDefault(require(\"./etc/roles/ariaLiteralRoles\"));\nvar _ariaDpubRoles = _interopRequireDefault(require(\"./etc/roles/ariaDpubRoles\"));\nvar _ariaGraphicsRoles = _interopRequireDefault(require(\"./etc/roles/ariaGraphicsRoles\"));\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar roles = [].concat(_ariaAbstractRoles.default, _ariaLiteralRoles.default, _ariaDpubRoles.default, _ariaGraphicsRoles.default);\nroles.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n roleDefinition = _ref2[1];\n // Conglomerate the properties\n var _iterator = _createForOfIteratorHelper(roleDefinition.superClass),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var superClassIter = _step.value;\n var _iterator2 = _createForOfIteratorHelper(superClassIter),\n _step2;\n try {\n var _loop = function _loop() {\n var superClassName = _step2.value;\n var superClassRoleTuple = roles.find(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n name = _ref4[0];\n return name === superClassName;\n });\n if (superClassRoleTuple) {\n var superClassDefinition = superClassRoleTuple[1];\n for (var _i2 = 0, _Object$keys = Object.keys(superClassDefinition.props); _i2 < _Object$keys.length; _i2++) {\n var prop = _Object$keys[_i2];\n if (\n // $FlowIssue Accessing the hasOwnProperty on the Object prototype is fine.\n !Object.prototype.hasOwnProperty.call(roleDefinition.props, prop)) {\n Object.assign(roleDefinition.props, _defineProperty({}, prop, superClassDefinition.props[prop]));\n }\n }\n }\n };\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n});\nvar rolesMap = {\n entries: function entries() {\n return roles;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator3 = _createForOfIteratorHelper(roles),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _step3$value = _slicedToArray(_step3.value, 2),\n key = _step3$value[0],\n values = _step3$value[1];\n fn.call(thisArg, values, key, roles);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n },\n get: function get(key) {\n var item = roles.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!rolesMap.get(key);\n },\n keys: function keys() {\n return roles.map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n key = _ref6[0];\n return key;\n });\n },\n values: function values() {\n return roles.map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n values = _ref8[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(rolesMap, rolesMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = iterationDecorator;\nvar _iteratorProxy = _interopRequireDefault(require(\"./iteratorProxy\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction iterationDecorator(collection, entries) {\n if (typeof Symbol === 'function' && _typeof(Symbol.iterator) === 'symbol') {\n Object.defineProperty(collection, Symbol.iterator, {\n value: _iteratorProxy.default.bind(entries)\n });\n }\n return collection;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// eslint-disable-next-line no-unused-vars\nfunction iteratorProxy() {\n var values = this;\n var index = 0;\n var iter = {\n '@@iterator': function iterator() {\n return iter;\n },\n next: function next() {\n if (index < values.length) {\n var value = values[index];\n index = index + 1;\n return {\n done: false,\n value: value\n };\n } else {\n return {\n done: true\n };\n }\n }\n };\n return iter;\n}\nvar _default = iteratorProxy;\nexports.default = _default;","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = 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 (0, _defineProperty2.default)(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}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (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 === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\nconst ansiStyles = require('ansi-styles');\nconst {stdout: stdoutColor, stderr: stderrColor} = require('supports-color');\nconst {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n} = require('./util');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m'\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level > 3 || options.level < 0) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nclass ChalkClass {\n\tconstructor(options) {\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = {};\n\tapplyOptions(chalk, options);\n\n\tchalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_);\n\n\tObject.setPrototypeOf(chalk, Chalk.prototype);\n\tObject.setPrototypeOf(chalk.template, chalk);\n\n\tchalk.template.constructor = () => {\n\t\tthrow new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.');\n\t};\n\n\tchalk.template.Instance = ChalkClass;\n\n\treturn chalk.template;\n};\n\nfunction Chalk(options) {\n\treturn chalkFactory(options);\n}\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t}\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this._styler, true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t}\n};\n\nconst usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.color[levelMapping[level]][model](...arguments_), ansiStyles.color.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nfor (const model of usedModels) {\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(ansiStyles.bgColor[levelMapping[level]][model](...arguments_), ansiStyles.bgColor.close, this._styler);\n\t\t\t\treturn createBuilder(this, styler, this._isEmpty);\n\t\t\t};\n\t\t}\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this._generator.level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis._generator.level = level;\n\t\t}\n\t}\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\tconst builder = (...arguments_) => {\n\t\t// Single argument is hot path, implicit coercion is faster than anything\n\t\t// eslint-disable-next-line no-implicit-coercion\n\t\treturn applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\t};\n\n\t// `__proto__` is used because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tbuilder.__proto__ = proto; // eslint-disable-line no-proto\n\n\tbuilder._generator = self;\n\tbuilder._styler = _styler;\n\tbuilder._isEmpty = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self._isEmpty ? '' : string;\n\t}\n\n\tlet styler = self._styler;\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.indexOf('\\u001B') !== -1) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nlet template;\nconst chalkTag = (chalk, ...strings) => {\n\tconst [firstString] = strings;\n\n\tif (!Array.isArray(firstString)) {\n\t\t// If chalk() was called by itself or with a string,\n\t\t// return the string itself as a string.\n\t\treturn strings.join(' ');\n\t}\n\n\tconst arguments_ = strings.slice(1);\n\tconst parts = [firstString.raw[0]];\n\n\tfor (let i = 1; i < firstString.length; i++) {\n\t\tparts.push(\n\t\t\tString(arguments_[i - 1]).replace(/[{}\\\\]/g, '\\\\$&'),\n\t\t\tString(firstString.raw[i])\n\t\t);\n\t}\n\n\tif (template === undefined) {\n\t\ttemplate = require('./templates');\n\t}\n\n\treturn template(chalk, parts.join(''));\n};\n\nObject.defineProperties(Chalk.prototype, styles);\n\nconst chalk = Chalk(); // eslint-disable-line new-cap\nchalk.supportsColor = stdoutColor;\nchalk.stderr = Chalk({level: stderrColor ? stderrColor.level : 0}); // eslint-disable-line new-cap\nchalk.stderr.supportsColor = stderrColor;\n\n// For TypeScript\nchalk.Level = {\n\tNone: 0,\n\tBasic: 1,\n\tAnsi256: 2,\n\tTrueColor: 3,\n\t0: 'None',\n\t1: 'Basic',\n\t2: 'Ansi256',\n\t3: 'TrueColor'\n};\n\nmodule.exports = chalk;\n","'use strict';\nconst TEMPLATE_REGEX = /(?:\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.))|(?:\\{(~)?(\\w+(?:\\([^)]*\\))?(?:\\.\\w+(?:\\([^)]*\\))?)*)(?:[ \\t]|(?=\\r?\\n)))|(\\})|((?:.|[\\r\\n\\f])+?)/gi;\nconst STYLE_REGEX = /(?:^|\\.)(\\w+)(?:\\(([^)]*)\\))?/g;\nconst STRING_REGEX = /^(['\"])((?:\\\\.|(?!\\1)[^\\\\])*)\\1$/;\nconst ESCAPE_REGEX = /\\\\(u(?:[a-f\\d]{4}|\\{[a-f\\d]{1,6}\\})|x[a-f\\d]{2}|.)|([^\\\\])/gi;\n\nconst ESCAPES = new Map([\n\t['n', '\\n'],\n\t['r', '\\r'],\n\t['t', '\\t'],\n\t['b', '\\b'],\n\t['f', '\\f'],\n\t['v', '\\v'],\n\t['0', '\\0'],\n\t['\\\\', '\\\\'],\n\t['e', '\\u001B'],\n\t['a', '\\u0007']\n]);\n\nfunction unescape(c) {\n\tconst u = c[0] === 'u';\n\tconst bracket = c[1] === '{';\n\n\tif ((u && !bracket && c.length === 5) || (c[0] === 'x' && c.length === 3)) {\n\t\treturn String.fromCharCode(parseInt(c.slice(1), 16));\n\t}\n\n\tif (u && bracket) {\n\t\treturn String.fromCodePoint(parseInt(c.slice(2, -1), 16));\n\t}\n\n\treturn ESCAPES.get(c) || c;\n}\n\nfunction parseArguments(name, arguments_) {\n\tconst results = [];\n\tconst chunks = arguments_.trim().split(/\\s*,\\s*/g);\n\tlet matches;\n\n\tfor (const chunk of chunks) {\n\t\tconst number = Number(chunk);\n\t\tif (!Number.isNaN(number)) {\n\t\t\tresults.push(number);\n\t\t} else if ((matches = chunk.match(STRING_REGEX))) {\n\t\t\tresults.push(matches[2].replace(ESCAPE_REGEX, (m, escape, character) => escape ? unescape(escape) : character));\n\t\t} else {\n\t\t\tthrow new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction parseStyle(style) {\n\tSTYLE_REGEX.lastIndex = 0;\n\n\tconst results = [];\n\tlet matches;\n\n\twhile ((matches = STYLE_REGEX.exec(style)) !== null) {\n\t\tconst name = matches[1];\n\n\t\tif (matches[2]) {\n\t\t\tconst args = parseArguments(name, matches[2]);\n\t\t\tresults.push([name].concat(args));\n\t\t} else {\n\t\t\tresults.push([name]);\n\t\t}\n\t}\n\n\treturn results;\n}\n\nfunction buildStyle(chalk, styles) {\n\tconst enabled = {};\n\n\tfor (const layer of styles) {\n\t\tfor (const style of layer.styles) {\n\t\t\tenabled[style[0]] = layer.inverse ? null : style.slice(1);\n\t\t}\n\t}\n\n\tlet current = chalk;\n\tfor (const [styleName, styles] of Object.entries(enabled)) {\n\t\tif (!Array.isArray(styles)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!(styleName in current)) {\n\t\t\tthrow new Error(`Unknown Chalk style: ${styleName}`);\n\t\t}\n\n\t\tcurrent = styles.length > 0 ? current[styleName](...styles) : current[styleName];\n\t}\n\n\treturn current;\n}\n\nmodule.exports = (chalk, temporary) => {\n\tconst styles = [];\n\tconst chunks = [];\n\tlet chunk = [];\n\n\t// eslint-disable-next-line max-params\n\ttemporary.replace(TEMPLATE_REGEX, (m, escapeCharacter, inverse, style, close, character) => {\n\t\tif (escapeCharacter) {\n\t\t\tchunk.push(unescape(escapeCharacter));\n\t\t} else if (style) {\n\t\t\tconst string = chunk.join('');\n\t\t\tchunk = [];\n\t\t\tchunks.push(styles.length === 0 ? string : buildStyle(chalk, styles)(string));\n\t\t\tstyles.push({inverse, styles: parseStyle(style)});\n\t\t} else if (close) {\n\t\t\tif (styles.length === 0) {\n\t\t\t\tthrow new Error('Found extraneous } in Chalk template literal');\n\t\t\t}\n\n\t\t\tchunks.push(buildStyle(chalk, styles)(chunk.join('')));\n\t\t\tchunk = [];\n\t\t\tstyles.pop();\n\t\t} else {\n\t\t\tchunk.push(character);\n\t\t}\n\t});\n\n\tchunks.push(chunk.join(''));\n\n\tif (styles.length > 0) {\n\t\tconst errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\\`}\\`)`;\n\t\tthrow new Error(errMsg);\n\t}\n\n\treturn chunks.join('');\n};\n","'use strict';\n\nconst stringReplaceAll = (string, substring, replacer) => {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.substr(endIndex, index - endIndex) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nconst stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.substr(endIndex);\n\treturn returnValue;\n};\n\nmodule.exports = {\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex\n};\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (typeof exports == 'object') {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else if (typeof define == 'function' && define.amd) {\n\t\t// For AMD. Register as an anonymous module.\n\t\tdefine([], factory.bind(root, root));\n\t} else {\n\t\t// For browser globals (not exposing the function separately).\n\t\tfactory(root);\n\t}\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n","'use strict';\n\nvar assign = require('object.assign');\nvar callBound = require('call-bind/callBound');\nvar flags = require('regexp.prototype.flags');\nvar GetIntrinsic = require('get-intrinsic');\nvar getIterator = require('es-get-iterator');\nvar getSideChannel = require('side-channel');\nvar is = require('object-is');\nvar isArguments = require('is-arguments');\nvar isArray = require('isarray');\nvar isArrayBuffer = require('is-array-buffer');\nvar isDate = require('is-date-object');\nvar isRegex = require('is-regex');\nvar isSharedArrayBuffer = require('is-shared-array-buffer');\nvar objectKeys = require('object-keys');\nvar whichBoxedPrimitive = require('which-boxed-primitive');\nvar whichCollection = require('which-collection');\nvar whichTypedArray = require('which-typed-array');\n\nvar byteLength = callBound('ArrayBuffer.prototype.byteLength', true)\n\t|| function byteLength(ab) { return ab.byteLength; }; // in node < 0.11, byteLength is an own nonconfigurable property\nvar sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);\n\nvar $getTime = callBound('Date.prototype.getTime');\nvar gPO = Object.getPrototypeOf;\nvar $objToString = callBound('Object.prototype.toString');\n\nvar $Set = GetIntrinsic('%Set%', true);\nvar $mapHas = callBound('Map.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSize = callBound('Map.prototype.size', true);\nvar $setAdd = callBound('Set.prototype.add', true);\nvar $setDelete = callBound('Set.prototype.delete', true);\nvar $setHas = callBound('Set.prototype.has', true);\nvar $setSize = callBound('Set.prototype.size', true);\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L401-L414\nfunction setHasEqualElement(set, val1, opts, channel) {\n var i = getIterator(set);\n var result;\n while ((result = i.next()) && !result.done) {\n if (internalDeepEqual(val1, result.value, opts, channel)) { // eslint-disable-line no-use-before-define\n // Remove the matching element to make sure we do not check that again.\n $setDelete(set, result.value);\n return true;\n }\n }\n\n return false;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L416-L439\nfunction findLooseMatchingPrimitives(prim) {\n if (typeof prim === 'undefined') {\n return null;\n }\n if (typeof prim === 'object') { // Only pass in null as object!\n return void 0;\n }\n if (typeof prim === 'symbol') {\n return false;\n }\n if (typeof prim === 'string' || typeof prim === 'number') {\n // Loose equal entries exist only if the string is possible to convert to a regular number and not NaN.\n return +prim === +prim; // eslint-disable-line no-implicit-coercion\n }\n return true;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L449-L460\nfunction mapMightHaveLoosePrim(a, b, prim, item, opts, channel) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = $mapGet(b, altValue);\n var looseOpts = assign({}, opts, { strict: false });\n if (\n (typeof curB === 'undefined' && !$mapHas(b, altValue))\n // eslint-disable-next-line no-use-before-define\n || !internalDeepEqual(item, curB, looseOpts, channel)\n ) {\n return false;\n }\n // eslint-disable-next-line no-use-before-define\n return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L441-L447\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n\n return $setHas(b, altValue) && !$setHas(a, altValue);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L518-L533\nfunction mapHasEqualEntry(set, map, key1, item1, opts, channel) {\n var i = getIterator(set);\n var result;\n var key2;\n while ((result = i.next()) && !result.done) {\n key2 = result.value;\n if (\n // eslint-disable-next-line no-use-before-define\n internalDeepEqual(key1, key2, opts, channel)\n // eslint-disable-next-line no-use-before-define\n && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)\n ) {\n $setDelete(set, key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction internalDeepEqual(actual, expected, options, channel) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n var actualBoxed = whichBoxedPrimitive(actual);\n var expectedBoxed = whichBoxedPrimitive(expected);\n if (actualBoxed !== expectedBoxed) {\n return false;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected; // eslint-disable-line eqeqeq\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // see https://github.com/nodejs/node/commit/d3aafd02efd3a403d646a3044adcf14e63a88d32 for memos/channel inspiration\n\n var hasActual = channel.has(actual);\n var hasExpected = channel.has(expected);\n var sentinel;\n if (hasActual && hasExpected) {\n if (channel.get(actual) === channel.get(expected)) {\n return true;\n }\n } else {\n sentinel = {};\n }\n if (!hasActual) { channel.set(actual, sentinel); }\n if (!hasExpected) { channel.set(expected, sentinel); }\n\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts, channel);\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x));\n}\n\nfunction setEquiv(a, b, opts, channel) {\n if ($setSize(a) !== $setSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n while ((resultA = iA.next()) && !resultA.done) {\n if (resultA.value && typeof resultA.value === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n } else if (!$setHas(b, resultA.value)) {\n if (opts.strict) { return false; }\n if (!setMightHaveLoosePrim(a, b, resultA.value)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n // We have to check if a primitive value is already matching and only if it's not, go hunting for it.\n if (resultB.value && typeof resultB.value === 'object') {\n if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && !$setHas(a, resultB.value)\n && !setHasEqualElement(set, resultB.value, opts.strict, channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction mapEquiv(a, b, opts, channel) {\n if ($mapSize(a) !== $mapSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n var key;\n var item1;\n var item2;\n while ((resultA = iA.next()) && !resultA.done) {\n key = resultA.value[0];\n item1 = resultA.value[1];\n if (key && typeof key === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n } else {\n item2 = $mapGet(b, key);\n if ((typeof item2 === 'undefined' && !$mapHas(b, key)) || !internalDeepEqual(item1, item2, opts, channel)) {\n if (opts.strict) {\n return false;\n }\n if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n }\n }\n }\n\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n key = resultB.value[0];\n item2 = resultB.value[1];\n if (key && typeof key === 'object') {\n if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel))\n && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, { strict: false }), channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts, channel) {\n /* eslint max-statements: [2, 100], max-lines-per-function: [2, 120], max-depth: [2, 5], max-lines: [2, 400] */\n var i, key;\n\n if (typeof a !== typeof b) { return false; }\n if (a == null || b == null) { return false; }\n\n if ($objToString(a) !== $objToString(b)) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsArray = isArray(a);\n var bIsArray = isArray(b);\n if (aIsArray !== bIsArray) { return false; }\n\n // TODO: replace when a cross-realm brand check is available\n var aIsError = a instanceof Error;\n var bIsError = b instanceof Error;\n if (aIsError !== bIsError) { return false; }\n if (aIsError || bIsError) {\n if (a.name !== b.name || a.message !== b.message) { return false; }\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) {\n return false;\n }\n\n var aIsDate = isDate(a);\n var bIsDate = isDate(b);\n if (aIsDate !== bIsDate) { return false; }\n if (aIsDate || bIsDate) { // && would work too, because both are true or both false here\n if ($getTime(a) !== $getTime(b)) { return false; }\n }\n if (opts.strict && gPO && gPO(a) !== gPO(b)) { return false; }\n\n var aWhich = whichTypedArray(a);\n var bWhich = whichTypedArray(b);\n if ((aWhich || bWhich) && aWhich !== bWhich) {\n return false;\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n var aIsArrayBuffer = isArrayBuffer(a);\n var bIsArrayBuffer = isArrayBuffer(b);\n if (aIsArrayBuffer !== bIsArrayBuffer) { return false; }\n if (aIsArrayBuffer || bIsArrayBuffer) { // && would work too, because both are true or both false here\n if (byteLength(a) !== byteLength(b)) { return false; }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n\n var aIsSAB = isSharedArrayBuffer(a);\n var bIsSAB = isSharedArrayBuffer(b);\n if (aIsSAB !== bIsSAB) { return false; }\n if (aIsSAB || bIsSAB) { // && would work too, because both are true or both false here\n if (sabByteLength(a) !== sabByteLength(b)) { return false; }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n\n if (typeof a !== typeof b) { return false; }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; } // eslint-disable-line eqeqeq\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!internalDeepEqual(a[key], b[key], opts, channel)) { return false; }\n }\n\n var aCollection = whichCollection(a);\n var bCollection = whichCollection(b);\n if (aCollection !== bCollection) {\n return false;\n }\n if (aCollection === 'Set' || bCollection === 'Set') { // aCollection === bCollection\n return setEquiv(a, b, opts, channel);\n }\n if (aCollection === 'Map') { // aCollection === bCollection\n return mapEquiv(a, b, opts, channel);\n }\n\n return true;\n}\n\nmodule.exports = function deepEqual(a, b, opts) {\n return internalDeepEqual(a, b, opts, getSideChannel());\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\ntry {\n\tnull.error; // eslint-disable-line no-unused-expressions\n} catch (e) {\n\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\tvar errorProto = getProto(getProto(e));\n\tINTRINSICS['%Error.prototype%'] = errorProto;\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $BigInt = typeof BigInt !== 'undefined' && BigInt;\n\nmodule.exports = function hasNativeBigInts() {\n\treturn typeof $BigInt === 'function'\n\t\t&& typeof BigInt === 'function'\n\t\t&& typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers\n\t\t&& typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nmodule.exports = (string, count = 1, options) => {\n\toptions = {\n\t\tindent: ' ',\n\t\tincludeEmptyLines: false,\n\t\t...options\n\t};\n\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`input\\` to be a \\`string\\`, got \\`${typeof string}\\``\n\t\t);\n\t}\n\n\tif (typeof count !== 'number') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`count\\` to be a \\`number\\`, got \\`${typeof count}\\``\n\t\t);\n\t}\n\n\tif (typeof options.indent !== 'string') {\n\t\tthrow new TypeError(\n\t\t\t`Expected \\`options.indent\\` to be a \\`string\\`, got \\`${typeof options.indent}\\``\n\t\t);\n\t}\n\n\tif (count === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = options.includeEmptyLines ? /^/gm : /^(?!\\s*$)/gm;\n\n\treturn string.replace(regex, options.indent.repeat(count));\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar has = require('has');\nvar channel = require('side-channel')();\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar SLOT = {\n\tassert: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tchannel.assert(O);\n\t\tif (!SLOT.has(O, slot)) {\n\t\t\tthrow new $TypeError('`' + slot + '` is not present on `O`');\n\t\t}\n\t},\n\tget: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn slots && slots['$' + slot];\n\t},\n\thas: function (O, slot) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\treturn !!slots && has(slots, '$' + slot);\n\t},\n\tset: function (O, slot, V) {\n\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\tthrow new $TypeError('`O` is not an object');\n\t\t}\n\t\tif (typeof slot !== 'string') {\n\t\t\tthrow new $TypeError('`slot` must be a string');\n\t\t}\n\t\tvar slots = channel.get(O);\n\t\tif (!slots) {\n\t\t\tslots = {};\n\t\t\tchannel.set(O, slots);\n\t\t}\n\t\tslots['$' + slot] = V;\n\t}\n};\n\nif (Object.freeze) {\n\tObject.freeze(SLOT);\n}\n\nmodule.exports = SLOT;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar GetIntrinsic = require('get-intrinsic');\nvar isTypedArray = require('is-typed-array');\n\nvar $ArrayBuffer = GetIntrinsic('ArrayBuffer', true);\nvar $Float32Array = GetIntrinsic('Float32Array', true);\nvar $byteLength = callBound('ArrayBuffer.prototype.byteLength', true);\n\n// in node 0.10, ArrayBuffers have no prototype methods, but have an own slot-checking `slice` method\nvar abSlice = $ArrayBuffer && !$byteLength && new $ArrayBuffer().slice;\nvar $abSlice = abSlice && callBind(abSlice);\n\nmodule.exports = $byteLength || $abSlice\n\t? function isArrayBuffer(obj) {\n\t\tif (!obj || typeof obj !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\tif ($byteLength) {\n\t\t\t\t$byteLength(obj);\n\t\t\t} else {\n\t\t\t\t$abSlice(obj, 0);\n\t\t\t}\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t: $Float32Array\n\t\t// in node 0.8, ArrayBuffers have no prototype or own methods\n\t\t? function IsArrayBuffer(obj) {\n\t\t\ttry {\n\t\t\t\treturn (new $Float32Array(obj)).buffer === obj && !isTypedArray(obj);\n\t\t\t} catch (e) {\n\t\t\t\treturn typeof obj === 'object' && e.name === 'RangeError';\n\t\t\t}\n\t\t}\n\t\t: function isArrayBuffer(obj) { // eslint-disable-line no-unused-vars\n\t\t\treturn false;\n\t\t};\n","'use strict';\n\nvar hasBigInts = require('has-bigints')();\n\nif (hasBigInts) {\n\tvar bigIntValueOf = BigInt.prototype.valueOf;\n\tvar tryBigInt = function tryBigIntObject(value) {\n\t\ttry {\n\t\t\tbigIntValueOf.call(value);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t};\n\n\tmodule.exports = function isBigInt(value) {\n\t\tif (\n\t\t\tvalue === null\n\t\t\t|| typeof value === 'undefined'\n\t\t\t|| typeof value === 'boolean'\n\t\t\t|| typeof value === 'string'\n\t\t\t|| typeof value === 'number'\n\t\t\t|| typeof value === 'symbol'\n\t\t\t|| typeof value === 'function'\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn tryBigInt(value);\n\t};\n} else {\n\tmodule.exports = function isBigInt(value) {\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar $boolToStr = callBound('Boolean.prototype.toString');\nvar $toString = callBound('Object.prototype.toString');\n\nvar tryBooleanObject = function booleanBrandCheck(value) {\n\ttry {\n\t\t$boolToStr(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar boolClass = '[object Boolean]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isBoolean(value) {\n\tif (typeof value === 'boolean') {\n\t\treturn true;\n\t}\n\tif (value === null || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Map) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Map; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar numToStr = Number.prototype.toString;\nvar tryNumberObject = function tryNumberObject(value) {\n\ttry {\n\t\tnumToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar numClass = '[object Number]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isNumberObject(value) {\n\tif (typeof value === 'number') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Set) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$setHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isSet(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$setHas.call(x);\n\t\tif ($mapHas) {\n\t\t\ttry {\n\t\t\t\t$mapHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Set; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\n\nvar $byteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);\n\nmodule.exports = $byteLength\n\t? function isSharedArrayBuffer(obj) {\n\t\tif (!obj || typeof obj !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\t$byteLength(obj);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t: function isSharedArrayBuffer(obj) { // eslint-disable-line no-unused-vars\n\t\treturn false;\n\t};\n","'use strict';\n\nvar strValue = String.prototype.valueOf;\nvar tryStringObject = function tryStringObject(value) {\n\ttry {\n\t\tstrValue.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar strClass = '[object String]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isString(value) {\n\tif (typeof value === 'string') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;\nvar $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;\n\nvar exported;\n\nif (!$WeakMap) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $WeakMap ? $WeakMap.prototype.has : null;\nvar $setHas = $WeakSet ? $WeakSet.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isWeakMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x, $mapHas);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x, $setHas);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $WeakMap; // core-js workaround, pre-v3\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\n\nvar $WeakSet = GetIntrinsic('%WeakSet%', true);\n\nvar $setHas = callBound('WeakSet.prototype.has', true);\n\nif ($setHas) {\n\tvar $mapHas = callBound('WeakMap.prototype.has', true);\n\n\tmodule.exports = function isWeakSet(x) {\n\t\tif (!x || typeof x !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\t$setHas(x, $setHas);\n\t\t\tif ($mapHas) {\n\t\t\t\ttry {\n\t\t\t\t\t$mapHas(x, $mapHas);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn x instanceof $WeakSet; // core-js workaround, pre-v3\n\t\t} catch (e) {}\n\t\treturn false;\n\t};\n} else {\n\t// eslint-disable-next-line no-unused-vars\n\tmodule.exports = function isWeakSet(x) {\n\t\t// `WeakSet` does not exist, or does not have a `has` method\n\t\treturn false;\n\t};\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\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 */\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","/**\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 return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\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 return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\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 */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","/**\n * 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","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * 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","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\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","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\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 return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nmodule.exports = isEqualWith;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\r\n})(this, (function () { 'use strict';\r\n\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n var locationHref = '';\r\n var _useWebWorker = false;\r\n var initialDefaultFrame = -999999;\r\n\r\n var setWebWorker = function setWebWorker(flag) {\r\n _useWebWorker = !!flag;\r\n };\r\n\r\n var getWebWorker = function getWebWorker() {\r\n return _useWebWorker;\r\n };\r\n\r\n var setLocationHref = function setLocationHref(value) {\r\n locationHref = value;\r\n };\r\n\r\n var getLocationHref = function getLocationHref() {\r\n return locationHref;\r\n };\r\n\r\n function createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n }\r\n\r\n function extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n }\r\n\r\n function getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n }\r\n\r\n function createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n }\r\n\r\n // import Howl from '../../3rd_party/howler';\r\n var audioControllerFactory = function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function addAudio(audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function pause() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function resume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function setRate(rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function createAudio(assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n }\r\n\r\n if (window.Howl) {\r\n return new window.Howl({\r\n src: [assetPath]\r\n });\r\n }\r\n\r\n return {\r\n isPlaying: false,\r\n play: function play() {\r\n this.isPlaying = true;\r\n },\r\n seek: function seek() {\r\n this.isPlaying = false;\r\n },\r\n playing: function playing() {},\r\n rate: function rate() {},\r\n setVolume: function setVolume() {}\r\n };\r\n },\r\n setAudioFactory: function setAudioFactory(audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function setVolume(value) {\r\n this._volume = value;\r\n\r\n this._updateVolume();\r\n },\r\n mute: function mute() {\r\n this._isMuted = true;\r\n\r\n this._updateVolume();\r\n },\r\n unmute: function unmute() {\r\n this._isMuted = false;\r\n\r\n this._updateVolume();\r\n },\r\n getVolume: function getVolume() {\r\n return this._volume;\r\n },\r\n _updateVolume: function _updateVolume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n }\r\n };\r\n return function () {\r\n return new AudioController();\r\n };\r\n }();\r\n\r\n var createTypedArray = function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n }\r\n\r\n if (type === 'int16') {\r\n return new Int16Array(len);\r\n }\r\n\r\n if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n\r\n return createRegularArray(type, len);\r\n }\r\n\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n\r\n return createRegularArray;\r\n }();\r\n\r\n function createSizedArray(len) {\r\n return Array.apply(null, {\r\n length: len\r\n });\r\n }\r\n\r\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\r\n var subframeEnabled = true;\r\n var expressionsPlugin = null;\r\n var expressionsInterfaces = null;\r\n var idPrefix$1 = '';\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n var _shouldRoundValues = false;\r\n var bmPow = Math.pow;\r\n var bmSqrt = Math.sqrt;\r\n var bmFloor = Math.floor;\r\n var bmMax = Math.max;\r\n var bmMin = Math.min;\r\n var BMMath = {};\r\n\r\n (function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n })();\r\n\r\n function ProjectInterface$1() {\r\n return {};\r\n }\r\n\r\n BMMath.random = Math.random;\r\n\r\n BMMath.abs = function (val) {\r\n var tOfVal = _typeof$6(val);\r\n\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n\r\n return absArr;\r\n }\r\n\r\n return Math.abs(val);\r\n };\r\n\r\n var defaultCurveSegments = 150;\r\n var degToRads = Math.PI / 180;\r\n var roundCorner = 0.5519;\r\n\r\n function roundValues(flag) {\r\n _shouldRoundValues = !!flag;\r\n }\r\n\r\n function bmRnd(value) {\r\n if (_shouldRoundValues) {\r\n return Math.round(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n }\r\n\r\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n }\r\n\r\n function BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n }\r\n\r\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n }\r\n\r\n function BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n }\r\n\r\n function BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n }\r\n\r\n var createElementID = function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix$1 + '__lottie_element_' + _count;\r\n };\r\n }();\r\n\r\n function HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [r, g, b];\r\n }\r\n\r\n function RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = max === 0 ? 0 : d / max;\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min:\r\n h = 0;\r\n break;\r\n\r\n case r:\r\n h = g - b + d * (g < b ? 6 : 0);\r\n h /= 6 * d;\r\n break;\r\n\r\n case g:\r\n h = b - r + d * 2;\r\n h /= 6 * d;\r\n break;\r\n\r\n case b:\r\n h = r - g + d * 4;\r\n h /= 6 * d;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [h, s, v];\r\n }\r\n\r\n function addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n var rgbToHex = function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n }();\r\n\r\n var setSubframeEnabled = function setSubframeEnabled(flag) {\r\n subframeEnabled = !!flag;\r\n };\r\n\r\n var getSubframeEnabled = function getSubframeEnabled() {\r\n return subframeEnabled;\r\n };\r\n\r\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\r\n expressionsPlugin = value;\r\n };\r\n\r\n var getExpressionsPlugin = function getExpressionsPlugin() {\r\n return expressionsPlugin;\r\n };\r\n\r\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\r\n expressionsInterfaces = value;\r\n };\r\n\r\n var getExpressionInterfaces = function getExpressionInterfaces() {\r\n return expressionsInterfaces;\r\n };\r\n\r\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\r\n defaultCurveSegments = value;\r\n };\r\n\r\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\r\n return defaultCurveSegments;\r\n };\r\n\r\n var setIdPrefix = function setIdPrefix(value) {\r\n idPrefix$1 = value;\r\n };\r\n\r\n var getIdPrefix = function getIdPrefix() {\r\n return idPrefix$1;\r\n };\r\n\r\n function createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n }\r\n\r\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\r\n\r\n var dataManager = function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function onmessage() {},\r\n postMessage: function postMessage(path) {\r\n workerFn({\r\n data: path\r\n });\r\n }\r\n };\r\n var _workerSelf = {\r\n postMessage: function postMessage(data) {\r\n workerProxy.onmessage({\r\n data: data\r\n });\r\n }\r\n };\r\n\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && getWebWorker()) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\r\n type: 'text/javascript'\r\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n function dataFunctionManager() {\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if ('ks' in layerData && !layerData.completed) {\r\n layerData.completed = true;\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function completeChars(chars, assets) {\r\n if (chars) {\r\n var i = 0;\r\n var len = chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (chars[i].t === 1) {\r\n // var compData = findComp(chars[i].data.refId, assets);\r\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\r\n // chars[i].data.op = 99999;\r\n // chars[i].data.st = 0;\r\n // chars[i].data.sr = 1;\r\n // chars[i].w = compData.w;\r\n // chars[i].data.ks = {\r\n // a: { k: [0, 0, 0], a: 0 },\r\n // p: { k: [0, -compData.h, 0], a: 0 },\r\n // r: { k: 0, a: 0 },\r\n // s: { k: [100, 100], a: 0 },\r\n // o: { k: 100, a: 0 },\r\n // };\r\n\r\n completeLayers(chars[i].data.layers, assets);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findComp(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n return comps[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var comp = findComp(id, comps);\r\n\r\n if (comp) {\r\n if (!comp.layers.__used) {\r\n comp.layers.__used = true;\r\n return comp.layers;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(comp.layers));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var checkText = function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [{\r\n s: documentData,\r\n t: 0\r\n }]\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkChars = function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var charData = animationData.chars[i];\r\n\r\n if (charData.data && charData.data.shapes) {\r\n completeShapes(charData.data.shapes);\r\n charData.data.ip = 0;\r\n charData.data.op = 99999;\r\n charData.data.st = 0;\r\n charData.data.sr = 1;\r\n charData.data.ks = {\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n }\r\n };\r\n\r\n if (!animationData.chars[i].t) {\r\n charData.data.shapes.push({\r\n ty: 'no'\r\n });\r\n charData.data.shapes[0].it.push({\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n },\r\n sk: {\r\n k: 0,\r\n a: 0\r\n },\r\n sa: {\r\n k: 0,\r\n a: 0\r\n },\r\n ty: 'tr'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkPathProperties = function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a\r\n };\r\n }\r\n\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p\r\n };\r\n }\r\n\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkColors = function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkShapes = function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n completeChars(animationData.chars, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n return moduleOb;\r\n }\r\n\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n }\r\n\r\n if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\r\n\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), path, true);\r\n } catch (error) {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\r\n }\r\n\r\n xhr.send();\r\n }\r\n\r\n return {\r\n load: loadAsset\r\n };\r\n }();\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n\r\n _workerSelf.dataManager.completeData(animation);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success'\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation\r\n };\r\n }();\r\n\r\n var ImagePreloader = function () {\r\n var proxyImage = function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }();\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n\r\n clearInterval(intervalId);\r\n }\r\n\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType\r\n };\r\n return ImagePreloaderFactory;\r\n }();\r\n\r\n function BaseEvent() {}\r\n\r\n BaseEvent.prototype = {\r\n triggerEvent: function triggerEvent(eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function addEventListener(eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function removeEventListener(eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n\r\n i -= 1;\r\n len -= 1;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var markerParser = function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr\r\n };\r\n\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i].cm\r\n };\r\n }\r\n }\r\n\r\n markers.push(markerData);\r\n }\r\n\r\n return markers;\r\n };\r\n }();\r\n\r\n var ProjectInterface = function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n\r\n return this.compositions[i].compInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n return _thisProjectFunction;\r\n };\r\n }();\r\n\r\n var renderers = {};\r\n\r\n var registerRenderer = function registerRenderer(key, value) {\r\n renderers[key] = value;\r\n };\r\n\r\n function getRenderer(key) {\r\n return renderers[key];\r\n }\r\n\r\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\r\n\r\n var AnimationItem = function AnimationItem() {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = getSubframeEnabled();\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\r\n };\r\n\r\n extendPrototype([BaseEvent], AnimationItem);\r\n\r\n AnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n\r\n var animType = 'svg';\r\n\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n\r\n var RendererClass = getRenderer(animType);\r\n this.renderer = new RendererClass(this, params.rendererSettings);\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n\r\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n };\r\n\r\n AnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(data, this.configAnimation);\r\n };\r\n\r\n AnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (_typeof$4(animationData) !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\r\n\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\r\n params.autoplay = autoplay !== 'false';\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n\r\n this.setParams(params);\r\n };\r\n\r\n AnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n\r\n if (data.assets) {\r\n len = data.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\r\n };\r\n\r\n AnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n };\r\n\r\n AnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n\r\n this.renderer.configAnimation(animData);\r\n\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\r\n this.isLoaded = true;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resize = function (width, height) {\r\n // Adding this validation for backwards compatibility in case an event object was being passed down\r\n var _width = typeof width === 'number' ? width : undefined;\r\n\r\n var _height = typeof height === 'number' ? height : undefined;\r\n\r\n this.renderer.updateContainerSize(_width, _height);\r\n };\r\n\r\n AnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n };\r\n\r\n AnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n };\r\n\r\n AnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.trigger('_pause');\r\n this.audioController.resume();\r\n\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this.trigger('_play');\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n };\r\n\r\n AnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n\r\n this.pause();\r\n };\r\n\r\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n\r\n this.play();\r\n };\r\n\r\n AnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\r\n\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n };\r\n\r\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n\r\n this.trigger('segmentStart');\r\n };\r\n\r\n AnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n\r\n if (_typeof$4(arr[0]) === 'object') {\r\n var i;\r\n var len = arr.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n AnimationItem.prototype.destroy = function (name) {\r\n if (name && this.name !== name || !this.renderer) {\r\n return;\r\n }\r\n\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n };\r\n\r\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n };\r\n\r\n AnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setLoop = function (isLooping) {\r\n this.loop = isLooping;\r\n };\r\n\r\n AnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.setVolume(val);\r\n };\r\n\r\n AnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n };\r\n\r\n AnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.mute();\r\n };\r\n\r\n AnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.unmute();\r\n };\r\n\r\n AnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n };\r\n\r\n AnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n };\r\n\r\n AnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n };\r\n\r\n AnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n };\r\n\r\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\r\n try {\r\n var element = this.renderer.getElementByPath(path);\r\n element.updateDocumentData(documentData, index);\r\n } catch (error) {// TODO: decide how to handle catch case\r\n }\r\n };\r\n\r\n AnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n\r\n case 'drawnFrame':\r\n this.drawnFrameEvent.currentTime = this.currentFrame;\r\n this.drawnFrameEvent.totalTime = this.totalFrames;\r\n this.drawnFrameEvent.direction = this.frameModifier;\r\n this.triggerEvent(name, this.drawnFrameEvent);\r\n break;\r\n\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n var animationManager = function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n var i = 0;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({\r\n elem: element,\r\n animation: animItem\r\n });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n\r\n initTime = nowTime;\r\n\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize; // moduleOb.start = start;\r\n\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n }();\r\n\r\n /* eslint-disable */\r\n var BezierFactory = function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n\r\n\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) {\r\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n }\r\n\r\n function B(aA1, aA2) {\r\n return 3.0 * aA2 - 6.0 * aA1;\r\n }\r\n\r\n function C(aA1) {\r\n return 3.0 * aA1;\r\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n\r\n\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n\r\n\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n\r\n return aGuessT;\r\n }\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n\r\n\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n get: function get(x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n // Private part\r\n _precompute: function _precompute() {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n\r\n if (mX1 !== mY1 || mX2 !== mY2) {\r\n this._calcSampleValues();\r\n }\r\n },\r\n _calcSampleValues: function _calcSampleValues() {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function _getTForX(aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n\r\n --currentSample; // Interpolate to provide an initial guess for t\r\n\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n }\r\n\r\n if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n };\r\n return ob;\r\n }();\r\n\r\n var pooling = function () {\r\n function _double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n \"double\": _double\r\n };\r\n }();\r\n\r\n var poolFactory = function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n var ob = {\r\n newElement: newElement,\r\n release: release\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n if (_release) {\r\n _release(element);\r\n }\r\n\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n }();\r\n\r\n var bezierLengthPool = function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', getDefaultCurveSegments()),\r\n lengths: createTypedArray('float32', getDefaultCurveSegments())\r\n };\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n var segmentsLengthPool = function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n }();\r\n\r\n function bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n\r\n lastPoint[i] = point[i];\r\n }\r\n\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }();\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = function () {\r\n var storedData = {};\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n\r\n if (!storedData[bezierName]) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n\r\n return storedData[bezierName];\r\n };\r\n }();\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n\r\n flag = false;\r\n }\r\n }\r\n\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\r\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0t0 = t0 * t0 * t0; //\r\n\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0t1 = t0 * t0 * t1; //\r\n\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1t1 = t0 * t1 * t1; //\r\n\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1t1 = t1 * t1 * t1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D\r\n };\r\n }\r\n\r\n var bez = bezFunction();\r\n\r\n var PropertyFactory = function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n\r\n iterationIndex = 0;\r\n break;\r\n }\r\n\r\n if (nextKeyData.t - offsetTime > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n\r\n var bezierData = keyframeMetadata.bezierData;\r\n\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n } // caching._lastKeyframeIndex = -1;\r\n\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n var segmentPerc;\r\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\r\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n } // based on @Toji's https://github.com/toji/gl-matrix/\r\n\r\n\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n\r\n if (1.0 - cosom > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n\r\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: 0,\r\n _lastKeyframeIndex: -1\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n\r\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: createTypedArray('float32', arrLen)\r\n };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof data.k[0] === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n }();\r\n\r\n function DynamicPropertyContainer() {}\r\n\r\n DynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function iterateDynamicProperties() {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n }\r\n };\r\n\r\n var pointPool = function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n function ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n };\r\n\r\n ShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n this._length = len;\r\n };\r\n\r\n ShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n };\r\n\r\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n\r\n if (!arr[pos] || arr[pos] && !replace) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n };\r\n\r\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n };\r\n\r\n ShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n var i;\r\n\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n\r\n return newPath;\r\n };\r\n\r\n ShapePath.prototype.length = function () {\r\n return this._length;\r\n };\r\n\r\n var shapePool = function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\r\n }\r\n\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n return factory;\r\n }();\r\n\r\n function ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n };\r\n\r\n ShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n\r\n this._length = 0;\r\n };\r\n\r\n var shapeCollectionPool = function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release\r\n };\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePropertyFactory = function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n\r\n if (nextKeyData.t - this.offsetTime > frameNum) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\r\n }\r\n\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n\r\n keyPropS = keyData.s[0];\r\n }\r\n\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n\r\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n\r\n var i;\r\n var len = shape1._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n\r\n var i;\r\n var len = this.effectsSequence.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0\r\n };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function convertEllToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n\r\n var _cw = this.d !== 3;\r\n\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n return EllShapePropertyFactory;\r\n }();\r\n\r\n var StarShapeProperty = function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function convertStarToPath() {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = Math.PI * 2 / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\r\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function convertPolygonToPath() {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = Math.PI * 2 / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n return StarShapePropertyFactory;\r\n }();\r\n\r\n var RectShapeProperty = function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function convertRectToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n return RectShapePropertyFactory;\r\n }();\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n }();\r\n\r\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\n var Matrix = function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2; // }\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n\r\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\r\n return _rnd(val * v) / v;\r\n }\r\n\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n\r\n var _a = roundMatrixProperty(props[0]);\r\n\r\n var _b = roundMatrixProperty(props[1]);\r\n\r\n var _c = roundMatrixProperty(props[4]);\r\n\r\n var _d = roundMatrixProperty(props[5]);\r\n\r\n var _e = roundMatrixProperty(props[12]);\r\n\r\n var _f = roundMatrixProperty(props[13]);\r\n\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n }();\r\n\r\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\r\n var lottie = {};\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n\r\n function setLocation(href) {\r\n setLocationHref(href);\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n setSubframeEnabled(flag);\r\n }\r\n\r\n function setPrefix(prefix) {\r\n setIdPrefix(prefix);\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n setDefaultCurveSegments(200);\r\n break;\r\n\r\n default:\r\n case 'medium':\r\n setDefaultCurveSegments(50);\r\n break;\r\n\r\n case 'low':\r\n setDefaultCurveSegments(10);\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n setDefaultCurveSegments(value);\r\n }\r\n\r\n if (getDefaultCurveSegments() >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n setExpressionsPlugin(plugin);\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n\r\n case 'matrix':\r\n return Matrix;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n lottie.play = animationManager.play;\r\n lottie.pause = animationManager.pause;\r\n lottie.setLocationHref = setLocation;\r\n lottie.togglePause = animationManager.togglePause;\r\n lottie.setSpeed = animationManager.setSpeed;\r\n lottie.setDirection = animationManager.setDirection;\r\n lottie.stop = animationManager.stop;\r\n lottie.searchAnimations = searchAnimations;\r\n lottie.registerAnimation = animationManager.registerAnimation;\r\n lottie.loadAnimation = loadAnimation;\r\n lottie.setSubframeRendering = setSubframeRendering;\r\n lottie.resize = animationManager.resize; // lottie.start = start;\r\n\r\n lottie.goToAndStop = animationManager.goToAndStop;\r\n lottie.destroy = animationManager.destroy;\r\n lottie.setQuality = setQuality;\r\n lottie.inBrowser = inBrowser;\r\n lottie.installPlugin = installPlugin;\r\n lottie.freeze = animationManager.freeze;\r\n lottie.unfreeze = animationManager.unfreeze;\r\n lottie.setVolume = animationManager.setVolume;\r\n lottie.mute = animationManager.mute;\r\n lottie.unmute = animationManager.unmute;\r\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottie.useWebWorker = setWebWorker;\r\n lottie.setIDPrefix = setPrefix;\r\n lottie.__getFactory = getFactory;\r\n lottie.version = '5.10.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var queryString = '';\r\n\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\r\n\r\n renderer = getQueryVariable('renderer');\r\n }\r\n\r\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\r\n\r\n try {\r\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\r\n ) {\r\n window.bodymovin = lottie;\r\n }\r\n } catch (err) {//\r\n }\r\n\r\n var ShapeModifiers = function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function ShapeModifier() {}\r\n\r\n ShapeModifier.prototype.initModifierProperties = function () {};\r\n\r\n ShapeModifier.prototype.addShapeToModifier = function () {};\r\n\r\n ShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = {\r\n shape: data.sh,\r\n data: data,\r\n localShapeCollection: shapeCollectionPool.newShapeCollection()\r\n };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n function TrimModifier() {}\r\n\r\n extendPrototype([ShapeModifier], TrimModifier);\r\n\r\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n };\r\n\r\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n };\r\n\r\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n\r\n return shapeSegments;\r\n };\r\n\r\n TrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n\r\n pathsData.length = 0;\r\n return pathsData;\r\n };\r\n\r\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var o = this.o.v % 360 / 360;\r\n\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n\r\n jLen = edges.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n\r\n shapes.push(shapePath);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n\r\n return shapes;\r\n };\r\n\r\n function PuckerAndBloatModifier() {}\r\n\r\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\n\r\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n var TransformPropertyFactory = function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\r\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\r\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {//\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix(); // Precalculated matrix with non animated properties\r\n\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n }\r\n\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\r\n\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n }\r\n\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: [100, 100, 100]\r\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = {\r\n _mdf: false,\r\n v: 1\r\n };\r\n }\r\n\r\n this._isDirty = true;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient\r\n };\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty\r\n };\r\n }();\r\n\r\n function RepeaterModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n };\r\n\r\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n };\r\n\r\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n\r\n while (pos > 0) {\r\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\r\n\r\n this._elements.unshift(arr[pos]);\r\n }\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n };\r\n\r\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr'\r\n };\r\n group.it.push({\r\n a: {\r\n a: 0,\r\n ix: 1,\r\n k: [0, 0]\r\n },\r\n nm: 'Transform',\r\n o: {\r\n a: 0,\r\n ix: 7,\r\n k: 100\r\n },\r\n p: {\r\n a: 0,\r\n ix: 2,\r\n k: [0, 0]\r\n },\r\n r: {\r\n a: 1,\r\n ix: 6,\r\n k: [{\r\n s: 0,\r\n e: 0,\r\n t: 0\r\n }, {\r\n s: 0,\r\n e: 0,\r\n t: 1\r\n }]\r\n },\r\n s: {\r\n a: 0,\r\n ix: 3,\r\n k: [100, 100]\r\n },\r\n sa: {\r\n a: 0,\r\n ix: 5,\r\n k: 0\r\n },\r\n sk: {\r\n a: 0,\r\n ix: 4,\r\n k: 0\r\n },\r\n ty: 'tr'\r\n });\r\n this.arr.splice(0, 0, group);\r\n\r\n this._groups.splice(0, 0, group);\r\n\r\n this._currentCopies += 1;\r\n }\r\n\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n\r\n cont = 0;\r\n var renderFlag;\r\n\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies; /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n\r\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\r\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\r\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n\r\n return hasReloaded;\r\n };\r\n\r\n RepeaterModifier.prototype.addShape = function () {};\r\n\r\n function RoundCornersModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RoundCornersModifier);\r\n\r\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n };\r\n\r\n RoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function floatEqual(a, b) {\r\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\r\n }\r\n\r\n function floatZero(f) {\r\n return Math.abs(f) <= 0.00001;\r\n }\r\n\r\n function lerp(p0, p1, amount) {\r\n return p0 * (1 - amount) + p1 * amount;\r\n }\r\n\r\n function lerpPoint(p0, p1, amount) {\r\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\r\n }\r\n\r\n function quadRoots(a, b, c) {\r\n // no root\r\n if (a === 0) return [];\r\n var s = b * b - 4 * a * c; // Complex roots\r\n\r\n if (s < 0) return [];\r\n var singleRoot = -b / (2 * a); // 1 root\r\n\r\n if (s === 0) return [singleRoot];\r\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\r\n\r\n return [singleRoot - delta, singleRoot + delta];\r\n }\r\n\r\n function polynomialCoefficients(p0, p1, p2, p3) {\r\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\r\n }\r\n\r\n function singlePoint(p) {\r\n return new PolynomialBezier(p, p, p, p, false);\r\n }\r\n\r\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\r\n if (linearize && pointEqual(p0, p1)) {\r\n p1 = lerpPoint(p0, p3, 1 / 3);\r\n }\r\n\r\n if (linearize && pointEqual(p2, p3)) {\r\n p2 = lerpPoint(p0, p3, 2 / 3);\r\n }\r\n\r\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\r\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\r\n this.a = [coeffx[0], coeffy[0]];\r\n this.b = [coeffx[1], coeffy[1]];\r\n this.c = [coeffx[2], coeffy[2]];\r\n this.d = [coeffx[3], coeffy[3]];\r\n this.points = [p0, p1, p2, p3];\r\n }\r\n\r\n PolynomialBezier.prototype.point = function (t) {\r\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.derivative = function (t) {\r\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.tangentAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[1], p[0]);\r\n };\r\n\r\n PolynomialBezier.prototype.normalAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[0], p[1]);\r\n };\r\n\r\n PolynomialBezier.prototype.inflectionPoints = function () {\r\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n if (floatZero(denom)) return [];\r\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\r\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\r\n if (square < 0) return [];\r\n var root = Math.sqrt(square);\r\n\r\n if (floatZero(root)) {\r\n if (root > 0 && root < 1) return [tcusp];\r\n return [];\r\n }\r\n\r\n return [tcusp - root, tcusp + root].filter(function (r) {\r\n return r > 0 && r < 1;\r\n });\r\n };\r\n\r\n PolynomialBezier.prototype.split = function (t) {\r\n if (t <= 0) return [singlePoint(this.points[0]), this];\r\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\r\n var p10 = lerpPoint(this.points[0], this.points[1], t);\r\n var p11 = lerpPoint(this.points[1], this.points[2], t);\r\n var p12 = lerpPoint(this.points[2], this.points[3], t);\r\n var p20 = lerpPoint(p10, p11, t);\r\n var p21 = lerpPoint(p11, p12, t);\r\n var p3 = lerpPoint(p20, p21, t);\r\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\r\n };\r\n\r\n function extrema(bez, comp) {\r\n var min = bez.points[0][comp];\r\n var max = bez.points[bez.points.length - 1][comp];\r\n\r\n if (min > max) {\r\n var e = max;\r\n max = min;\r\n min = e;\r\n } // Derivative roots to find min/max\r\n\r\n\r\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\r\n\r\n for (var i = 0; i < f.length; i += 1) {\r\n if (f[i] > 0 && f[i] < 1) {\r\n var val = bez.point(f[i])[comp];\r\n if (val < min) min = val;else if (val > max) max = val;\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n\r\n PolynomialBezier.prototype.bounds = function () {\r\n return {\r\n x: extrema(this, 0),\r\n y: extrema(this, 1)\r\n };\r\n };\r\n\r\n PolynomialBezier.prototype.boundingBox = function () {\r\n var bounds = this.bounds();\r\n return {\r\n left: bounds.x.min,\r\n right: bounds.x.max,\r\n top: bounds.y.min,\r\n bottom: bounds.y.max,\r\n width: bounds.x.max - bounds.x.min,\r\n height: bounds.y.max - bounds.y.min,\r\n cx: (bounds.x.max + bounds.x.min) / 2,\r\n cy: (bounds.y.max + bounds.y.min) / 2\r\n };\r\n };\r\n\r\n function intersectData(bez, t1, t2) {\r\n var box = bez.boundingBox();\r\n return {\r\n cx: box.cx,\r\n cy: box.cy,\r\n width: box.width,\r\n height: box.height,\r\n bez: bez,\r\n t: (t1 + t2) / 2,\r\n t1: t1,\r\n t2: t2\r\n };\r\n }\r\n\r\n function splitData(data) {\r\n var split = data.bez.split(0.5);\r\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\r\n }\r\n\r\n function boxIntersect(b1, b2) {\r\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\r\n }\r\n\r\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\r\n if (!boxIntersect(d1, d2)) return;\r\n\r\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\r\n intersections.push([d1.t, d2.t]);\r\n return;\r\n }\r\n\r\n var d1s = splitData(d1);\r\n var d2s = splitData(d2);\r\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n }\r\n\r\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\r\n if (tolerance === undefined) tolerance = 2;\r\n if (maxRecursion === undefined) maxRecursion = 7;\r\n var intersections = [];\r\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\r\n return intersections;\r\n };\r\n\r\n PolynomialBezier.shapeSegment = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\r\n };\r\n\r\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\r\n };\r\n\r\n function crossProduct(a, b) {\r\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\r\n }\r\n\r\n function lineIntersection(start1, end1, start2, end2) {\r\n var v1 = [start1[0], start1[1], 1];\r\n var v2 = [end1[0], end1[1], 1];\r\n var v3 = [start2[0], start2[1], 1];\r\n var v4 = [end2[0], end2[1], 1];\r\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\r\n if (floatZero(r[2])) return null;\r\n return [r[0] / r[2], r[1] / r[2]];\r\n }\r\n\r\n function polarOffset(p, angle, length) {\r\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\r\n }\r\n\r\n function pointDistance(p1, p2) {\r\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\r\n }\r\n\r\n function pointEqual(p1, p2) {\r\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\r\n }\r\n\r\n function ZigZagModifier() {}\r\n\r\n extendPrototype([ShapeModifier], ZigZagModifier);\r\n\r\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\r\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\r\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\r\n };\r\n\r\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\r\n var angO = angle - Math.PI / 2;\r\n var angI = angle + Math.PI / 2;\r\n var px = point[0] + Math.cos(angle) * direction * amplitude;\r\n var py = point[1] - Math.sin(angle) * direction * amplitude;\r\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\r\n }\r\n\r\n function getPerpendicularVector(pt1, pt2) {\r\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\r\n var rot = -Math.PI * 0.5;\r\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\r\n return rotatedVector;\r\n }\r\n\r\n function getProjectingAngle(path, cur) {\r\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\r\n var nextIndex = (cur + 1) % path.length();\r\n var prevPoint = path.v[prevIndex];\r\n var nextPoint = path.v[nextIndex];\r\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\r\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\r\n }\r\n\r\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\r\n var angle = getProjectingAngle(path, cur);\r\n var point = path.v[cur % path._length];\r\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\r\n var nextPoint = path.v[(cur + 1) % path._length];\r\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\r\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\r\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\r\n }\r\n\r\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\r\n for (var i = 0; i < frequency; i += 1) {\r\n var t = (i + 1) / (frequency + 1);\r\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\r\n var angle = segment.normalAngle(t);\r\n var point = segment.point(t);\r\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\r\n direction = -direction;\r\n }\r\n\r\n return direction;\r\n }\r\n\r\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\r\n var count = path._length;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n\r\n if (!path.c) {\r\n count -= 1;\r\n }\r\n\r\n if (count === 0) return clonedPath;\r\n var direction = -1;\r\n var segment = PolynomialBezier.shapeSegment(path, 0);\r\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\r\n\r\n for (var i = 0; i < count; i += 1) {\r\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\r\n\r\n if (i === count - 1 && !path.c) {\r\n segment = null;\r\n } else {\r\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\r\n }\r\n\r\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amplitude = this.amplitude.v;\r\n var frequency = Math.max(0, Math.round(this.frequency.v));\r\n var pointType = this.pointsType.v;\r\n\r\n if (amplitude !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function linearOffset(p1, p2, amount) {\r\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\r\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\r\n }\r\n\r\n function offsetSegment(segment, amount) {\r\n var p0;\r\n var p1a;\r\n var p1b;\r\n var p2b;\r\n var p2a;\r\n var p3;\r\n var e;\r\n e = linearOffset(segment.points[0], segment.points[1], amount);\r\n p0 = e[0];\r\n p1a = e[1];\r\n e = linearOffset(segment.points[1], segment.points[2], amount);\r\n p1b = e[0];\r\n p2b = e[1];\r\n e = linearOffset(segment.points[2], segment.points[3], amount);\r\n p2a = e[0];\r\n p3 = e[1];\r\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\r\n if (p1 === null) p1 = p1a;\r\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\r\n if (p2 === null) p2 = p2a;\r\n return new PolynomialBezier(p0, p1, p2, p3);\r\n }\r\n\r\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\r\n var p0 = seg1.points[3];\r\n var p1 = seg2.points[0]; // Bevel\r\n\r\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\r\n\r\n if (pointEqual(p0, p1)) return p0; // Round\r\n\r\n if (lineJoin === 2) {\r\n var angleOut = -seg1.tangentAngle(1);\r\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\r\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\r\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\r\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\r\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\r\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\r\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\r\n return p1;\r\n } // Miter\r\n\r\n\r\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\r\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\r\n var intersection = lineIntersection(t0, p0, p1, t1);\r\n\r\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\r\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\r\n return intersection;\r\n }\r\n\r\n return p0;\r\n }\r\n\r\n function getIntersection(a, b) {\r\n var intersect = a.intersections(b);\r\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\r\n if (intersect.length) return intersect[0];\r\n return null;\r\n }\r\n\r\n function pruneSegmentIntersection(a, b) {\r\n var outa = a.slice();\r\n var outb = b.slice();\r\n var intersect = getIntersection(a[a.length - 1], b[0]);\r\n\r\n if (intersect) {\r\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\r\n outb[0] = b[0].split(intersect[1])[1];\r\n }\r\n\r\n if (a.length > 1 && b.length > 1) {\r\n intersect = getIntersection(a[0], b[b.length - 1]);\r\n\r\n if (intersect) {\r\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\r\n }\r\n }\r\n\r\n return [outa, outb];\r\n }\r\n\r\n function pruneIntersections(segments) {\r\n var e;\r\n\r\n for (var i = 1; i < segments.length; i += 1) {\r\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\r\n segments[i - 1] = e[0];\r\n segments[i] = e[1];\r\n }\r\n\r\n if (segments.length > 1) {\r\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\r\n segments[segments.length - 1] = e[0];\r\n segments[0] = e[1];\r\n }\r\n\r\n return segments;\r\n }\r\n\r\n function offsetSegmentSplit(segment, amount) {\r\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\r\n var flex = segment.inflectionPoints();\r\n var left;\r\n var right;\r\n var split;\r\n var mid;\r\n\r\n if (flex.length === 0) {\r\n return [offsetSegment(segment, amount)];\r\n }\r\n\r\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\r\n split = split[1].split(t);\r\n mid = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n function OffsetPathModifier() {}\r\n\r\n extendPrototype([ShapeModifier], OffsetPathModifier);\r\n\r\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\r\n this.lineJoin = data.lj;\r\n this._isAnimated = this.amount.effectsSequence.length !== 0;\r\n };\r\n\r\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\r\n var outputBezier = shapePool.newElement();\r\n outputBezier.c = inputBezier.c;\r\n var count = inputBezier.length();\r\n\r\n if (!inputBezier.c) {\r\n count -= 1;\r\n }\r\n\r\n var i;\r\n var j;\r\n var segment;\r\n var multiSegments = [];\r\n\r\n for (i = 0; i < count; i += 1) {\r\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n\r\n if (!inputBezier.c) {\r\n for (i = count - 1; i >= 0; i -= 1) {\r\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n }\r\n\r\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\r\n\r\n var lastPoint = null;\r\n var lastSeg = null;\r\n\r\n for (i = 0; i < multiSegments.length; i += 1) {\r\n var multiSegment = multiSegments[i];\r\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\r\n lastSeg = multiSegment[multiSegment.length - 1];\r\n\r\n for (j = 0; j < multiSegment.length; j += 1) {\r\n segment = multiSegment[j];\r\n\r\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\r\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\r\n } else {\r\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\r\n }\r\n\r\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\r\n lastPoint = segment.points[3];\r\n }\r\n }\r\n\r\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\r\n return outputBezier;\r\n };\r\n\r\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n var miterLimit = this.miterLimit.v;\r\n var lineJoin = this.lineJoin;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n var fWeight = 'normal';\r\n var fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight\r\n };\r\n }\r\n\r\n var FontManager = function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n data: {\r\n shapes: []\r\n }\r\n };\r\n var combinedCharacters = []; // Hindi characters\r\n\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span'); // Node is invisible to screen readers.\r\n\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span'); // Characters that vary significantly among different fonts\r\n\r\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\r\n\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\r\n\r\n parentNode.style.fontSize = '300px'; // Reset any font properties\r\n\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode); // Remember width with no applied web font\r\n\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return {\r\n node: node,\r\n w: width,\r\n parent: parentNode\r\n };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(fontData, def) {\r\n var engine = document.body && def ? 'svg' : 'canvas';\r\n var helper;\r\n var fontProps = getFontProperties(fontData);\r\n\r\n if (engine === 'svg') {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n\r\n def.appendChild(tHelper);\r\n helper = tHelper;\r\n } else {\r\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\r\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\r\n helper = tCanvasHelper;\r\n }\r\n\r\n function measure(text) {\r\n if (engine === 'svg') {\r\n helper.textContent = text;\r\n return helper.getComputedTextLength();\r\n }\r\n\r\n return helper.measureText(text).width;\r\n }\r\n\r\n return {\r\n measureText: measure\r\n };\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n if (!document.body) {\r\n this.isLoaded = true;\r\n fontData.list.forEach(function (data) {\r\n data.helper = createHelper(data);\r\n data.cache = {};\r\n });\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n\r\n fontArr[i].helper = createHelper(fontArr[i], defs);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(_char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n\r\n while (i < len) {\r\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\r\n && !this._warned) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\r\n }\r\n\r\n return emptyChar;\r\n }\r\n\r\n function measureText(_char2, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n\r\n var index = _char2.charCodeAt(0);\r\n\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n\r\n if (_char2 === ' ') {\r\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\r\n var singleSize = tHelper.measureText('||');\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\r\n }\r\n }\r\n\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(_char3) {\r\n return combinedCharacters.indexOf(_char3) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function Font() {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded\r\n };\r\n Font.prototype = fontPrototype;\r\n return Font;\r\n }();\r\n\r\n function RenderableElement() {}\r\n\r\n RenderableElement.prototype = {\r\n initRenderable: function initRenderable() {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false; // layer's display state\r\n\r\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\r\n\r\n this.isTransparent = false; // list of animated components\r\n\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function addRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function removeRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function prepareRenderableFrame(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function checkTransparency() {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function checkLayerLimits(num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function renderRenderable() {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100\r\n };\r\n },\r\n getLayerSize: function getLayerSize() {\r\n if (this.data.ty === 5) {\r\n return {\r\n w: this.data.textData.width,\r\n h: this.data.textData.height\r\n };\r\n }\r\n\r\n return {\r\n w: this.data.width,\r\n h: this.data.height\r\n };\r\n }\r\n };\r\n\r\n var getBlendMode = function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity'\r\n };\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n }();\r\n\r\n function SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function NoValueEffect() {\r\n this.p = {};\r\n }\r\n\r\n function EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n }\r\n\r\n function GroupEffect(data, element) {\r\n this.init(data, element);\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], GroupEffect);\r\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\n GroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n };\r\n\r\n function BaseElement() {}\r\n\r\n BaseElement.prototype = {\r\n checkMasks: function checkMasks() {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n\r\n while (i < len) {\r\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\r\n return true;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return false;\r\n },\r\n initExpressions: function initExpressions() {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var LayerExpressionInterface = expressionsInterfaces('layer');\r\n var EffectsExpressionInterface = expressionsInterfaces('effects');\r\n var ShapeExpressionInterface = expressionsInterfaces('shape');\r\n var TextExpressionInterface = expressionsInterfaces('text');\r\n var CompExpressionInterface = expressionsInterfaces('comp');\r\n this.layerInterface = LayerExpressionInterface(this);\r\n\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function setBlendMode() {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function initBaseData(data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\r\n\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n } // effects manager\r\n\r\n\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function getType() {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {}\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n function FrameElement() {}\r\n\r\n FrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function initFrame() {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false; // list of animated properties\r\n\r\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\r\n\r\n this._mdf = false;\r\n },\r\n\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function prepareProperties(num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n };\r\n\r\n function FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n }\r\n\r\n FootageElement.prototype.prepareFrame = function () {};\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\n FootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n FootageElement.prototype.renderFrame = function () {};\r\n\r\n FootageElement.prototype.destroy = function () {};\r\n\r\n FootageElement.prototype.initExpressions = function () {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var FootageInterface = expressionsInterfaces('footage');\r\n this.layerInterface = FootageInterface(this);\r\n };\r\n\r\n FootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n };\r\n\r\n function AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this._volumeMultiplier = 1;\r\n this._volume = 1;\r\n this._previousVolume = null;\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\r\n k: [100]\r\n }, 1, 0.01, this);\r\n }\r\n\r\n AudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n\r\n this._volume = this.lv.v[0];\r\n var totalVolume = this._volume * this._volumeMultiplier;\r\n\r\n if (this._previousVolume !== totalVolume) {\r\n this._previousVolume = totalVolume;\r\n this.audio.volume(totalVolume);\r\n }\r\n };\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\n AudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n };\r\n\r\n AudioElement.prototype.show = function () {// this.audio.play()\r\n };\r\n\r\n AudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n };\r\n\r\n AudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n };\r\n\r\n AudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n };\r\n\r\n AudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n };\r\n\r\n AudioElement.prototype.volume = function (volumeValue) {\r\n this._volumeMultiplier = volumeValue;\r\n this._previousVolume = volumeValue * this._volume;\r\n this.audio.volume(this._previousVolume);\r\n };\r\n\r\n AudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n AudioElement.prototype.destroy = function () {};\r\n\r\n AudioElement.prototype.sourceRectAtTime = function () {};\r\n\r\n AudioElement.prototype.initExpressions = function () {};\r\n\r\n function BaseRenderer() {}\r\n\r\n BaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n\r\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\r\n this.buildItem(i);\r\n }\r\n }\r\n\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n\r\n case 0:\r\n return this.createComp(layer);\r\n\r\n case 1:\r\n return this.createSolid(layer);\r\n\r\n case 3:\r\n return this.createNull(layer);\r\n\r\n case 4:\r\n return this.createShape(layer);\r\n\r\n case 5:\r\n return this.createText(layer);\r\n\r\n case 6:\r\n return this.createAudio(layer);\r\n\r\n case 13:\r\n return this.createCamera(layer);\r\n\r\n case 15:\r\n return this.createFootage(layer);\r\n\r\n default:\r\n return this.createNull(layer);\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n };\r\n\r\n BaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n\r\n j += 1;\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n };\r\n\r\n BaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n\r\n while (i < len) {\r\n if (layers[i].ind == parentName) {\r\n // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n };\r\n\r\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.getElementById = function (ind) {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.ind === ind) {\r\n return this.elements[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n BaseRenderer.prototype.getElementByPath = function (path) {\r\n var pathValue = path.shift();\r\n var element;\r\n\r\n if (typeof pathValue === 'number') {\r\n element = this.elements[pathValue];\r\n } else {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.nm === pathValue) {\r\n element = this.elements[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (path.length === 0) {\r\n return element;\r\n }\r\n\r\n return element.getElementByPath(path);\r\n };\r\n\r\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h\r\n };\r\n };\r\n\r\n function TransformElement() {}\r\n\r\n TransformElement.prototype = {\r\n initTransform: function initTransform() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\r\n o: 0\r\n },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n } // TODO: check TYPE 11: Guided elements\r\n\r\n\r\n if (this.data.ty !== 11) {// this.createElements();\r\n }\r\n },\r\n renderTransform: function renderTransform() {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function globalToLocal(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n };\r\n\r\n function MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: ''\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0\r\n };\r\n\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect\r\n };\r\n\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n len = currentMasks.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n MaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n };\r\n\r\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\r\n }\r\n\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n MaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n };\r\n\r\n MaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n };\r\n\r\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\r\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n\r\n\r\n if (pathNodes.c && len > 1) {\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n } // pathNodes.__renderedString = pathString;\r\n\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n\r\n viewData.lastPath = pathString;\r\n }\r\n };\r\n\r\n MaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n };\r\n\r\n var filtersFactory = function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var featureSupport = function () {\r\n var ob = {\r\n maskType: true,\r\n svgLumaHidden: true,\r\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\r\n };\r\n\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n\r\n if (/firefox/i.test(navigator.userAgent)) {\r\n ob.svgLumaHidden = false;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var registeredEffects = {};\r\n var idPrefix = 'filter_result_';\r\n\r\n function SVGEffects(elem) {\r\n var i;\r\n var source = 'SourceGraphic';\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n var type = elem.data.ef[i].ty;\r\n\r\n if (registeredEffects[type]) {\r\n var Effect = registeredEffects[type].effect;\r\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\r\n source = idPrefix + count;\r\n\r\n if (registeredEffects[type].countsAsEffect) {\r\n count += 1;\r\n }\r\n }\r\n\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n };\r\n\r\n function registerEffect(id, effect, countsAsEffect) {\r\n registeredEffects[id] = {\r\n effect: effect,\r\n countsAsEffect: countsAsEffect\r\n };\r\n }\r\n\r\n function SVGBaseElement() {}\r\n\r\n SVGBaseElement.prototype = {\r\n initRendererElement: function initRendererElement() {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null; // If this layer acts as a mask for the following layer\r\n\r\n if (this.data.td) {\r\n this.matteMasks = {};\r\n var gg = createNS('g');\r\n gg.setAttribute('id', this.layerId);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(gg);\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n\r\n\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n }\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function destroyBaseElement() {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function getBaseElement() {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n getMatte: function getMatte(matteType) {\r\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\r\n // It solves animations that have two consecutive layers marked as matte masks.\r\n // Which is an undefined behavior in AE.\r\n if (!this.matteMasks) {\r\n this.matteMasks = {};\r\n }\r\n\r\n if (!this.matteMasks[matteType]) {\r\n var id = this.layerId + '_' + matteType;\r\n var filId;\r\n var fil;\r\n var useElement;\r\n var gg;\r\n\r\n if (matteType === 1 || matteType === 3) {\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', id);\r\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n masker.appendChild(useElement);\r\n this.globalData.defs.appendChild(masker);\r\n\r\n if (!featureSupport.maskType && matteType === 1) {\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(useElement);\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n } else if (matteType === 2) {\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', id);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId); /// /\r\n\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc); /// /\r\n\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n maskGrouper.appendChild(useElement);\r\n\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n maskGrouper.appendChild(gg);\r\n }\r\n\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n\r\n this.matteMasks[matteType] = id;\r\n }\r\n\r\n return this.matteMasks[matteType];\r\n },\r\n setMatte: function setMatte(id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n\r\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n }\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n function HierarchyElement() {}\r\n\r\n HierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function initHierarchy() {\r\n // element's parent list\r\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\r\n\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\r\n setHierarchy: function setHierarchy(hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function setAsParent() {\r\n this._isParent = true;\r\n },\r\n\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function checkParenting() {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n }\r\n };\r\n\r\n function RenderableDOMElement() {}\r\n\r\n (function () {\r\n var _prototype = {\r\n initElement: function initElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function hide() {\r\n // console.log('HIDE', this);\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function show() {\r\n // console.log('SHOW', this);\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function renderInnerContent() {},\r\n prepareFrame: function prepareFrame(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function destroy() {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n })();\r\n\r\n function IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0,\r\n left: 0,\r\n width: this.assetData.w,\r\n height: this.assetData.h\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\n IImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.innerElem);\r\n };\r\n\r\n IImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n };\r\n\r\n function ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n }\r\n\r\n function IShapeElement() {}\r\n\r\n IShapeElement.prototype = {\r\n addShapeToModifiers: function addShapeToModifiers(data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n renderModifiers: function renderModifiers() {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len = this.shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n searchProcessedElement: function searchProcessedElement(elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return 0;\r\n },\r\n addProcessedElement: function addProcessedElement(elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n\r\n while (i) {\r\n i -= 1;\r\n\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function prepareFrame(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n };\r\n\r\n var lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square'\r\n };\r\n var lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel'\r\n };\r\n\r\n function SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n\r\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\r\n\r\n var i = 0;\r\n var len = transformers.length;\r\n\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n SVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n };\r\n\r\n function SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n }\r\n\r\n SVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n };\r\n\r\n function DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = {\r\n n: data[i].n,\r\n p: prop\r\n };\r\n }\r\n\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = this.k;\r\n }\r\n\r\n DashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n function SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n function SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n function SVGNoStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\r\n\r\n function GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n }\r\n\r\n GradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n\r\n this._mdf = !forceRender;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n function SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n }\r\n\r\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\r\n\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n function ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n }\r\n\r\n function SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n }\r\n\r\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n\r\n return shapeString;\r\n };\r\n\r\n var SVGElementsRenderer = function () {\r\n var _identityMatrix = new Matrix();\r\n\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n\r\n case 'gf':\r\n return renderGradient;\r\n\r\n case 'gs':\r\n return renderGradientStroke;\r\n\r\n case 'st':\r\n return renderStroke;\r\n\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n\r\n case 'tr':\r\n return renderContentTransform;\r\n\r\n case 'no':\r\n return renderNoop;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderNoop() {}\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n } // gfill.setAttribute('fy','200');\r\n\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\n SVGShapeElement.prototype.initSecondaryElement = function () {};\r\n\r\n SVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\n SVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n };\r\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\r\n\r\n\r\n SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n var pathElement = styleOb.pElem;\r\n\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\r\n }\r\n } else if (data.ty === 'no') {\r\n elementData = new SVGNoStyleData(this, data, styleOb);\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n };\r\n\r\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n };\r\n\r\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n len = ownStyles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\r\n\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n };\r\n\r\n function LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true\r\n };\r\n }\r\n\r\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n };\r\n\r\n function TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n }\r\n\r\n TextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\n TextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n TextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n };\r\n\r\n TextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n TextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0;\r\n var len = textKeys.length;\r\n\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n\r\n return this.data.d.k[this.keysIndex].s;\r\n };\r\n\r\n TextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return charactersArray;\r\n };\r\n\r\n TextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i;\r\n var len;\r\n var newLineFlag;\r\n var index = 0;\r\n var val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0;\r\n var currentPos = 0;\r\n var currentLine = 0;\r\n var lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j;\r\n var jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData;\r\n var cLength = 0;\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var charCode;\r\n\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight;\r\n var finalText;\r\n\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n\r\n currentHeight += fontData.ascent * documentData.finalSize / 100;\r\n\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n } //\r\n\r\n\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n\r\n letters.push({\r\n l: cLength,\r\n an: cLength,\r\n add: currentSize,\r\n n: newLineFlag,\r\n anIndexes: [],\r\n val: val,\r\n line: currentLine,\r\n animatorJustifyOffset: 0\r\n });\r\n\r\n if (anchorGrouping == 2) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n\r\n documentData.lineWidths = lineWidths;\r\n var animators = data.a;\r\n var animatorData;\r\n var letterData;\r\n jLen = animators.length;\r\n var based;\r\n var ind;\r\n var indexes = [];\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n\r\n ind = 0;\r\n based = animatorData.s.b;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n\r\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\r\n // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n\r\n ind += 1;\r\n }\r\n }\r\n\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1;\r\n var newInd;\r\n\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n\r\n if (currentInd != letterData.anIndexes[j]) {\r\n // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\r\n };\r\n\r\n TextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n };\r\n\r\n TextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n var TextSelectorProp = function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: 0\r\n }, 0, 0, this);\r\n\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = {\r\n v: 100\r\n };\r\n }\r\n\r\n this.o = PropertyFactory.getProp(elem, data.o || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || {\r\n k: 100\r\n }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function getMult(ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - x * x / (a * a));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\r\n }\r\n\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n\r\n\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n\r\n var threshold = 0.5 - smoothness * 0.5;\r\n\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n\r\n return mult * this.a.v;\r\n },\r\n getValue: function getValue(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = this.e.v / divisor + o;\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n }();\r\n\r\n function TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = {\r\n propType: false\r\n };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\r\n };\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n }\r\n\r\n function TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {}\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n }\r\n\r\n TextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n };\r\n\r\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n\r\n\r\n pathInfo = {\r\n tLength: 0,\r\n segments: []\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n i = len;\r\n\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n this._pathData.pi = pathInfo;\r\n }\r\n\r\n pathInfo = this._pathData.pi;\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n jLen = animators.length;\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO; //\r\n\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n\r\n isNewLine = false;\r\n }\r\n }\r\n\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n } //\r\n\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n currentLine = letters[i].line;\r\n }\r\n\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n\r\n currentLength += alignment[0] * letters[i].an * 0.005;\r\n var animatorOffset = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n\r\n flag = true; // Force alignment only works with a single line for now\r\n\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\r\n\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\r\n } else {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\r\n\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\r\n\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n\r\n matrixHelper.rotate(-rot * Math.PI / 180);\r\n }\r\n\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= alignment[0] * letters[i].an * 0.005;\r\n\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\r\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n };\r\n\r\n TextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n TextAnimatorProperty.prototype.mHelper = new Matrix();\r\n TextAnimatorProperty.prototype.defaultPropsArray = [];\r\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n function ITextElement() {}\r\n\r\n ITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n };\r\n\r\n ITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n };\r\n\r\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n }\r\n\r\n return shapeStr;\r\n };\r\n\r\n ITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n };\r\n\r\n ITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n };\r\n\r\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n };\r\n\r\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(xPos, yPos, 0);\r\n };\r\n\r\n ITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n };\r\n\r\n ITextElement.prototype.emptyProp = new LetterProps();\r\n\r\n ITextElement.prototype.destroy = function () {};\r\n\r\n var emptyShapeData = {\r\n shapes: []\r\n };\r\n\r\n function SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\n SVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\r\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\r\n // but since text internal content gets only rendered once and then it's never rerendered,\r\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\r\n // Avoiding cloning is preferred since cloning each character shape data is expensive\r\n if (data.shapes && data.shapes.length) {\r\n var shape = data.shapes[0];\r\n\r\n if (shape.it) {\r\n var shapeItem = shape.it[shape.it.length - 1];\r\n\r\n if (shapeItem.s) {\r\n shapeItem.s.k[0] = scale;\r\n shapeItem.s.k[1] = scale;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildNewText = function () {\r\n this.addDynamicProperty(this);\r\n var i;\r\n var len;\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i].span || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var charData;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n childSpan: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\r\n\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i].span = tSpan;\r\n\r\n if (usesGlyphs) {\r\n var childSpan = createNS('g');\r\n tSpan.appendChild(childSpan);\r\n this.textSpans[i].childSpan = childSpan;\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\r\n\r\n if (charData.t === 1) {\r\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\r\n } else {\r\n var data = emptyShapeData;\r\n\r\n if (charData.data && charData.data.shapes) {\r\n data = this.buildShapeData(charData.data, documentData.finalSize);\r\n }\r\n\r\n glyphElement = new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n if (this.textSpans[i].glyph) {\r\n var glyph = this.textSpans[i].glyph;\r\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\r\n glyph.destroy();\r\n }\r\n\r\n this.textSpans[i].glyph = glyphElement;\r\n glyphElement._debug = true;\r\n glyphElement.prepareFrame(0);\r\n glyphElement.renderFrame();\r\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\r\n // this might have issues with strokes and might need a different solution\r\n\r\n if (charData.t === 1) {\r\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n } //\r\n\r\n }\r\n\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].span.style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n };\r\n\r\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n\r\n return this.bbox;\r\n };\r\n\r\n SVGTextLottieElement.prototype.getValue = function () {\r\n var i;\r\n var len = this.textSpans.length;\r\n var glyphElement;\r\n this.renderedFrame = this.comp.renderedFrame;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n\r\n if (glyphElement._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape || this._mdf) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var glyphElement;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i].span;\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.renderFrame();\r\n }\r\n\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([IImageElement], ISolidElement);\r\n\r\n ISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n }\r\n\r\n NullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n NullElement.prototype.renderFrame = function () {};\r\n\r\n NullElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n NullElement.prototype.destroy = function () {};\r\n\r\n NullElement.prototype.sourceRectAtTime = function () {};\r\n\r\n NullElement.prototype.hide = function () {};\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n function SVGRendererBase() {}\r\n\r\n extendPrototype([BaseRenderer], SVGRendererBase);\r\n\r\n SVGRendererBase.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n\r\n if (this.renderConfig.width) {\r\n this.svgElement.setAttribute('width', this.renderConfig.width);\r\n }\r\n\r\n if (this.renderConfig.height) {\r\n this.svgElement.setAttribute('height', this.renderConfig.height);\r\n }\r\n\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n\r\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\r\n\r\n var defs = this.globalData.defs;\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n };\r\n\r\n SVGRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n SVGRendererBase.prototype.updateContainerSize = function () {};\r\n\r\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\r\n var i = 0;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ind === ind) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n SVGRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n elements[pos] = element;\r\n\r\n if (getExpressionsPlugin()) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n\r\n element.initExpressions();\r\n }\r\n\r\n this.appendElementInPos(element, pos);\r\n\r\n if (this.layers[pos].tt) {\r\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\r\n\r\n if (elementIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\r\n this.buildItem(elementIndex);\r\n this.addPendingElement(element);\r\n } else {\r\n var matteElement = elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\r\n element.setMatte(matteMask);\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\r\n var matteElement = this.elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[i].tt);\r\n element.setMatte(matteMask);\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n } // console.log('-------');\r\n // console.log('FRAME ',num);\r\n\r\n\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n\r\n if (!newElement) {\r\n return;\r\n }\r\n\r\n var i = 0;\r\n var nextElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n };\r\n\r\n SVGRendererBase.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n };\r\n\r\n function ICompElement() {}\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\n ICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n\r\n this.hide();\r\n };\r\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\r\n\r\n\r\n ICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n\r\n var i;\r\n var len = this.elements.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n } // This iteration needs to be backwards because of how expressions connect between each other\r\n\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n };\r\n\r\n ICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n };\r\n\r\n ICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n };\r\n\r\n function SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n SVGCompElement.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n viewBoxOnly: config && config.viewBoxOnly || false,\r\n viewBoxSize: config && config.viewBoxSize || false,\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '100%',\r\n height: config && config.filterSize && config.filterSize.height || '100%',\r\n x: config && config.filterSize && config.filterSize.x || '0%',\r\n y: config && config.filterSize && config.filterSize.y || '0%'\r\n },\r\n width: config && config.width,\r\n height: config && config.height,\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n }\r\n\r\n extendPrototype([SVGRendererBase], SVGRenderer);\r\n\r\n SVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = len;\r\n }\r\n\r\n CVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = newLength;\r\n };\r\n\r\n CVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n };\r\n\r\n CVContextData.prototype.popTransform = function () {\r\n var popped = this.saved[this.cArrPos];\r\n var i;\r\n var arr = this.cTr.props;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.popOpacity = function () {\r\n var popped = this.savedOp[this.cArrPos];\r\n this.cO = popped;\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.pop = function () {\r\n this.cArrPos -= 1;\r\n var transform = this.popTransform();\r\n var opacity = this.popOpacity();\r\n return {\r\n transform: transform,\r\n opacity: opacity\r\n };\r\n };\r\n\r\n CVContextData.prototype.push = function () {\r\n var props = this.cTr.props;\r\n\r\n if (this._length <= this.cArrPos) {\r\n this.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.saved[this.cArrPos];\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n\r\n this.savedOp[this.cArrPos] = this.cO;\r\n this.cArrPos += 1;\r\n };\r\n\r\n CVContextData.prototype.getTransform = function () {\r\n return this.cTr;\r\n };\r\n\r\n CVContextData.prototype.getOpacity = function () {\r\n return this.cO;\r\n };\r\n\r\n CVContextData.prototype.setOpacity = function (value) {\r\n this.cO = value;\r\n };\r\n\r\n function ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n }\r\n\r\n ShapeTransformManager.prototype = {\r\n addTransformSequence: function addTransformSequence(transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n\r\n var sequence = this.sequences[key];\r\n\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n\r\n return sequence;\r\n },\r\n processSequence: function processSequence(sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function processSequences(isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function getNewKey() {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n }\r\n };\r\n\r\n var lumaLoader = function lumaLoader() {\r\n var id = '__lottie_element_luma_buffer';\r\n var lumaBuffer = null;\r\n var lumaBufferCtx = null;\r\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\r\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\r\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\r\n // Naming it solution 2 to mark the extra comment lines.\r\n\r\n /*\r\n var svgString = [\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\">',\r\n '<filter id=\"' + id + '\">',\r\n '<feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0',\r\n '\"/>',\r\n '</filter>',\r\n '</svg>',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\r\n\r\n function createLumaSvgFilter() {\r\n var _svg = createNS('svg');\r\n\r\n var fil = createNS('filter');\r\n var matrix = createNS('feColorMatrix');\r\n fil.setAttribute('id', id);\r\n matrix.setAttribute('type', 'matrix');\r\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\r\n fil.appendChild(matrix);\r\n\r\n _svg.appendChild(fil);\r\n\r\n _svg.setAttribute('id', id + '_svg');\r\n\r\n if (featureSupport.svgLumaHidden) {\r\n _svg.style.display = 'none';\r\n }\r\n\r\n return _svg;\r\n }\r\n\r\n function loadLuma() {\r\n if (!lumaBuffer) {\r\n svg = createLumaSvgFilter();\r\n document.body.appendChild(svg);\r\n lumaBuffer = createTag('canvas');\r\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\r\n lumaBufferCtx.fillRect(0, 0, 1, 1);\r\n }\r\n }\r\n\r\n function getLuma(canvas) {\r\n if (!lumaBuffer) {\r\n loadLuma();\r\n }\r\n\r\n lumaBuffer.width = canvas.width;\r\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n return lumaBuffer;\r\n }\r\n\r\n return {\r\n load: loadLuma,\r\n get: getLuma\r\n };\r\n };\r\n\r\n function createCanvas(width, height) {\r\n if (featureSupport.offscreenCanvas) {\r\n return new OffscreenCanvas(width, height);\r\n }\r\n\r\n var canvas = createTag('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n }\r\n\r\n var assetLoader = function () {\r\n return {\r\n loadLumaCanvas: lumaLoader.load,\r\n getLumaCanvas: lumaLoader.get,\r\n createCanvas: createCanvas\r\n };\r\n }();\r\n\r\n function CVEffects() {}\r\n\r\n CVEffects.prototype.renderFrame = function () {};\r\n\r\n function CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n\r\n this.hasMasks = hasMasks;\r\n\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n CVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n };\r\n\r\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\n CVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n };\r\n\r\n function CVBaseElement() {}\r\n\r\n var operationsMap = {\r\n 1: 'source-in',\r\n 2: 'source-out',\r\n 3: 'source-in',\r\n 4: 'source-out'\r\n };\r\n CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n // If the layer is masked we will use two buffers to store each different states of the drawing\r\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\r\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\r\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\r\n // It might be challenging because the layer most likely is transformed in some way\r\n if (this.data.tt >= 1) {\r\n this.buffers = [];\r\n var canvasContext = this.globalData.canvasContext;\r\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas);\r\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas2);\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n assetLoader.loadLumaCanvas();\r\n }\r\n }\r\n\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.transformCanvas = this.globalData.transformCanvas;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function createContent() {},\r\n setBlendMode: function setBlendMode() {\r\n var globalData = this.globalData;\r\n\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function hideElement() {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function showElement() {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n clearCanvas: function clearCanvas(canvasContext) {\r\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\r\n },\r\n prepareLayer: function prepareLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[0];\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\r\n\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\r\n // TODO: Check if there is a way to clear the canvas without resetting the transform\r\n\r\n this.currentTransform = this.canvasContext.getTransform();\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform);\r\n }\r\n },\r\n exitLayer: function exitLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\r\n // that only contains the content of this layer\r\n // (if it is a composition, it also includes the nested layers)\r\n\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx);\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\r\n\r\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\r\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\r\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\r\n // that applies the rgb values to the alpha channel\r\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n var lumaBufferCtx = lumaBuffer.getContext('2d');\r\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\r\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\r\n\r\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\r\n }\r\n\r\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\r\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\r\n // We use destination-over to draw the global drawing below the current layer\r\n\r\n this.canvasContext.globalCompositeOperation = 'destination-over';\r\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\r\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\r\n\r\n this.canvasContext.globalCompositeOperation = 'source-over';\r\n }\r\n },\r\n renderFrame: function renderFrame(forceRender) {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n\r\n if (this.data.td === 1 && !forceRender) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.prepareLayer();\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n this.exitLayer();\r\n\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix()\r\n };\r\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n function CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n }\r\n\r\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n function CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n CVShapeElement.prototype.transformHelper = {\r\n opacity: 1,\r\n _opMdf: false\r\n };\r\n CVShapeElement.prototype.dashResetter = [];\r\n\r\n CVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n };\r\n\r\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n\r\n if (data.lj == 1) {\r\n // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem[\"do\"] = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\r\n }\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n };\r\n\r\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n };\r\n\r\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type; // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n\r\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle[\"do\"];\r\n }\r\n }\r\n\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n\r\n renderer.restore();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {//\r\n }\r\n }\r\n\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n\r\n styleElem.grd = grd;\r\n }\r\n\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n };\r\n\r\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem[\"do\"] = d.dashoffset[0];\r\n }\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n };\r\n\r\n function CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\n CVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var hasFill = false;\r\n\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\r\n\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n\r\n commands = createSizedArray(jLen - 1);\r\n var commandsCounter = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[commandsCounter] = pathArr;\r\n commandsCounter += 1;\r\n }\r\n }\r\n\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = {\r\n elem: commands\r\n };\r\n }\r\n\r\n cnt += 1;\r\n }\r\n };\r\n\r\n CVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n\r\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n };\r\n\r\n CVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n };\r\n\r\n CVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n };\r\n\r\n function CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\r\n };\r\n\r\n function CanvasRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || ''\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([BaseRenderer], CanvasRendererBase);\r\n\r\n CanvasRendererBase.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n CanvasRendererBase.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n } // Resetting the canvas transform matrix to the new transform\r\n\r\n\r\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\r\n\r\n var currentTransform = this.contextData.getTransform();\r\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\r\n\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // Storing the new transformed value in the stored transform\r\n\r\n currentTransform.cloneFromProps(this.transformMat.props);\r\n var trProps = currentTransform.props; // Applying the new transform to the canvas\r\n\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n };\r\n\r\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n var currentOpacity = this.contextData.getOpacity();\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n return;\r\n }\r\n\r\n currentOpacity *= op < 0 ? 0 : op;\r\n this.contextData.setOpacity(currentOpacity);\r\n\r\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\r\n this.canvasContext.globalAlpha = currentOpacity;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n this.contextData.reset();\r\n };\r\n\r\n CanvasRendererBase.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n\r\n this.contextData.push();\r\n };\r\n\r\n CanvasRendererBase.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n\r\n var popped = this.contextData.pop();\r\n var transform = popped.transform;\r\n var opacity = popped.opacity;\r\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\r\n\r\n if (this.globalData.currentGlobalAlpha !== opacity) {\r\n this.canvasContext.globalAlpha = opacity;\r\n this.globalData.currentGlobalAlpha = opacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n this.updateContainerSize();\r\n };\r\n\r\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n\r\n if (width) {\r\n elementWidth = width;\r\n elementHeight = height;\r\n this.canvasContext.canvas.width = elementWidth;\r\n this.canvasContext.canvas.height = elementHeight;\r\n } else {\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width;\r\n elementHeight = this.canvasContext.canvas.height;\r\n }\r\n\r\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\r\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\r\n }\r\n\r\n var elementRel;\r\n var animationRel;\r\n\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n\r\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n\r\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\r\n\r\n this.ctxTransform(this.transformCanvas.props);\r\n this.canvasContext.beginPath();\r\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n this.canvasContext.closePath();\r\n this.canvasContext.clip();\r\n this.renderFrame(this.renderedFrame, true);\r\n };\r\n\r\n CanvasRendererBase.prototype.destroy = function () {\r\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n };\r\n\r\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\r\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\r\n return;\r\n }\r\n\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\r\n // console.log('NEW: ',num);\r\n\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n };\r\n\r\n CanvasRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n };\r\n\r\n CanvasRendererBase.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n };\r\n\r\n function CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\r\n\r\n CVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n CVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.layers = null;\r\n this.elements = null;\r\n };\r\n\r\n CVCompElement.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([CanvasRendererBase], CanvasRenderer);\r\n\r\n CanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HBaseElement() {}\r\n\r\n HBaseElement.prototype = {\r\n checkBlendMode: function checkBlendMode() {},\r\n initRendererElement: function initRendererElement() {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function addEffects() {},\r\n setMatte: function setMatte() {}\r\n };\r\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\r\n\r\n function HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\n HSolidElement.prototype.createContent = function () {\r\n var rect;\r\n\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\n HShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n };\r\n\r\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n\r\n return point;\r\n };\r\n\r\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n\r\n if (len <= 1) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n };\r\n\r\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n };\r\n\r\n HShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n HShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n\r\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\r\n // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n b |= 0; // eslint-disable-line no-bitwise\r\n\r\n a |= 0; // eslint-disable-line no-bitwise\r\n\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {//\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n };\r\n\r\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\r\n };\r\n\r\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\r\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\r\n }\r\n }\r\n };\r\n\r\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\r\n var width = 0;\r\n\r\n if (widthProperty.keyframes) {\r\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\r\n var kfw = widthProperty.keyframes[i].s;\r\n\r\n if (kfw > width) {\r\n width = kfw;\r\n }\r\n }\r\n\r\n width *= widthProperty.mult;\r\n } else {\r\n width = widthProperty.v * widthProperty.mult;\r\n }\r\n\r\n boundingBox.x -= width;\r\n boundingBox.xMax += width;\r\n boundingBox.y -= width;\r\n boundingBox.yMax += width;\r\n };\r\n\r\n HShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n };\r\n\r\n HShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\r\n\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n\r\n var changed = false;\r\n\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n };\r\n\r\n function HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\n HTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n };\r\n\r\n HTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n } // tSpan.setAttribute('visibility', 'hidden');\r\n\r\n\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent); //\r\n\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } //\r\n\r\n\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n };\r\n\r\n HTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n\r\n\r\n textSpan.style.opacity = renderedLetter.o;\r\n\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n\r\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n };\r\n\r\n function HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n\r\n this.finalTransform = {\r\n mProp: this\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\n HCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n };\r\n\r\n HCameraElement.prototype.createElements = function () {};\r\n\r\n HCameraElement.prototype.hide = function () {};\r\n\r\n HCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n\r\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n\r\n if (this.a) {\r\n var diffVector;\r\n\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\r\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n\r\n this._isFirstFrame = false;\r\n };\r\n\r\n HCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n HCameraElement.prototype.destroy = function () {};\r\n\r\n HCameraElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n function HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\n HImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n };\r\n\r\n function HybridRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([BaseRenderer], HybridRendererBase);\r\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\n HybridRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n\r\n var layer = this.layers[pos];\r\n\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n return new HShapeElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n\r\n return new HTextElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n };\r\n\r\n HybridRendererBase.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n\r\n return new HImageElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n\r\n return new HSolidElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\r\n\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n };\r\n\r\n HybridRendererBase.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n\r\n len = this.threeDElements.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n wrapper.appendChild(resizerElem);\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData; // Mask animation\r\n\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n };\r\n\r\n HybridRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n HybridRendererBase.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / this.globalData.compSize.w;\r\n sy = elementWidth / this.globalData.compSize.w;\r\n tx = 0;\r\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\r\n } else {\r\n sx = elementHeight / this.globalData.compSize.h;\r\n sy = elementHeight / this.globalData.compSize.h;\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n };\r\n\r\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\n HybridRendererBase.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n };\r\n\r\n HybridRendererBase.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n };\r\n\r\n HybridRendererBase.prototype.initItems = function () {\r\n this.buildAllItems();\r\n\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n function HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\r\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\n HCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n };\r\n\r\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n };\r\n\r\n HCompElement.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n },\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([HybridRendererBase], HybridRenderer);\r\n\r\n HybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n var CompExpressionInterface = function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null; // return {active:false};\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, '_name', {\r\n value: comp.data.nm\r\n });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var Expressions = function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var MaskManagerInterface = function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function get() {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n\r\n return this._mask.prop;\r\n }\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function get() {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n\r\n return this._mask.op.v * 100;\r\n }\r\n });\r\n\r\n var MaskManager = function MaskManager(maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n\r\n var i;\r\n var len = maskManager.viewData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function maskFunction(name) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return maskFunction;\r\n };\r\n\r\n return MaskManager;\r\n }();\r\n\r\n var ExpressionPropertyInterface = function () {\r\n var defaultUnidimensionalValue = {\r\n pv: 0,\r\n v: 0,\r\n mult: 1\r\n };\r\n var defaultMultidimensionalValue = {\r\n pv: [0, 0, 0],\r\n v: [0, 0, 0],\r\n mult: 1\r\n };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function get() {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n }\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n\r\n var value = '';\r\n\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n val = property.v * mult;\r\n\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var len = property.data && property.data.l || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n\r\n return expressionValue;\r\n };\r\n } // TODO: try to avoid using this getter\r\n\r\n\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n }\r\n\r\n if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n }();\r\n\r\n var TransformExpressionInterface = function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz)\r\n });\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r)\r\n });\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx)\r\n });\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry)\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s)\r\n });\r\n\r\n var _px;\r\n\r\n var _py;\r\n\r\n var _pz;\r\n\r\n var _transformFactory;\r\n\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function get() {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n\r\n return [_px(), _py(), _pz ? _pz() : 0];\r\n }\r\n });\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px)\r\n });\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py)\r\n });\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz)\r\n });\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a)\r\n });\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o)\r\n });\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk)\r\n });\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa)\r\n });\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or)\r\n });\r\n return _thisFunction;\r\n };\r\n }();\r\n\r\n var LayerExpressionInterface = function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function get() {\r\n return elem.hierarchy.length;\r\n }\r\n },\r\n parent: {\r\n get: function get() {\r\n return elem.hierarchy[0].layerInterface;\r\n }\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function get() {\r\n return transformInterface;\r\n }\r\n },\r\n active: {\r\n get: function get() {\r\n return elem.isInRange;\r\n }\r\n }\r\n });\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var propertyGroupFactory = function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n }();\r\n\r\n var PropertyInterface = function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n }();\r\n\r\n var EffectsExpressionInterface = function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n\r\n var groupInterface = function groupInterface(name) {\r\n i = 0;\r\n len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function get() {\r\n return effects.length;\r\n }\r\n });\r\n return groupInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n\r\n return effectElements[i]();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n throw new Error();\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function get() {\r\n return effectElements[0]();\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function get() {\r\n return data.np;\r\n }\r\n },\r\n _name: {\r\n value: data.nm\r\n },\r\n propertyGroup: {\r\n value: _propertyGroup\r\n }\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePathInterface = function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n shape: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n ix: {\r\n value: shape.ix\r\n },\r\n propertyIndex: {\r\n value: shape.ix\r\n },\r\n mn: {\r\n value: shape.mn\r\n },\r\n propertyGroup: {\r\n value: propertyGroup\r\n }\r\n });\r\n return interfaceFunction;\r\n };\r\n }();\r\n\r\n var ShapeExpressionInterface = function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function get() {\r\n return shape.nm;\r\n }\r\n }); // interfaceFunction.content = interfaceFunction;\r\n\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n type: {\r\n get: function get() {\r\n return 'a';\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\r\n });\r\n }\r\n\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w)\r\n },\r\n dash: {\r\n get: function get() {\r\n return dashOb;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n\r\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n\r\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p)\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a)\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r)\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt)\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or)\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os)\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir)\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n\r\n return interfaces[value - 1];\r\n }\r\n\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var TextExpressionInterface = function () {\r\n return function (elem) {\r\n var _prevValue;\r\n\r\n var _sourceText;\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function get() {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n\r\n if (stringValue !== _prevValue) {\r\n _prevValue = elem.textProperty.currentData.t;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n\r\n Object.defineProperty(_sourceText, 'style', {\r\n get: function get() {\r\n return {\r\n fillColor: elem.textProperty.currentData.fc\r\n };\r\n }\r\n });\r\n }\r\n\r\n return _sourceText;\r\n }\r\n });\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\r\n\r\n var FootageInterface = function () {\r\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return init;\r\n };\r\n\r\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var interfaces = {\r\n layer: LayerExpressionInterface,\r\n effects: EffectsExpressionInterface,\r\n comp: CompExpressionInterface,\r\n shape: ShapeExpressionInterface,\r\n text: TextExpressionInterface,\r\n footage: FootageInterface\r\n };\r\n\r\n function getInterface(type) {\r\n return interfaces[type] || null;\r\n }\r\n\r\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\r\n\r\n /* eslint-disable */\r\n\r\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n function seedRandom(pool, math) {\r\n //\r\n // The following constants are related to IEEE 754 limits.\r\n //\r\n var global = this,\r\n width = 256,\r\n // each RC4 output is 0 <= x < 256\r\n chunks = 6,\r\n // at least six RC4 outputs for each double\r\n digits = 52,\r\n // there are 52 significant digits in a double\r\n rngname = 'random',\r\n // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n //\r\n // seedrandom()\r\n // This is the seedrandom function described above.\r\n //\r\n\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = options === true ? {\r\n entropy: true\r\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\r\n\r\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\r\n\r\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n\r\n var prng = function prng() {\r\n var n = arc4.g(chunks),\r\n // Start with a numerator n < 2 ^ 48\r\n d = startdenom,\r\n // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n\r\n while (n < significance) {\r\n // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n\r\n d *= width; // denominator and generating a\r\n\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n\r\n while (n >= overflow) {\r\n // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n\r\n d /= 2; // right using integer math until\r\n\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function () {\r\n return arc4.g(4) | 0;\r\n };\r\n\r\n prng.quick = function () {\r\n return arc4.g(4) / 0x100000000;\r\n };\r\n\r\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\r\n\r\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\r\n\r\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) {\r\n copy(state, arc4);\r\n } // Only provide the .state method if requested via options.state.\r\n\r\n\r\n prng.state = function () {\r\n return copy(arc4, {});\r\n };\r\n } // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n\r\n\r\n if (is_math_call) {\r\n math[rngname] = prng;\r\n return seed;\r\n } // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\r\n }\r\n\r\n math['seed' + rngname] = seedrandom; //\r\n // ARC4\r\n //\r\n // An ARC4 implementation. The constructor takes a key in the form of\r\n // an array of at most (width) integers that should be 0 <= x < (width).\r\n //\r\n // The g(count) method returns a pseudorandom integer that concatenates\r\n // the next (count) outputs from ARC4. Its return value is a number x\r\n // that is in the range 0 <= x < (width ^ count).\r\n //\r\n\r\n function ARC4(key) {\r\n var t,\r\n keylen = key.length,\r\n me = this,\r\n i = 0,\r\n j = me.i = me.j = 0,\r\n s = me.S = []; // The empty key [] is treated as [0].\r\n\r\n if (!keylen) {\r\n key = [keylen++];\r\n } // Set up S using the standard key scheduling algorithm.\r\n\r\n\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\r\n s[j] = t;\r\n } // The \"g\" method returns the next (count) outputs as one number.\r\n\r\n\r\n me.g = function (count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t,\r\n r = 0,\r\n i = me.i,\r\n j = me.j,\r\n s = me.S;\r\n\r\n while (count--) {\r\n t = s[i = mask & i + 1];\r\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\r\n }\r\n\r\n me.i = i;\r\n me.j = j;\r\n return r; // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n } //\r\n // copy()\r\n // Copies internal state of ARC4 to or from a plain object.\r\n //\r\n\r\n\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n } //\r\n // flatten()\r\n // Converts an object tree to nested arrays of strings.\r\n //\r\n\r\n\r\n function flatten(obj, depth) {\r\n var result = [],\r\n typ = _typeof$1(obj),\r\n prop;\r\n\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try {\r\n result.push(flatten(obj[prop], depth - 1));\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\r\n } //\r\n // mixkey()\r\n // Mixes a string seed into a key that is an array of integers, and\r\n // returns a shortened string seed that is equivalent to the result key.\r\n //\r\n\r\n\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '',\r\n smear,\r\n j = 0;\r\n\r\n while (j < stringseed.length) {\r\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\r\n }\r\n\r\n return tostring(key);\r\n } //\r\n // autoseed()\r\n // Returns an object for autoseeding, using window.crypto and Node crypto\r\n // module if available.\r\n //\r\n\r\n\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) {\r\n return tostring(nodecrypto.randomBytes(width));\r\n }\r\n\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n } //\r\n // tostring()\r\n // Converts an array of charcodes to a string\r\n //\r\n\r\n\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n } //\r\n // When seedrandom.js is loaded, we immediately mix a few bits\r\n // from the built-in RNG into the entropy pool. Because we do\r\n // not want to interfere with deterministic PRNG state later,\r\n // seedrandom will not call math.random on its own again after\r\n // initialization.\r\n //\r\n\r\n\r\n mixkey(math.random(), pool); //\r\n // Nodejs and AMD support: export the implementation as a module using\r\n // either convention.\r\n //\r\n // End anonymous scope, and pass initial values.\r\n }\r\n\r\n ;\r\n\r\n function initialize$2(BMMath) {\r\n seedRandom([], BMMath);\r\n }\r\n\r\n var propTypes = {\r\n SHAPE: 'shape'\r\n };\r\n\r\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\r\n\r\n var ExpressionManager = function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n initialize$2(BMMath);\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = _typeof(a);\r\n\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a - b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a % b;\r\n }\r\n\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n\r\n var degrees_to_radians = radiansToDegrees;\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0];\r\n var g = val[1];\r\n var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n\r\n b = l; // achromatic\r\n\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n\r\n if (t <= tMin) {\r\n return value1;\r\n }\r\n\r\n if (t >= tMax) {\r\n return value2;\r\n }\r\n\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n // Bail out if we don't want expressions\r\n function noOp(_value) {\r\n return _value;\r\n }\r\n\r\n if (!elem.globalData.renderConfig.runExpressions) {\r\n return noOp;\r\n }\r\n\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function get() {\r\n return thisProperty.v;\r\n }\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n\r\n var numKeys = property.kf ? data.k.length : 0;\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n\r\n iWiggle += 1;\r\n } // var rnd2 = BMMath.random();\r\n\r\n\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n\r\n var mult = fn(t);\r\n\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: []\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n lenKey = arr.length;\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n\r\n return value.substring(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n\r\n return value.substr(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n // Changed this to a ternary operation because Rollup failed compiling it correctly\r\n\r\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\r\n return scoped_bm_rt;\r\n } // Bundlers will see these as dead code and unless we reference them\r\n\r\n\r\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\r\n return ob;\r\n }();\r\n\r\n var expressionHelpers = function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n\r\n if (v1.length) {\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n\r\n var delta = -0.001; // frameNum += this.elem.data.st;\r\n\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty\r\n };\r\n }();\r\n\r\n function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\r\n }\r\n\r\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n\r\n var sampleValue;\r\n\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix()\r\n };\r\n } /// /\r\n\r\n\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\r\n }\r\n\r\n return matrix; /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n\r\n ShapeExpressions.prototype = {\r\n vertices: function vertices(prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n\r\n return arr;\r\n },\r\n points: function points(time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function inTangents(time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function outTangents(time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function isClosed() {\r\n return this.v.c;\r\n },\r\n pointOnPath: function pointOnPath(perc, time) {\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n\r\n return pt;\r\n },\r\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) {\r\n // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) {\r\n // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function tangentOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function normalOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n }\r\n\r\n function initialize$1() {\r\n addPropertyDecorator();\r\n }\r\n\r\n function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n }\r\n\r\n function initialize() {\r\n addDecorator();\r\n }\r\n\r\n function SVGComposableEffect() {}\r\n\r\n SVGComposableEffect.prototype = {\r\n createMergeNode: function createMergeNode(resultId, ins) {\r\n var feMerge = createNS('feMerge');\r\n feMerge.setAttribute('result', resultId);\r\n var feMergeNode;\r\n var i;\r\n\r\n for (i = 0; i < ins.length; i += 1) {\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', ins[i]);\r\n feMerge.appendChild(feMergeNode);\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n\r\n return feMerge;\r\n }\r\n };\r\n\r\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\r\n\r\n function SVGTintFilter(filter, filterManager, elem, id, source) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\r\n this.linearFilter = feColorMatrix;\r\n feColorMatrix.setAttribute('result', id + '_tint_1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id + '_tint_2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\r\n filter.appendChild(feMerge);\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGTintFilter);\r\n\r\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\r\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\r\n }\r\n };\r\n\r\n function SVGFillFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id);\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n }\r\n\r\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n };\r\n\r\n function SVGStrokeEffect(fil, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n }\r\n\r\n SVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({\r\n p: path,\r\n m: i\r\n });\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n };\r\n\r\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n };\r\n\r\n function SVGTritoneFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n }\r\n };\r\n\r\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n } // Green\r\n\r\n\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n } // Blue\r\n\r\n\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n } // Alpha\r\n\r\n\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n } // RGB\r\n\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n }\r\n\r\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n };\r\n\r\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, {\r\n length: segments\r\n });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\r\n }\r\n\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n\r\n return table.join(' ');\r\n };\r\n\r\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n };\r\n\r\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\r\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n var filterSize = filterManager.data.fs || globalFilterSize;\r\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\r\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\r\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\r\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', id + '_drop_shadow_1');\r\n feOffset.setAttribute('result', id + '_drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', id + '_drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', id + '_drop_shadow_3');\r\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', id + '_drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\r\n filter.appendChild(feMerge); //\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\r\n\r\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n }\r\n };\r\n\r\n var _svgMatteSymbols = [];\r\n\r\n function SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n }\r\n\r\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var nextChild;\r\n\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n };\r\n\r\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n\r\n _svgMatteSymbols.push(mask);\r\n\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n\r\n elem.setMatte(mask.layerId);\r\n };\r\n\r\n SVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.initialized = true;\r\n };\r\n\r\n SVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('result', id);\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n }\r\n\r\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n\r\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n };\r\n\r\n registerRenderer('canvas', CanvasRenderer);\r\n registerRenderer('html', HybridRenderer);\r\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\r\n\r\n ShapeModifiers.registerModifier('tm', TrimModifier);\r\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\r\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\r\n\r\n setExpressionsPlugin(Expressions);\r\n setExpressionInterfaces(getInterface);\r\n initialize$1();\r\n initialize(); // Registering svg effects\r\n\r\n registerEffect(20, SVGTintFilter, true);\r\n registerEffect(21, SVGFillFilter, true);\r\n registerEffect(22, SVGStrokeEffect, false);\r\n registerEffect(23, SVGTritoneFilter, true);\r\n registerEffect(24, SVGProLevelsFilter, true);\r\n registerEffect(25, SVGDropShadowEffect, true);\r\n registerEffect(28, SVGMatte3Effect, false);\r\n registerEffect(29, SVGGaussianBlurEffect, true);\r\n\r\n return lottie;\r\n\r\n}));\r\n","'use strict';\nmodule.exports = string => {\n\tconst match = string.match(/^[ \\t]*(?=\\S)/gm);\n\n\tif (!match) {\n\t\treturn 0;\n\t}\n\n\treturn match.reduce((r, a) => Math.min(r, a.length), Infinity);\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind.apply(getPolyfill());\n// eslint-disable-next-line no-unused-vars\nvar bound = function assign(target, source1) {\n\treturn polyfill(Object, arguments);\n};\n\ndefineProperties(bound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = bound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tObject,\n\t\t{ assign: polyfill },\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\n\t);\n\treturn polyfill;\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 */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\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 var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\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\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\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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 */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\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}\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react')) :\n typeof define === 'function' && define.amd ? define(['react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.AnimatedCursor = factory(global.React));\n})(this, (function (React) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\n var propTypes = {exports: {}};\n\n var reactIs = {exports: {}};\n\n var reactIs_production_min = {};\n\n /** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n var hasRequiredReactIs_production_min;\n\n function requireReactIs_production_min () {\n \tif (hasRequiredReactIs_production_min) return reactIs_production_min;\n \thasRequiredReactIs_production_min = 1;\n var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\n \tSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\n \tfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}reactIs_production_min.AsyncMode=l;reactIs_production_min.ConcurrentMode=m;reactIs_production_min.ContextConsumer=k;reactIs_production_min.ContextProvider=h;reactIs_production_min.Element=c;reactIs_production_min.ForwardRef=n;reactIs_production_min.Fragment=e;reactIs_production_min.Lazy=t;reactIs_production_min.Memo=r;reactIs_production_min.Portal=d;\n \treactIs_production_min.Profiler=g;reactIs_production_min.StrictMode=f;reactIs_production_min.Suspense=p;reactIs_production_min.isAsyncMode=function(a){return A(a)||z(a)===l};reactIs_production_min.isConcurrentMode=A;reactIs_production_min.isContextConsumer=function(a){return z(a)===k};reactIs_production_min.isContextProvider=function(a){return z(a)===h};reactIs_production_min.isElement=function(a){return \"object\"===typeof a&&null!==a&&a.$$typeof===c};reactIs_production_min.isForwardRef=function(a){return z(a)===n};reactIs_production_min.isFragment=function(a){return z(a)===e};reactIs_production_min.isLazy=function(a){return z(a)===t};\n \treactIs_production_min.isMemo=function(a){return z(a)===r};reactIs_production_min.isPortal=function(a){return z(a)===d};reactIs_production_min.isProfiler=function(a){return z(a)===g};reactIs_production_min.isStrictMode=function(a){return z(a)===f};reactIs_production_min.isSuspense=function(a){return z(a)===p};\n \treactIs_production_min.isValidElementType=function(a){return \"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};reactIs_production_min.typeOf=z;\n \treturn reactIs_production_min;\n }\n\n var reactIs_development = {};\n\n /** @license React v16.13.1\n * react-is.development.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\n var hasRequiredReactIs_development;\n\n function requireReactIs_development () {\n \tif (hasRequiredReactIs_development) return reactIs_development;\n \thasRequiredReactIs_development = 1;\n\n\n\n \tif (process.env.NODE_ENV !== \"production\") {\n \t (function() {\n\n \t// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n \t// nor polyfill, then a plain number is used for performance.\n \tvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n \tvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n \tvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n \tvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n \tvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n \tvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n \tvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n \tvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n \t// (unstable) APIs that have been removed. Can we remove the symbols?\n\n \tvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n \tvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n \tvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n \tvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n \tvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n \tvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n \tvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n \tvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n \tvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n \tvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n \tvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\n \tfunction isValidElementType(type) {\n \t return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n \t type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n \t}\n\n \tfunction typeOf(object) {\n \t if (typeof object === 'object' && object !== null) {\n \t var $$typeof = object.$$typeof;\n\n \t switch ($$typeof) {\n \t case REACT_ELEMENT_TYPE:\n \t var type = object.type;\n\n \t switch (type) {\n \t case REACT_ASYNC_MODE_TYPE:\n \t case REACT_CONCURRENT_MODE_TYPE:\n \t case REACT_FRAGMENT_TYPE:\n \t case REACT_PROFILER_TYPE:\n \t case REACT_STRICT_MODE_TYPE:\n \t case REACT_SUSPENSE_TYPE:\n \t return type;\n\n \t default:\n \t var $$typeofType = type && type.$$typeof;\n\n \t switch ($$typeofType) {\n \t case REACT_CONTEXT_TYPE:\n \t case REACT_FORWARD_REF_TYPE:\n \t case REACT_LAZY_TYPE:\n \t case REACT_MEMO_TYPE:\n \t case REACT_PROVIDER_TYPE:\n \t return $$typeofType;\n\n \t default:\n \t return $$typeof;\n \t }\n\n \t }\n\n \t case REACT_PORTAL_TYPE:\n \t return $$typeof;\n \t }\n \t }\n\n \t return undefined;\n \t} // AsyncMode is deprecated along with isAsyncMode\n\n \tvar AsyncMode = REACT_ASYNC_MODE_TYPE;\n \tvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n \tvar ContextConsumer = REACT_CONTEXT_TYPE;\n \tvar ContextProvider = REACT_PROVIDER_TYPE;\n \tvar Element = REACT_ELEMENT_TYPE;\n \tvar ForwardRef = REACT_FORWARD_REF_TYPE;\n \tvar Fragment = REACT_FRAGMENT_TYPE;\n \tvar Lazy = REACT_LAZY_TYPE;\n \tvar Memo = REACT_MEMO_TYPE;\n \tvar Portal = REACT_PORTAL_TYPE;\n \tvar Profiler = REACT_PROFILER_TYPE;\n \tvar StrictMode = REACT_STRICT_MODE_TYPE;\n \tvar Suspense = REACT_SUSPENSE_TYPE;\n \tvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n \tfunction isAsyncMode(object) {\n \t {\n \t if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n \t hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n \t console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n \t }\n \t }\n\n \t return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n \t}\n \tfunction isConcurrentMode(object) {\n \t return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n \t}\n \tfunction isContextConsumer(object) {\n \t return typeOf(object) === REACT_CONTEXT_TYPE;\n \t}\n \tfunction isContextProvider(object) {\n \t return typeOf(object) === REACT_PROVIDER_TYPE;\n \t}\n \tfunction isElement(object) {\n \t return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n \t}\n \tfunction isForwardRef(object) {\n \t return typeOf(object) === REACT_FORWARD_REF_TYPE;\n \t}\n \tfunction isFragment(object) {\n \t return typeOf(object) === REACT_FRAGMENT_TYPE;\n \t}\n \tfunction isLazy(object) {\n \t return typeOf(object) === REACT_LAZY_TYPE;\n \t}\n \tfunction isMemo(object) {\n \t return typeOf(object) === REACT_MEMO_TYPE;\n \t}\n \tfunction isPortal(object) {\n \t return typeOf(object) === REACT_PORTAL_TYPE;\n \t}\n \tfunction isProfiler(object) {\n \t return typeOf(object) === REACT_PROFILER_TYPE;\n \t}\n \tfunction isStrictMode(object) {\n \t return typeOf(object) === REACT_STRICT_MODE_TYPE;\n \t}\n \tfunction isSuspense(object) {\n \t return typeOf(object) === REACT_SUSPENSE_TYPE;\n \t}\n\n \treactIs_development.AsyncMode = AsyncMode;\n \treactIs_development.ConcurrentMode = ConcurrentMode;\n \treactIs_development.ContextConsumer = ContextConsumer;\n \treactIs_development.ContextProvider = ContextProvider;\n \treactIs_development.Element = Element;\n \treactIs_development.ForwardRef = ForwardRef;\n \treactIs_development.Fragment = Fragment;\n \treactIs_development.Lazy = Lazy;\n \treactIs_development.Memo = Memo;\n \treactIs_development.Portal = Portal;\n \treactIs_development.Profiler = Profiler;\n \treactIs_development.StrictMode = StrictMode;\n \treactIs_development.Suspense = Suspense;\n \treactIs_development.isAsyncMode = isAsyncMode;\n \treactIs_development.isConcurrentMode = isConcurrentMode;\n \treactIs_development.isContextConsumer = isContextConsumer;\n \treactIs_development.isContextProvider = isContextProvider;\n \treactIs_development.isElement = isElement;\n \treactIs_development.isForwardRef = isForwardRef;\n \treactIs_development.isFragment = isFragment;\n \treactIs_development.isLazy = isLazy;\n \treactIs_development.isMemo = isMemo;\n \treactIs_development.isPortal = isPortal;\n \treactIs_development.isProfiler = isProfiler;\n \treactIs_development.isStrictMode = isStrictMode;\n \treactIs_development.isSuspense = isSuspense;\n \treactIs_development.isValidElementType = isValidElementType;\n \treactIs_development.typeOf = typeOf;\n \t })();\n \t}\n \treturn reactIs_development;\n }\n\n var hasRequiredReactIs;\n\n function requireReactIs () {\n \tif (hasRequiredReactIs) return reactIs.exports;\n \thasRequiredReactIs = 1;\n \t(function (module) {\n\n \t\tif (process.env.NODE_ENV === 'production') {\n \t\t module.exports = requireReactIs_production_min();\n \t\t} else {\n \t\t module.exports = requireReactIs_development();\n \t\t}\n } (reactIs));\n \treturn reactIs.exports;\n }\n\n /*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n */\n\n var objectAssign;\n var hasRequiredObjectAssign;\n\n function requireObjectAssign () {\n \tif (hasRequiredObjectAssign) return objectAssign;\n \thasRequiredObjectAssign = 1;\n \t/* eslint-disable no-unused-vars */\n \tvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\n \tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n \tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\n \tfunction toObject(val) {\n \t\tif (val === null || val === undefined) {\n \t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n \t\t}\n\n \t\treturn Object(val);\n \t}\n\n \tfunction shouldUseNative() {\n \t\ttry {\n \t\t\tif (!Object.assign) {\n \t\t\t\treturn false;\n \t\t\t}\n\n \t\t\t// Detect buggy property enumeration order in older V8 versions.\n\n \t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n \t\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n \t\t\ttest1[5] = 'de';\n \t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n \t\t\t\treturn false;\n \t\t\t}\n\n \t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n \t\t\tvar test2 = {};\n \t\t\tfor (var i = 0; i < 10; i++) {\n \t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n \t\t\t}\n \t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n \t\t\t\treturn test2[n];\n \t\t\t});\n \t\t\tif (order2.join('') !== '0123456789') {\n \t\t\t\treturn false;\n \t\t\t}\n\n \t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n \t\t\tvar test3 = {};\n \t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n \t\t\t\ttest3[letter] = letter;\n \t\t\t});\n \t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n \t\t\t\t\t'abcdefghijklmnopqrst') {\n \t\t\t\treturn false;\n \t\t\t}\n\n \t\t\treturn true;\n \t\t} catch (err) {\n \t\t\t// We don't expect any of the above to throw, but better to be safe.\n \t\t\treturn false;\n \t\t}\n \t}\n\n \tobjectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n \t\tvar from;\n \t\tvar to = toObject(target);\n \t\tvar symbols;\n\n \t\tfor (var s = 1; s < arguments.length; s++) {\n \t\t\tfrom = Object(arguments[s]);\n\n \t\t\tfor (var key in from) {\n \t\t\t\tif (hasOwnProperty.call(from, key)) {\n \t\t\t\t\tto[key] = from[key];\n \t\t\t\t}\n \t\t\t}\n\n \t\t\tif (getOwnPropertySymbols) {\n \t\t\t\tsymbols = getOwnPropertySymbols(from);\n \t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n \t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n \t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\treturn to;\n \t};\n \treturn objectAssign;\n }\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 */\n\n var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret () {\n \tif (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n \thasRequiredReactPropTypesSecret = 1;\n\n \tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\n \tReactPropTypesSecret_1 = ReactPropTypesSecret;\n \treturn ReactPropTypesSecret_1;\n }\n\n var has;\n var hasRequiredHas;\n\n function requireHas () {\n \tif (hasRequiredHas) return has;\n \thasRequiredHas = 1;\n \thas = Function.call.bind(Object.prototype.hasOwnProperty);\n \treturn has;\n }\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 */\n\n var checkPropTypes_1;\n var hasRequiredCheckPropTypes;\n\n function requireCheckPropTypes () {\n \tif (hasRequiredCheckPropTypes) return checkPropTypes_1;\n \thasRequiredCheckPropTypes = 1;\n\n \tvar printWarning = function() {};\n\n \tif (process.env.NODE_ENV !== 'production') {\n \t var ReactPropTypesSecret = requireReactPropTypesSecret();\n \t var loggedTypeFailures = {};\n \t var has = requireHas();\n\n \t printWarning = function(text) {\n \t var message = 'Warning: ' + text;\n \t if (typeof console !== 'undefined') {\n \t console.error(message);\n \t }\n \t try {\n \t // --- Welcome to debugging React ---\n \t // This error was thrown as a convenience so that you can use this stack\n \t // to find the callsite that caused this warning to fire.\n \t throw new Error(message);\n \t } catch (x) { /**/ }\n \t };\n \t}\n\n \t/**\n \t * Assert that the values match with the type specs.\n \t * Error messages are memorized and will only be shown once.\n \t *\n \t * @param {object} typeSpecs Map of name to a ReactPropType\n \t * @param {object} values Runtime values that need to be type-checked\n \t * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n \t * @param {string} componentName Name of the component for error messages.\n \t * @param {?Function} getStack Returns the component stack.\n \t * @private\n \t */\n \tfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n \t if (process.env.NODE_ENV !== 'production') {\n \t for (var typeSpecName in typeSpecs) {\n \t if (has(typeSpecs, typeSpecName)) {\n \t var error;\n \t // Prop type validation may throw. In case they do, we don't want to\n \t // fail the render phase where it didn't fail before. So we log it.\n \t // After these have been cleaned up, we'll let them throw.\n \t try {\n \t // This is intentionally an invariant that gets caught. It's the same\n \t // behavior as without this statement except with a better message.\n \t if (typeof typeSpecs[typeSpecName] !== 'function') {\n \t var err = Error(\n \t (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n \t 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n \t 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n \t );\n \t err.name = 'Invariant Violation';\n \t throw err;\n \t }\n \t error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n \t } catch (ex) {\n \t error = ex;\n \t }\n \t if (error && !(error instanceof Error)) {\n \t printWarning(\n \t (componentName || 'React class') + ': type specification of ' +\n \t location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n \t 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n \t 'You may have forgotten to pass an argument to the type checker ' +\n \t 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n \t 'shape all require an argument).'\n \t );\n \t }\n \t if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n \t // Only monitor this failure once because there tends to be a lot of the\n \t // same error.\n \t loggedTypeFailures[error.message] = true;\n\n \t var stack = getStack ? getStack() : '';\n\n \t printWarning(\n \t 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n \t );\n \t }\n \t }\n \t }\n \t }\n \t}\n\n \t/**\n \t * Resets warning cache when testing.\n \t *\n \t * @private\n \t */\n \tcheckPropTypes.resetWarningCache = function() {\n \t if (process.env.NODE_ENV !== 'production') {\n \t loggedTypeFailures = {};\n \t }\n \t};\n\n \tcheckPropTypes_1 = checkPropTypes;\n \treturn checkPropTypes_1;\n }\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 */\n\n var factoryWithTypeCheckers;\n var hasRequiredFactoryWithTypeCheckers;\n\n function requireFactoryWithTypeCheckers () {\n \tif (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;\n \thasRequiredFactoryWithTypeCheckers = 1;\n\n \tvar ReactIs = requireReactIs();\n \tvar assign = requireObjectAssign();\n\n \tvar ReactPropTypesSecret = requireReactPropTypesSecret();\n \tvar has = requireHas();\n \tvar checkPropTypes = requireCheckPropTypes();\n\n \tvar printWarning = function() {};\n\n \tif (process.env.NODE_ENV !== 'production') {\n \t printWarning = function(text) {\n \t var message = 'Warning: ' + text;\n \t if (typeof console !== 'undefined') {\n \t console.error(message);\n \t }\n \t try {\n \t // --- Welcome to debugging React ---\n \t // This error was thrown as a convenience so that you can use this stack\n \t // to find the callsite that caused this warning to fire.\n \t throw new Error(message);\n \t } catch (x) {}\n \t };\n \t}\n\n \tfunction emptyFunctionThatReturnsNull() {\n \t return null;\n \t}\n\n \tfactoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {\n \t /* global Symbol */\n \t var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n \t var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n \t /**\n \t * Returns the iterator method function contained on the iterable object.\n \t *\n \t * Be sure to invoke the function with the iterable as context:\n \t *\n \t * var iteratorFn = getIteratorFn(myIterable);\n \t * if (iteratorFn) {\n \t * var iterator = iteratorFn.call(myIterable);\n \t * ...\n \t * }\n \t *\n \t * @param {?object} maybeIterable\n \t * @return {?function}\n \t */\n \t function getIteratorFn(maybeIterable) {\n \t var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n \t if (typeof iteratorFn === 'function') {\n \t return iteratorFn;\n \t }\n \t }\n\n \t /**\n \t * Collection of methods that allow declaration and validation of props that are\n \t * supplied to React components. Example usage:\n \t *\n \t * var Props = require('ReactPropTypes');\n \t * var MyArticle = React.createClass({\n \t * propTypes: {\n \t * // An optional string prop named \"description\".\n \t * description: Props.string,\n \t *\n \t * // A required enum prop named \"category\".\n \t * category: Props.oneOf(['News','Photos']).isRequired,\n \t *\n \t * // A prop named \"dialog\" that requires an instance of Dialog.\n \t * dialog: Props.instanceOf(Dialog).isRequired\n \t * },\n \t * render: function() { ... }\n \t * });\n \t *\n \t * A more formal specification of how these methods are used:\n \t *\n \t * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n \t * decl := ReactPropTypes.{type}(.isRequired)?\n \t *\n \t * Each and every declaration produces a function with the same signature. This\n \t * allows the creation of custom validation functions. For example:\n \t *\n \t * var MyLink = React.createClass({\n \t * propTypes: {\n \t * // An optional string or URI prop named \"href\".\n \t * href: function(props, propName, componentName) {\n \t * var propValue = props[propName];\n \t * if (propValue != null && typeof propValue !== 'string' &&\n \t * !(propValue instanceof URI)) {\n \t * return new Error(\n \t * 'Expected a string or an URI for ' + propName + ' in ' +\n \t * componentName\n \t * );\n \t * }\n \t * }\n \t * },\n \t * render: function() {...}\n \t * });\n \t *\n \t * @internal\n \t */\n\n \t var ANONYMOUS = '<<anonymous>>';\n\n \t // Important!\n \t // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n \t var ReactPropTypes = {\n \t array: createPrimitiveTypeChecker('array'),\n \t bigint: createPrimitiveTypeChecker('bigint'),\n \t bool: createPrimitiveTypeChecker('boolean'),\n \t func: createPrimitiveTypeChecker('function'),\n \t number: createPrimitiveTypeChecker('number'),\n \t object: createPrimitiveTypeChecker('object'),\n \t string: createPrimitiveTypeChecker('string'),\n \t symbol: createPrimitiveTypeChecker('symbol'),\n\n \t any: createAnyTypeChecker(),\n \t arrayOf: createArrayOfTypeChecker,\n \t element: createElementTypeChecker(),\n \t elementType: createElementTypeTypeChecker(),\n \t instanceOf: createInstanceTypeChecker,\n \t node: createNodeChecker(),\n \t objectOf: createObjectOfTypeChecker,\n \t oneOf: createEnumTypeChecker,\n \t oneOfType: createUnionTypeChecker,\n \t shape: createShapeTypeChecker,\n \t exact: createStrictShapeTypeChecker,\n \t };\n\n \t /**\n \t * inlined Object.is polyfill to avoid requiring consumers ship their own\n \t * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n \t */\n \t /*eslint-disable no-self-compare*/\n \t function is(x, y) {\n \t // SameValue algorithm\n \t if (x === y) {\n \t // Steps 1-5, 7-10\n \t // Steps 6.b-6.e: +0 != -0\n \t return x !== 0 || 1 / x === 1 / y;\n \t } else {\n \t // Step 6.a: NaN == NaN\n \t return x !== x && y !== y;\n \t }\n \t }\n \t /*eslint-enable no-self-compare*/\n\n \t /**\n \t * We use an Error-like object for backward compatibility as people may call\n \t * PropTypes directly and inspect their output. However, we don't use real\n \t * Errors anymore. We don't inspect their stack anyway, and creating them\n \t * is prohibitively expensive if they are created too often, such as what\n \t * happens in oneOfType() for any type before the one that matched.\n \t */\n \t function PropTypeError(message, data) {\n \t this.message = message;\n \t this.data = data && typeof data === 'object' ? data: {};\n \t this.stack = '';\n \t }\n \t // Make `instanceof Error` still work for returned errors.\n \t PropTypeError.prototype = Error.prototype;\n\n \t function createChainableTypeChecker(validate) {\n \t if (process.env.NODE_ENV !== 'production') {\n \t var manualPropTypeCallCache = {};\n \t var manualPropTypeWarningCount = 0;\n \t }\n \t function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n \t componentName = componentName || ANONYMOUS;\n \t propFullName = propFullName || propName;\n\n \t if (secret !== ReactPropTypesSecret) {\n \t if (throwOnDirectAccess) {\n \t // New behavior only for users of `prop-types` package\n \t var err = new Error(\n \t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n \t 'Use `PropTypes.checkPropTypes()` to call them. ' +\n \t 'Read more at http://fb.me/use-check-prop-types'\n \t );\n \t err.name = 'Invariant Violation';\n \t throw err;\n \t } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n \t // Old behavior for people using React.PropTypes\n \t var cacheKey = componentName + ':' + propName;\n \t if (\n \t !manualPropTypeCallCache[cacheKey] &&\n \t // Avoid spamming the console because they are often not actionable except for lib authors\n \t manualPropTypeWarningCount < 3\n \t ) {\n \t printWarning(\n \t 'You are manually calling a React.PropTypes validation ' +\n \t 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n \t 'and will throw in the standalone `prop-types` package. ' +\n \t 'You may be seeing this warning due to a third-party PropTypes ' +\n \t 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n \t );\n \t manualPropTypeCallCache[cacheKey] = true;\n \t manualPropTypeWarningCount++;\n \t }\n \t }\n \t }\n \t if (props[propName] == null) {\n \t if (isRequired) {\n \t if (props[propName] === null) {\n \t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n \t }\n \t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n \t }\n \t return null;\n \t } else {\n \t return validate(props, propName, componentName, location, propFullName);\n \t }\n \t }\n\n \t var chainedCheckType = checkType.bind(null, false);\n \t chainedCheckType.isRequired = checkType.bind(null, true);\n\n \t return chainedCheckType;\n \t }\n\n \t function createPrimitiveTypeChecker(expectedType) {\n \t function validate(props, propName, componentName, location, propFullName, secret) {\n \t var propValue = props[propName];\n \t var propType = getPropType(propValue);\n \t if (propType !== expectedType) {\n \t // `propValue` being instance of, say, date/regexp, pass the 'object'\n \t // check, but we can offer a more precise error message here rather than\n \t // 'of type `object`'.\n \t var preciseType = getPreciseType(propValue);\n\n \t return new PropTypeError(\n \t 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n \t {expectedType: expectedType}\n \t );\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createAnyTypeChecker() {\n \t return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n \t }\n\n \t function createArrayOfTypeChecker(typeChecker) {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t if (typeof typeChecker !== 'function') {\n \t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n \t }\n \t var propValue = props[propName];\n \t if (!Array.isArray(propValue)) {\n \t var propType = getPropType(propValue);\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n \t }\n \t for (var i = 0; i < propValue.length; i++) {\n \t var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n \t if (error instanceof Error) {\n \t return error;\n \t }\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createElementTypeChecker() {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t var propValue = props[propName];\n \t if (!isValidElement(propValue)) {\n \t var propType = getPropType(propValue);\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createElementTypeTypeChecker() {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t var propValue = props[propName];\n \t if (!ReactIs.isValidElementType(propValue)) {\n \t var propType = getPropType(propValue);\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createInstanceTypeChecker(expectedClass) {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t if (!(props[propName] instanceof expectedClass)) {\n \t var expectedClassName = expectedClass.name || ANONYMOUS;\n \t var actualClassName = getClassName(props[propName]);\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createEnumTypeChecker(expectedValues) {\n \t if (!Array.isArray(expectedValues)) {\n \t if (process.env.NODE_ENV !== 'production') {\n \t if (arguments.length > 1) {\n \t printWarning(\n \t 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n \t 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n \t );\n \t } else {\n \t printWarning('Invalid argument supplied to oneOf, expected an array.');\n \t }\n \t }\n \t return emptyFunctionThatReturnsNull;\n \t }\n\n \t function validate(props, propName, componentName, location, propFullName) {\n \t var propValue = props[propName];\n \t for (var i = 0; i < expectedValues.length; i++) {\n \t if (is(propValue, expectedValues[i])) {\n \t return null;\n \t }\n \t }\n\n \t var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n \t var type = getPreciseType(value);\n \t if (type === 'symbol') {\n \t return String(value);\n \t }\n \t return value;\n \t });\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createObjectOfTypeChecker(typeChecker) {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t if (typeof typeChecker !== 'function') {\n \t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n \t }\n \t var propValue = props[propName];\n \t var propType = getPropType(propValue);\n \t if (propType !== 'object') {\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n \t }\n \t for (var key in propValue) {\n \t if (has(propValue, key)) {\n \t var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n \t if (error instanceof Error) {\n \t return error;\n \t }\n \t }\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createUnionTypeChecker(arrayOfTypeCheckers) {\n \t if (!Array.isArray(arrayOfTypeCheckers)) {\n \t process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n \t return emptyFunctionThatReturnsNull;\n \t }\n\n \t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n \t var checker = arrayOfTypeCheckers[i];\n \t if (typeof checker !== 'function') {\n \t printWarning(\n \t 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n \t 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n \t );\n \t return emptyFunctionThatReturnsNull;\n \t }\n \t }\n\n \t function validate(props, propName, componentName, location, propFullName) {\n \t var expectedTypes = [];\n \t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n \t var checker = arrayOfTypeCheckers[i];\n \t var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n \t if (checkerResult == null) {\n \t return null;\n \t }\n \t if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n \t expectedTypes.push(checkerResult.data.expectedType);\n \t }\n \t }\n \t var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createNodeChecker() {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t if (!isNode(props[propName])) {\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function invalidValidatorError(componentName, location, propFullName, key, type) {\n \t return new PropTypeError(\n \t (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n \t 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n \t );\n \t }\n\n \t function createShapeTypeChecker(shapeTypes) {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t var propValue = props[propName];\n \t var propType = getPropType(propValue);\n \t if (propType !== 'object') {\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n \t }\n \t for (var key in shapeTypes) {\n \t var checker = shapeTypes[key];\n \t if (typeof checker !== 'function') {\n \t return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n \t }\n \t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n \t if (error) {\n \t return error;\n \t }\n \t }\n \t return null;\n \t }\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function createStrictShapeTypeChecker(shapeTypes) {\n \t function validate(props, propName, componentName, location, propFullName) {\n \t var propValue = props[propName];\n \t var propType = getPropType(propValue);\n \t if (propType !== 'object') {\n \t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n \t }\n \t // We need to check all keys in case some are required but missing from props.\n \t var allKeys = assign({}, props[propName], shapeTypes);\n \t for (var key in allKeys) {\n \t var checker = shapeTypes[key];\n \t if (has(shapeTypes, key) && typeof checker !== 'function') {\n \t return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n \t }\n \t if (!checker) {\n \t return new PropTypeError(\n \t 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n \t '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n \t '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n \t );\n \t }\n \t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n \t if (error) {\n \t return error;\n \t }\n \t }\n \t return null;\n \t }\n\n \t return createChainableTypeChecker(validate);\n \t }\n\n \t function isNode(propValue) {\n \t switch (typeof propValue) {\n \t case 'number':\n \t case 'string':\n \t case 'undefined':\n \t return true;\n \t case 'boolean':\n \t return !propValue;\n \t case 'object':\n \t if (Array.isArray(propValue)) {\n \t return propValue.every(isNode);\n \t }\n \t if (propValue === null || isValidElement(propValue)) {\n \t return true;\n \t }\n\n \t var iteratorFn = getIteratorFn(propValue);\n \t if (iteratorFn) {\n \t var iterator = iteratorFn.call(propValue);\n \t var step;\n \t if (iteratorFn !== propValue.entries) {\n \t while (!(step = iterator.next()).done) {\n \t if (!isNode(step.value)) {\n \t return false;\n \t }\n \t }\n \t } else {\n \t // Iterator will provide entry [k,v] tuples rather than values.\n \t while (!(step = iterator.next()).done) {\n \t var entry = step.value;\n \t if (entry) {\n \t if (!isNode(entry[1])) {\n \t return false;\n \t }\n \t }\n \t }\n \t }\n \t } else {\n \t return false;\n \t }\n\n \t return true;\n \t default:\n \t return false;\n \t }\n \t }\n\n \t function isSymbol(propType, propValue) {\n \t // Native Symbol.\n \t if (propType === 'symbol') {\n \t return true;\n \t }\n\n \t // falsy value can't be a Symbol\n \t if (!propValue) {\n \t return false;\n \t }\n\n \t // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n \t if (propValue['@@toStringTag'] === 'Symbol') {\n \t return true;\n \t }\n\n \t // Fallback for non-spec compliant Symbols which are polyfilled.\n \t if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n \t return true;\n \t }\n\n \t return false;\n \t }\n\n \t // Equivalent of `typeof` but with special handling for array and regexp.\n \t function getPropType(propValue) {\n \t var propType = typeof propValue;\n \t if (Array.isArray(propValue)) {\n \t return 'array';\n \t }\n \t if (propValue instanceof RegExp) {\n \t // Old webkits (at least until Android 4.0) return 'function' rather than\n \t // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n \t // passes PropTypes.object.\n \t return 'object';\n \t }\n \t if (isSymbol(propType, propValue)) {\n \t return 'symbol';\n \t }\n \t return propType;\n \t }\n\n \t // This handles more types than `getPropType`. Only used for error messages.\n \t // See `createPrimitiveTypeChecker`.\n \t function getPreciseType(propValue) {\n \t if (typeof propValue === 'undefined' || propValue === null) {\n \t return '' + propValue;\n \t }\n \t var propType = getPropType(propValue);\n \t if (propType === 'object') {\n \t if (propValue instanceof Date) {\n \t return 'date';\n \t } else if (propValue instanceof RegExp) {\n \t return 'regexp';\n \t }\n \t }\n \t return propType;\n \t }\n\n \t // Returns a string that is postfixed to a warning about an invalid type.\n \t // For example, \"undefined\" or \"of type array\"\n \t function getPostfixForTypeWarning(value) {\n \t var type = getPreciseType(value);\n \t switch (type) {\n \t case 'array':\n \t case 'object':\n \t return 'an ' + type;\n \t case 'boolean':\n \t case 'date':\n \t case 'regexp':\n \t return 'a ' + type;\n \t default:\n \t return type;\n \t }\n \t }\n\n \t // Returns class name of the object, if any.\n \t function getClassName(propValue) {\n \t if (!propValue.constructor || !propValue.constructor.name) {\n \t return ANONYMOUS;\n \t }\n \t return propValue.constructor.name;\n \t }\n\n \t ReactPropTypes.checkPropTypes = checkPropTypes;\n \t ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n \t ReactPropTypes.PropTypes = ReactPropTypes;\n\n \t return ReactPropTypes;\n \t};\n \treturn factoryWithTypeCheckers;\n }\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 */\n\n var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims () {\n \tif (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n \thasRequiredFactoryWithThrowingShims = 1;\n\n \tvar ReactPropTypesSecret = requireReactPropTypesSecret();\n\n \tfunction emptyFunction() {}\n \tfunction emptyFunctionWithReset() {}\n \temptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n \tfactoryWithThrowingShims = function() {\n \t function shim(props, propName, componentName, location, propFullName, secret) {\n \t if (secret === ReactPropTypesSecret) {\n \t // It is still safe when called from React.\n \t return;\n \t }\n \t var err = new Error(\n \t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n \t 'Use PropTypes.checkPropTypes() to call them. ' +\n \t 'Read more at http://fb.me/use-check-prop-types'\n \t );\n \t err.name = 'Invariant Violation';\n \t throw err;\n \t }\t shim.isRequired = shim;\n \t function getShim() {\n \t return shim;\n \t }\t // Important!\n \t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n \t var ReactPropTypes = {\n \t array: shim,\n \t bigint: shim,\n \t bool: shim,\n \t func: shim,\n \t number: shim,\n \t object: shim,\n \t string: shim,\n \t symbol: shim,\n\n \t any: shim,\n \t arrayOf: getShim,\n \t element: shim,\n \t elementType: shim,\n \t instanceOf: getShim,\n \t node: shim,\n \t objectOf: getShim,\n \t oneOf: getShim,\n \t oneOfType: getShim,\n \t shape: getShim,\n \t exact: getShim,\n\n \t checkPropTypes: emptyFunctionWithReset,\n \t resetWarningCache: emptyFunction\n \t };\n\n \t ReactPropTypes.PropTypes = ReactPropTypes;\n\n \t return ReactPropTypes;\n \t};\n \treturn factoryWithThrowingShims;\n }\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 */\n\n if (process.env.NODE_ENV !== 'production') {\n var ReactIs = requireReactIs();\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n propTypes.exports = requireFactoryWithTypeCheckers()(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 propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n /* eslint-disable react-hooks/exhaustive-deps */\n\n /**\n * useEventListener\n * Hook for handling EventListeners\n * @return {object} width, height\n */\n\n function useEventListener(eventName, handler, element = window) {\n // Create a ref that stores handler\n const savedHandler = React.useRef(); // Update ref.current value if handler changes.\n\n React.useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n React.useEffect(() => {\n // Make sure element supports addEventListener\n const isSupported = element && element.addEventListener;\n if (!isSupported) return; // Create event listener that calls handler function stored in ref\n\n const eventListener = event => savedHandler.current(event); // Add event listener\n\n\n element.addEventListener(eventName, eventListener); // Remove event listener on cleanup\n\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element] // Re-run if eventName or element changes\n );\n }\n\n const IsDevice = (() => {\n if (typeof navigator == 'undefined') return;\n let ua = navigator.userAgent;\n return {\n info: ua,\n\n Android() {\n return ua.match(/Android/i);\n },\n\n BlackBerry() {\n return ua.match(/BlackBerry/i);\n },\n\n IEMobile() {\n return ua.match(/IEMobile/i);\n },\n\n iOS() {\n return ua.match(/iPhone|iPad|iPod/i);\n },\n\n iPad() {\n return ua.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2;\n },\n\n OperaMini() {\n return ua.match(/Opera Mini/i);\n },\n\n /**\n * Any Device\n */\n any() {\n return IsDevice.Android() || IsDevice.BlackBerry() || IsDevice.iOS() || IsDevice.iPad() || IsDevice.OperaMini() || IsDevice.IEMobile();\n }\n\n };\n })(); // Export\n\n /**\n * Cursor Core\n * Replaces the native cursor with a custom animated cursor, consisting\n * of an inner and outer dot that scale inversely based on hover or click.\n *\n * @author Stephen Scaff (github.com/stephenscaff)\n *\n * @param {string} color - rgb color value\n * @param {number} outerAlpha - level of alpha transparency for color\n * @param {number} innerSize - inner cursor size in px\n * @param {number} innerScale - inner cursor scale amount\n * @param {number} outerSize - outer cursor size in px\n * @param {number} outerScale - outer cursor scale amount\n * @param {object} outerStyle - style object for outer cursor\n * @param {object} innerStyle - style object for inner cursor\n * @param {array} clickables - array of clickable selectors\n *\n */\n\n function CursorCore({\n outerStyle,\n innerStyle,\n color = '220, 90, 90',\n outerAlpha = 0.3,\n innerSize = 8,\n outerSize = 8,\n outerScale = 6,\n innerScale = 0.6,\n trailingSpeed = 8,\n clickables = ['a', 'input[type=\"text\"]', 'input[type=\"email\"]', 'input[type=\"number\"]', 'input[type=\"submit\"]', 'input[type=\"image\"]', 'label[for]', 'select', 'textarea', 'button', '.link']\n }) {\n const cursorOuterRef = React.useRef();\n const cursorInnerRef = React.useRef();\n const requestRef = React.useRef();\n const previousTimeRef = React.useRef();\n const [coords, setCoords] = React.useState({\n x: 0,\n y: 0\n });\n const [isVisible, setIsVisible] = React.useState(false);\n const [isActive, setIsActive] = React.useState(false);\n const [isActiveClickable, setIsActiveClickable] = React.useState(false);\n let endX = React.useRef(0);\n let endY = React.useRef(0);\n /**\n * Primary Mouse move event\n * @param {number} clientX - MouseEvent.clientx\n * @param {number} clientY - MouseEvent.clienty\n */\n\n const onMouseMove = React.useCallback(({\n clientX,\n clientY\n }) => {\n setCoords({\n x: clientX,\n y: clientY\n });\n cursorInnerRef.current.style.top = `${clientY}px`;\n cursorInnerRef.current.style.left = `${clientX}px`;\n endX.current = clientX;\n endY.current = clientY;\n }, []); // Outer Cursor Animation Delay\n\n const animateOuterCursor = React.useCallback(time => {\n if (previousTimeRef.current !== undefined) {\n coords.x += (endX.current - coords.x) / trailingSpeed;\n coords.y += (endY.current - coords.y) / trailingSpeed;\n cursorOuterRef.current.style.top = `${coords.y}px`;\n cursorOuterRef.current.style.left = `${coords.x}px`;\n }\n\n previousTimeRef.current = time;\n requestRef.current = requestAnimationFrame(animateOuterCursor);\n }, [requestRef] // eslint-disable-line\n ); // RAF for animateOuterCursor\n\n React.useEffect(() => {\n requestRef.current = requestAnimationFrame(animateOuterCursor);\n return () => cancelAnimationFrame(requestRef.current);\n }, [animateOuterCursor]); // Mouse Events State updates\n\n const onMouseDown = React.useCallback(() => setIsActive(true), []);\n const onMouseUp = React.useCallback(() => setIsActive(false), []);\n const onMouseEnterViewport = React.useCallback(() => setIsVisible(true), []);\n const onMouseLeaveViewport = React.useCallback(() => setIsVisible(false), []);\n useEventListener('mousemove', onMouseMove);\n useEventListener('mousedown', onMouseDown);\n useEventListener('mouseup', onMouseUp);\n useEventListener('mouseover', onMouseEnterViewport);\n useEventListener('mouseout', onMouseLeaveViewport); // Cursors Hover/Active State\n\n React.useEffect(() => {\n if (isActive) {\n cursorInnerRef.current.style.transform = `translate(-50%, -50%) scale(${innerScale})`;\n cursorOuterRef.current.style.transform = `translate(-50%, -50%) scale(${outerScale})`;\n } else {\n cursorInnerRef.current.style.transform = 'translate(-50%, -50%) scale(1)';\n cursorOuterRef.current.style.transform = 'translate(-50%, -50%) scale(1)';\n }\n }, [innerScale, outerScale, isActive]); // Cursors Click States\n\n React.useEffect(() => {\n if (isActiveClickable) {\n cursorInnerRef.current.style.transform = `translate(-50%, -50%) scale(${innerScale * 1.2})`;\n cursorOuterRef.current.style.transform = `translate(-50%, -50%) scale(${outerScale * 1.4})`;\n }\n }, [innerScale, outerScale, isActiveClickable]); // Cursor Visibility State\n\n React.useEffect(() => {\n if (isVisible) {\n cursorInnerRef.current.style.opacity = 1;\n cursorOuterRef.current.style.opacity = 1;\n } else {\n cursorInnerRef.current.style.opacity = 0;\n cursorOuterRef.current.style.opacity = 0;\n }\n }, [isVisible]);\n React.useEffect(() => {\n const clickableEls = document.querySelectorAll(clickables.join(','));\n clickableEls.forEach(el => {\n el.style.cursor = 'none';\n el.addEventListener('mouseover', () => {\n setIsActive(true);\n });\n el.addEventListener('click', () => {\n setIsActive(true);\n setIsActiveClickable(false);\n });\n el.addEventListener('mousedown', () => {\n setIsActiveClickable(true);\n });\n el.addEventListener('mouseup', () => {\n setIsActive(true);\n });\n el.addEventListener('mouseout', () => {\n setIsActive(false);\n setIsActiveClickable(false);\n });\n });\n return () => {\n clickableEls.forEach(el => {\n el.removeEventListener('mouseover', () => {\n setIsActive(true);\n });\n el.removeEventListener('click', () => {\n setIsActive(true);\n setIsActiveClickable(false);\n });\n el.removeEventListener('mousedown', () => {\n setIsActiveClickable(true);\n });\n el.removeEventListener('mouseup', () => {\n setIsActive(true);\n });\n el.removeEventListener('mouseout', () => {\n setIsActive(false);\n setIsActiveClickable(false);\n });\n });\n };\n }, [isActive, clickables]); // Cursor Styles\n\n const styles = {\n cursorInner: {\n zIndex: 999,\n display: 'block',\n position: 'fixed',\n borderRadius: '50%',\n width: innerSize,\n height: innerSize,\n pointerEvents: 'none',\n backgroundColor: `rgba(${color}, 1)`,\n ...(innerStyle && innerStyle),\n transition: 'opacity 0.15s ease-in-out, transform 0.25s ease-in-out'\n },\n cursorOuter: {\n zIndex: 999,\n display: 'block',\n position: 'fixed',\n borderRadius: '50%',\n pointerEvents: 'none',\n width: outerSize,\n height: outerSize,\n backgroundColor: `rgba(${color}, ${outerAlpha})`,\n transition: 'opacity 0.15s ease-in-out, transform 0.15s ease-in-out',\n willChange: 'transform',\n ...(outerStyle && outerStyle)\n }\n }; // Hide / Show global cursor\n\n document.body.style.cursor = 'none';\n return /*#__PURE__*/React__default[\"default\"].createElement(React__default[\"default\"].Fragment, null, /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n ref: cursorOuterRef,\n style: styles.cursorOuter\n }), /*#__PURE__*/React__default[\"default\"].createElement(\"div\", {\n ref: cursorInnerRef,\n style: styles.cursorInner\n }));\n }\n /**\n * AnimatedCursor\n * Calls and passes props to CursorCore if not a touch/mobile device.\n */\n\n\n function AnimatedCursor({\n outerStyle,\n innerStyle,\n color,\n outerAlpha,\n innerSize,\n innerScale,\n outerSize,\n outerScale,\n trailingSpeed,\n clickables\n }) {\n if (typeof navigator !== 'undefined' && IsDevice.any()) {\n return /*#__PURE__*/React__default[\"default\"].createElement(React__default[\"default\"].Fragment, null);\n }\n\n return /*#__PURE__*/React__default[\"default\"].createElement(CursorCore, {\n outerStyle: outerStyle,\n innerStyle: innerStyle,\n color: color,\n outerAlpha: outerAlpha,\n innerSize: innerSize,\n innerScale: innerScale,\n outerSize: outerSize,\n outerScale: outerScale,\n trailingSpeed: trailingSpeed,\n clickables: clickables\n });\n }\n\n AnimatedCursor.propTypes = {\n color: propTypes.exports.string,\n outerAlpha: propTypes.exports.number,\n innerSize: propTypes.exports.number,\n outerSize: propTypes.exports.number,\n outerScale: propTypes.exports.number,\n innerScale: propTypes.exports.number,\n outerStyle: propTypes.exports.object,\n innerStyle: propTypes.exports.object,\n trailingSpeed: propTypes.exports.number,\n clickables: propTypes.exports.array\n };\n\n return AnimatedCursor;\n\n}));\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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; }\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; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.selectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n var value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","import React from 'react'; // CONTEXT\n\nfunction createValue() {\n var _isReset = false;\n return {\n clearReset: function clearReset() {\n _isReset = false;\n },\n reset: function reset() {\n _isReset = true;\n },\n isReset: function isReset() {\n return _isReset;\n }\n };\n}\n\nvar QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nexport var useQueryErrorResetBoundary = function useQueryErrorResetBoundary() {\n return React.useContext(QueryErrorResetBoundaryContext);\n}; // COMPONENT\n\nexport var QueryErrorResetBoundary = function QueryErrorResetBoundary(_ref) {\n var children = _ref.children;\n var value = React.useMemo(function () {\n return createValue();\n }, []);\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};","import { QueryObserver } from '../core';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}","import React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils';\nexport function useBaseQuery(options, Observer) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var queryClient = useQueryClient();\n var errorResetBoundary = useQueryErrorResetBoundary();\n var defaultedOptions = queryClient.defaultQueryObserverOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions.optimisticResults = true; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n } // Set cache time to 1 if the option has been set to 0\n // when using suspense to prevent infinite loop of fetches\n\n\n if (defaultedOptions.cacheTime === 0) {\n defaultedOptions.cacheTime = 1;\n }\n }\n\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n\n var _React$useState2 = React.useState(function () {\n return new Observer(queryClient, defaultedOptions);\n }),\n observer = _React$useState2[0];\n\n var result = observer.getOptimisticResult(defaultedOptions);\n React.useEffect(function () {\n mountedRef.current = true;\n errorResetBoundary.clearReset();\n var unsubscribe = observer.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n })); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, [errorResetBoundary, observer]);\n React.useEffect(function () {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (defaultedOptions.suspense && result.isLoading) {\n throw observer.fetchOptimistic(defaultedOptions).then(function (_ref) {\n var data = _ref.data;\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n }).catch(function (error) {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n });\n } // Handle error boundary\n\n\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.suspense, defaultedOptions.useErrorBoundary, [result.error, observer.getCurrentQuery()])) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n if (defaultedOptions.notifyOnChangeProps === 'tracked') {\n result = observer.trackResult(result, defaultedOptions);\n }\n\n return result;\n}","export function shouldThrowError(suspense, _useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary.apply(void 0, params);\n } // Allow useErrorBoundary to override suspense's throwing behavior\n\n\n if (typeof _useErrorBoundary === 'boolean') return _useErrorBoundary; // If suspense is enabled default to throwing errors\n\n return !!suspense;\n}","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type {\n NavigateOptions,\n RelativeRoutingType,\n RouteObject,\n To,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n unstable_useBlocker as useBlocker,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_detectErrorBoundary as detectErrorBoundary,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HydrationState,\n Router as RemixRouter,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n joinPaths,\n stripBasename,\n ErrorResponse,\n UNSAFE_invariant as invariant,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n};\nexport { createSearchParams };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n unstable_Blocker,\n unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n detectErrorBoundary,\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n hydrationData?: HydrationState;\n window?: Window;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n detectErrorBoundary,\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponse(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n}\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n ...rest\n },\n ref\n ) {\n let { basename } = React.useContext(NavigationContext);\n\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n\n // Only check for external origins client-side\n if (isBrowser) {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\")\n ? new URL(currentUrl.protocol + to)\n : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n }\n }\n\n // Rendered into <a href> for relative URLs\n let href = useHref(to, { relative });\n\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={absoluteHref || href}\n onClick={isExternal || reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean; isPending: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?:\n | string\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: {\n isActive: boolean;\n isPending: boolean;\n }) => React.CSSProperties | undefined);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator } = React.useContext(NavigationContext);\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive, isPending });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\"\n ? styleProp({ isActive, isPending })\n : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\"\n ? children({ isActive, isPending })\n : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\nexport interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: FormMethod;\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * Prevent the scroll position from resetting to the top of the viewport on\n * completion of the navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n return <FormImpl {...props} ref={ref} />;\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\ninterface FormImplProps extends FormProps {\n fetcherKey?: string;\n routeId?: string;\n}\n\nconst FormImpl = React.forwardRef<HTMLFormElement, FormImplProps>(\n (\n {\n reloadDocument,\n replace,\n method = defaultMethod,\n action,\n onSubmit,\n fetcherKey,\n routeId,\n relative,\n preventScrollReset,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmitImpl(fetcherKey, routeId);\n let formMethod: FormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action, { relative });\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as FormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n method: submitMethod,\n replace,\n relative,\n preventScrollReset,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n FormImpl.displayName = \"FormImpl\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmitImpl = \"useSubmitImpl\",\n UseFetcher = \"useFetcher\",\n}\n\nenum DataRouterStateHook {\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, { replace, state, preventScrollReset, relative });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\ntype SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\ntype SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n return useSubmitImpl();\n}\n\nfunction useSubmitImpl(fetcherKey?: string, routeId?: string): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmitImpl);\n let defaultAction = useFormAction();\n\n return React.useCallback(\n (target, options = {}) => {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n\n let { method, encType, formData, url } = getFormSubmissionInfo(\n target,\n defaultAction,\n options\n );\n\n let href = url.pathname + url.search;\n let opts = {\n replace: options.replace,\n preventScrollReset: options.preventScrollReset,\n formData,\n formMethod: method as FormMethod,\n formEncType: encType as FormEncType,\n };\n if (fetcherKey) {\n invariant(routeId != null, \"No routeId available for useFetcher()\");\n router.fetch(fetcherKey, routeId, href, opts);\n } else {\n router.navigate(href, opts);\n }\n },\n [defaultAction, router, fetcherKey, routeId]\n );\n}\n\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params and the hash of the resolved\n // URL. This is the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to these directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n // or hash\n path.search = location.search;\n path.hash = location.hash;\n\n // When grabbing search params from the URL, remove the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n if (match.route.index) {\n let params = new URLSearchParams(path.search);\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nfunction createFetcherForm(fetcherKey: string, routeId: string) {\n let FetcherForm = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n return (\n <FormImpl\n {...props}\n ref={ref}\n fetcherKey={fetcherKey}\n routeId={routeId}\n />\n );\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n}\n\nlet fetcherId = 0;\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: ReturnType<typeof createFetcherForm>;\n submit: (\n target: SubmitTarget,\n // Fetchers cannot replace/preventScrollReset because they are not\n // navigation events\n options?: Omit<SubmitOptions, \"replace\" | \"preventScrollReset\">\n ) => void;\n load: (href: string) => void;\n};\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>(): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n let [fetcherKey] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => {\n invariant(routeId, `No routeId available for fetcher.Form()`);\n return createFetcherForm(fetcherKey, routeId);\n });\n let [load] = React.useState(() => (href: string) => {\n invariant(router, \"No router available for fetcher.load()\");\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href);\n });\n let submit = useSubmitImpl(fetcherKey, routeId);\n\n let fetcher = router.getFetcher<TData>(fetcherKey);\n\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form,\n submit,\n load,\n ...fetcher,\n }),\n [fetcher, Form, submit, load]\n );\n\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => {\n if (!router) {\n console.warn(`No fetcher available to clean up from useFetcher()`);\n return;\n }\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): Fetcher[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return [...state.fetchers.values()];\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on pagehide\n usePageHide(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKey\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(location.hash.slice(1));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n callback: (event: PageTransitionEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt({ when, message }: { when: boolean; message: string }) {\n let blocker = useBlocker(when);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n//#endregion\n","import type { FormEncType, FormMethod } from \"@remix-run/router\";\nimport type { RelativeRoutingType } from \"react-router\";\n\nexport const defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n for (let key of defaultSearchParams.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n }\n\n return searchParams;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: FormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n *\n * Note: It is assumed the path is already resolved. If you need to resolve a\n * relative path, use `useFormAction`.\n */\n action?: string;\n\n /**\n * The action URL used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n}\n\nexport function getFormSubmissionInfo(\n target:\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | { [name: string]: string }\n | null,\n defaultAction: string,\n options: SubmitOptions\n): {\n url: URL;\n method: string;\n encType: string;\n formData: FormData;\n} {\n let method: string;\n let action: string;\n let encType: string;\n let formData: FormData;\n\n if (isFormElement(target)) {\n let submissionTrigger: HTMLButtonElement | HTMLInputElement = (\n options as any\n ).submissionTrigger;\n\n method = options.method || target.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"action\") || defaultAction;\n encType =\n options.encType || target.getAttribute(\"enctype\") || defaultEncType;\n\n formData = new FormData(target);\n\n if (submissionTrigger && submissionTrigger.name) {\n formData.append(submissionTrigger.name, submissionTrigger.value);\n }\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n method =\n options.method ||\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n action =\n options.action ||\n target.getAttribute(\"formaction\") ||\n form.getAttribute(\"action\") ||\n defaultAction;\n encType =\n options.encType ||\n target.getAttribute(\"formenctype\") ||\n form.getAttribute(\"enctype\") ||\n defaultEncType;\n\n formData = new FormData(form);\n\n // Include name + value from a <button>, appending in case the button name\n // matches an existing input name\n if (target.name) {\n formData.append(target.name, target.value);\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = options.method || defaultMethod;\n action = options.action || defaultAction;\n encType = options.encType || defaultEncType;\n\n if (target instanceof FormData) {\n formData = target;\n } else {\n formData = new FormData();\n\n if (target instanceof URLSearchParams) {\n for (let [name, value] of target) {\n formData.append(name, value);\n }\n } else if (target != null) {\n for (let name of Object.keys(target)) {\n formData.append(name, target[name]);\n }\n }\n }\n }\n\n let { protocol, host } = window.location;\n let url = new URL(action, `${protocol}//${host}`);\n\n return { url, method: method.toLowerCase(), encType, formData };\n}\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\nimport * as React from \"react\";\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction isPolyfill(x: any, y: any) {\n return (\n (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n );\n}\n\nconst is: (x: any, y: any) => boolean =\n typeof Object.is === \"function\" ? Object.is : isPolyfill;\n\n// Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\nconst { useState, useEffect, useLayoutEffect, useDebugValue } = React;\n\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false;\n\n// Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\nexport function useSyncExternalStore<T>(\n subscribe: (fn: () => void) => () => void,\n getSnapshot: () => T,\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n getServerSnapshot?: () => T\n): T {\n if (__DEV__) {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that \" +\n \"does not support useSyncExternalStore. The \" +\n \"use-sync-external-store shim will not work correctly. Upgrade \" +\n \"to a newer pre-release.\"\n );\n }\n }\n }\n\n // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n const value = getSnapshot();\n if (__DEV__) {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n if (!is(value, cachedValue)) {\n console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n );\n didWarnUncachedGetSnapshot = true;\n }\n }\n }\n\n // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n const [{ inst }, forceUpdate] = useState({ inst: { value, getSnapshot } });\n\n // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n\n // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe, value, getSnapshot]);\n\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({ inst });\n }\n };\n // Subscribe to the store and return a clean-up function.\n return subscribe(handleStoreChange);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst: any) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n","/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\n\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 * @flow\n */\n\nimport * as React from \"react\";\n\nimport { useSyncExternalStore as client } from \"./useSyncExternalStoreShimClient\";\nimport { useSyncExternalStore as server } from \"./useSyncExternalStoreShimServer\";\n\nconst canUseDOM: boolean = !!(\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n);\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? server : client;\n\nexport const useSyncExternalStore =\n \"useSyncExternalStore\" in React\n ? ((module) => module.useSyncExternalStore)(React)\n : shim;\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<IndexRouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n Router as RemixRouter,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterStateContext || undefined\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own \n <code style={codeStyles}>ErrorBoundary</code> prop on \n <code style={codeStyles}><Route></code>\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for the current errors: ${errors}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n if (match.route.ErrorBoundary) {\n errorElement = <match.route.ErrorBoundary />;\n } else if (match.route.errorElement) {\n errorElement = match.route.errorElement;\n } else {\n errorElement = <DefaultErrorComponent />;\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode = outlet;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{ outlet, matches }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback<BlockerFunction>(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n RouterState,\n To,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport { useSyncExternalStore as useSyncExternalStoreShim } from \"./use-sync-external-store-shim\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n RelativeRoutingType,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n let getState = React.useCallback(() => router.state, [router]);\n\n // Sync router state to our component state to force re-renders\n let state: RouterState = useSyncExternalStoreShim(\n router.subscribe,\n getState,\n // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n getState\n );\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={router.basename}\n location={router.state.location}\n navigationType={router.state.historyAction}\n navigator={navigator}\n >\n {router.state.initialized ? <Routes /> : fallbackElement}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let dataRouterState = React.useContext(DataRouterStateContext);\n let navigate = useNavigate();\n\n React.useEffect(() => {\n // Avoid kicking off multiple navigations if we're in the middle of a\n // data-router navigation, since components get re-rendered when we enter\n // a submitting/loading state\n if (dataRouterState && dataRouterState.navigation.state !== \"idle\") {\n return;\n }\n navigate(to, { replace, state, relative });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n let dataRouterContext = React.useContext(DataRouterContext);\n // When in a DataRouterContext _without_ children, we use the router routes\n // directly. If we have children, then we're in a descendant tree and we\n // need to use child routes.\n let routes =\n dataRouterContext && !children\n ? (dataRouterContext.router.routes as DataRouteObject[])\n : createRoutesFromChildren(children);\n return useRoutes(routes, location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, parentPath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let treePath = [...parentPath, index];\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\nconst stripIndent = require('strip-indent');\nconst indentString = require('indent-string');\n\nmodule.exports = (string, count = 0, options) => indentString(stripIndent(string), count, options);\n","'use strict';\n\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","/**\n * @license React\n * scheduler.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';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar SLOT = require('internal-slot');\n\nvar $SyntaxError = SyntaxError;\nvar $StopIteration = typeof StopIteration === 'object' ? StopIteration : null;\n\nmodule.exports = function getStopIterationIterator(origIterator) {\n\tif (!$StopIteration) {\n\t\tthrow new $SyntaxError('this environment lacks StopIteration');\n\t}\n\n\tSLOT.set(origIterator, '[[Done]]', false);\n\n\tvar siIterator = {\n\t\tnext: function next() {\n\t\t\tvar iterator = SLOT.get(this, '[[Iterator]]');\n\t\t\tvar done = SLOT.get(iterator, '[[Done]]');\n\t\t\ttry {\n\t\t\t\treturn {\n\t\t\t\t\tdone: done,\n\t\t\t\t\tvalue: done ? void undefined : iterator.next()\n\t\t\t\t};\n\t\t\t} catch (e) {\n\t\t\t\tSLOT.set(iterator, '[[Done]]', true);\n\t\t\t\tif (e !== $StopIteration) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: true,\n\t\t\t\t\tvalue: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\n\n\tSLOT.set(siIterator, '[[Iterator]]', origIterator);\n\n\treturn siIterator;\n};\n","'use strict';\nconst minIndent = require('min-indent');\n\nmodule.exports = string => {\n\tconst indent = minIndent(string);\n\n\tif (indent === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = new RegExp(`^[ \\\\t]{${indent}}`, 'gm');\n\n\treturn string.replace(regex, '');\n};\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","'use strict';\n\nvar isString = require('is-string');\nvar isNumber = require('is-number-object');\nvar isBoolean = require('is-boolean-object');\nvar isSymbol = require('is-symbol');\nvar isBigInt = require('is-bigint');\n\n// eslint-disable-next-line consistent-return\nmodule.exports = function whichBoxedPrimitive(value) {\n\t// eslint-disable-next-line eqeqeq\n\tif (value == null || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\treturn null;\n\t}\n\tif (isString(value)) {\n\t\treturn 'String';\n\t}\n\tif (isNumber(value)) {\n\t\treturn 'Number';\n\t}\n\tif (isBoolean(value)) {\n\t\treturn 'Boolean';\n\t}\n\tif (isSymbol(value)) {\n\t\treturn 'Symbol';\n\t}\n\tif (isBigInt(value)) {\n\t\treturn 'BigInt';\n\t}\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {\"accordion\":\"Accordion_accordion__cOkdx\",\"accordion--expanded\":\"Accordion_accordion--expanded__YXxi7\",\"accordion__top\":\"Accordion_accordion__top__jMcR3\",\"accordion__bottom\":\"Accordion_accordion__bottom__8POCM\",\"accordion__icon\":\"Accordion_accordion__icon__kvI1v\",\"accordion__title\":\"Accordion_accordion__title__K7YfW\",\"accordion__text\":\"Accordion_accordion__text__kdODo\"};","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"Button_button__85C4R\",\"button__text\":\"Button_button__text__SkwgW\",\"button__icon\":\"Button_button__icon__GVHtk\",\"footer\":\"Button_footer__qajOJ\"};","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"Style1_card__ssqjM\",\"card__wrapper\":\"Style1_card__wrapper__M2Jtj\",\"card__middle\":\"Style1_card__middle__UFlvW\",\"card__bottom\":\"Style1_card__bottom__ZqYxy\",\"card__image\":\"Style1_card__image__pbGwW\",\"card__title\":\"Style1_card__title__ZePga\",\"card__subTitle\":\"Style1_card__subTitle__10YaV\",\"card__attributes\":\"Style1_card__attributes__TqSI5\",\"card__attributes__item\":\"Style1_card__attributes__item__zoilQ\",\"card__attributes__name\":\"Style1_card__attributes__name__bvkyW\",\"card__attributes__value\":\"Style1_card__attributes__value__Lj9ZQ\",\"card__lastUpdated\":\"Style1_card__lastUpdated__cTQ72\"};","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"Footer_footer__V8Lu+\",\"footer__wrapper\":\"Footer_footer__wrapper__1rU4p\",\"footer__mainArea\":\"Footer_footer__mainArea__ukFek\",\"footer__left\":\"Footer_footer__left__Ff4QJ\",\"footer__right\":\"Footer_footer__right__StggX\",\"footer__logo\":\"Footer_footer__logo__vUYWf\",\"footer__address\":\"Footer_footer__address__fuSxw\",\"mobileHidden\":\"Footer_mobileHidden__7-sQS\",\"desktopHidden\":\"Footer_desktopHidden__9aORO\",\"footer__email\":\"Footer_footer__email__xbywC\",\"footer__socialLinks\":\"Footer_footer__socialLinks__0yc6x\",\"footer__socialLinks__wrapper\":\"Footer_footer__socialLinks__wrapper__u8el3\",\"footer-title\":\"Footer_footer-title__1BSve\",\"footer__divider\":\"Footer_footer__divider__-lIWT\",\"footer__bottom\":\"Footer_footer__bottom__br5s2\",\"footer__nav\":\"Footer_footer__nav__ARFHw\",\"footer__nav__title\":\"Footer_footer__nav__title__AizNw\",\"footer__nav__list\":\"Footer_footer__nav__list__ersme\",\"empty\":\"Footer_empty__g4KmQ\",\"footer__nav__item\":\"Footer_footer__nav__item__BfdFK\",\"active\":\"Footer_active__YaKLN\",\"footer__nav__link\":\"Footer_footer__nav__link__p0zFf\",\"footer__nav__icon\":\"Footer_footer__nav__icon__gaaft\",\"footer__cta\":\"Footer_footer__cta__i0qre\",\"footer-item\":\"Footer_footer-item__jSJZK\"};","// extracted by mini-css-extract-plugin\nexport default {\"ReactFlagsSelect-module_selectBtn__19wW7\":\"Header_ReactFlagsSelect-module_selectBtn__19wW7__qnwP9\",\"ReactFlagsSelect-module_selectBtn\":\"Header_ReactFlagsSelect-module_selectBtn__QELRx\",\"custom-flags-select\":\"Header_custom-flags-select__-fgfR\",\"header\":\"Header_header__MY7fH\",\"dark\":\"Header_dark__8J9Ha\",\"header__wrapper\":\"Header_header__wrapper__pXW7m\",\"logo-section\":\"Header_logo-section__gTU1T\",\"nav-section\":\"Header_nav-section__EH0+N\",\"cta-section\":\"Header_cta-section__4-JzQ\",\"header__logo\":\"Header_header__logo__zD-Kz\",\"mobileHidden\":\"Header_mobileHidden__Fc2zv\",\"header__navigation\":\"Header_header__navigation__exGzA\",\"navigationList\":\"Header_navigationList__YcRFz\",\"navigationList__item\":\"Header_navigationList__item__GpC+5\",\"navigationList__item__top\":\"Header_navigationList__item__top__5cEyE\",\"navigationList__item__name\":\"Header_navigationList__item__name__8qT+6\",\"navigationList__item__icon\":\"Header_navigationList__item__icon__fibAC\",\"navigationList__item__icon--rotate\":\"Header_navigationList__item__icon--rotate__UiOqH\",\"navigationList__dropdown\":\"Header_navigationList__dropdown__O6VDT\",\"show\":\"Header_show__Hs45M\",\"hide\":\"Header_hide__UACEW\",\"navigationList__dropdown__wrapper\":\"Header_navigationList__dropdown__wrapper__7pUeO\",\"navigationList__dropdown__list\":\"Header_navigationList__dropdown__list__TkDld\",\"navigationList__dropdown__item\":\"Header_navigationList__dropdown__item__ZQwIm\",\"active\":\"Header_active__A6kHz\",\"navigationList__dropdown__link\":\"Header_navigationList__dropdown__link__juG-b\",\"navigationList__dropdown__icon\":\"Header_navigationList__dropdown__icon__TxWQG\",\"header__cta\":\"Header_header__cta__LE41C\",\"noTransition\":\"Header_noTransition__0jr79\",\"custom-dropdown\":\"Header_custom-dropdown__FNWFM\",\"flag-select__btn\":\"Header_flag-select__btn__yvG+w\",\"language-switcher\":\"Header_language-switcher__M+Zg-\",\"desktop-only\":\"Header_desktop-only__x5r6x\",\"modal\":\"Header_modal__Y6rBj\",\"modal__backdrop\":\"Header_modal__backdrop__BPaqk\",\"modal__container\":\"Header_modal__container__qcduE\",\"modal__video\":\"Header_modal__video__TWJtK\",\"modal__video__wrapper\":\"Header_modal__video__wrapper__QWi92\",\"mobileNavigation\":\"Header_mobileNavigation__rJHoa\",\"mobileNavigation__button\":\"Header_mobileNavigation__button__CnX3p\",\"mobileNavigation__overlay\":\"Header_mobileNavigation__overlay__sD5Di\",\"mobileNavigation__drawer\":\"Header_mobileNavigation__drawer__XKYtU\",\"close\":\"Header_close__3zB9h\",\"open\":\"Header_open__Cl-px\",\"mobileNavigation__top\":\"Header_mobileNavigation__top__aCmXO\",\"mobileNavigation__links\":\"Header_mobileNavigation__links__xivtu\",\"mobileNavigation__links__item\":\"Header_mobileNavigation__links__item__KY+s2\",\"mobileNavigation__links__link\":\"Header_mobileNavigation__links__link__fIK--\",\"mobileNavigation__links__innerList\":\"Header_mobileNavigation__links__innerList__9GMrP\",\"mobileNavigation__links__innerItem\":\"Header_mobileNavigation__links__innerItem__eDyyC\",\"mobileNavigation__links__innerLink\":\"Header_mobileNavigation__links__innerLink__3Lbhw\",\"mobileNavigation__links__wrapper\":\"Header_mobileNavigation__links__wrapper__XO5Fq\",\"mobileNavigation__links__icon\":\"Header_mobileNavigation__links__icon__jJx1v\",\"mobileNavigation__links__icon--rotate\":\"Header_mobileNavigation__links__icon--rotate__SW09w\",\"customFormControlLabel\":\"Header_customFormControlLabel__gyyoU\"};","// extracted by mini-css-extract-plugin\nexport default {\"InfiniteLoopBrandSlider__image\":\"InfiniteLoopBrandSlider_InfiniteLoopBrandSlider__image__t-n7v\",\"InfiniteLoopBrandSlider\":\"InfiniteLoopBrandSlider_InfiniteLoopBrandSlider__qceky\",\"mySwiper\":\"InfiniteLoopBrandSlider_mySwiper__Pgl4d\"};","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"Loader_loader__gPW3M\",\"loader__wrapper\":\"Loader_loader__wrapper__cFpiT\",\"loader__animation\":\"Loader_loader__animation__xAF+r\"};","// extracted by mini-css-extract-plugin\nexport default {\"mediaCardsSlider\":\"MediaCardsSlider_mediaCardsSlider__m3xeO\",\"card\":\"MediaCardsSlider_card__7AVw8\",\"card__wrapper\":\"MediaCardsSlider_card__wrapper__sIxXq\",\"card__logo\":\"MediaCardsSlider_card__logo__TvfqG\",\"card__logo__wrapper\":\"MediaCardsSlider_card__logo__wrapper__VsR19\",\"card__date\":\"MediaCardsSlider_card__date__akpaa\",\"card__title\":\"MediaCardsSlider_card__title__g9lAT\",\"card__image\":\"MediaCardsSlider_card__image__jReg3\"};","// extracted by mini-css-extract-plugin\nexport default {\"scrollToTopButton\":\"ScrollToTopButton_scrollToTopButton__p6V-N\"};","// extracted by mini-css-extract-plugin\nexport default {\"card\":\"TeamCard_card__1cjj+\",\"card__wrapper\":\"TeamCard_card__wrapper__GPLeT\",\"card__avatar\":\"TeamCard_card__avatar__JgGsv\",\"card__name\":\"TeamCard_card__name__dJABG\",\"card__text\":\"TeamCard_card__text__sIh7w\",\"card__linkedin\":\"TeamCard_card__linkedin__QSvpk\"};","// extracted by mini-css-extract-plugin\nexport default {\"layout\":\"Layout_layout__bdcys\",\"layout__wrapper\":\"Layout_layout__wrapper__PebXa\",\"layout__mainContent\":\"Layout_layout__mainContent__NjWEK\",\"layout__mainContent--autoHeight\":\"Layout_layout__mainContent--autoHeight__DF+v9\",\"layout__banner\":\"Layout_layout__banner__PTusj\"};","// extracted by mini-css-extract-plugin\nexport default {\"aboutUs\":\"AboutUs_aboutUs__i07f1\",\"aboutUs__top\":\"AboutUs_aboutUs__top__LHEpI\",\"aboutUs__layout\":\"AboutUs_aboutUs__layout__Sc7-t\",\"aboutUs__cardsWrapper\":\"AboutUs_aboutUs__cardsWrapper__20orV\",\"hide-mobile\":\"AboutUs_hide-mobile__8XPyV\",\"card1\":\"AboutUs_card1__8Ju0Q\",\"card1__top\":\"AboutUs_card1__top__vOggN\",\"card1__bottom\":\"AboutUs_card1__bottom__uVl6M\",\"card1__title\":\"AboutUs_card1__title__kqjQe\",\"card1__seperator\":\"AboutUs_card1__seperator__NfSJO\",\"rotated\":\"AboutUs_rotated__6FpA-\",\"cardItem_1\":\"AboutUs_cardItem_1__JFGEl\",\"cardItem_2\":\"AboutUs_cardItem_2__eBbc+\",\"cardItem_3\":\"AboutUs_cardItem_3__S9mXn\",\"cardItem__figure\":\"AboutUs_cardItem__figure__E6dNo\",\"cardItem__title\":\"AboutUs_cardItem__title__2JNIb\",\"cardItem__subTitle\":\"AboutUs_cardItem__subTitle__owlPr\",\"cardItem__tagLine\":\"AboutUs_cardItem__tagLine__Svwr0\",\"ecoSystem\":\"AboutUs_ecoSystem__ohVVE\",\"ecoSystem__heading\":\"AboutUs_ecoSystem__heading__pAUnk\",\"ecoSystem__cards\":\"AboutUs_ecoSystem__cards__VM4uJ\",\"card2\":\"AboutUs_card2__rJ2F3\",\"card2__absoluteTop\":\"AboutUs_card2__absoluteTop__dchkA\",\"card2__absoluteTop__left\":\"AboutUs_card2__absoluteTop__left__nIEJv\",\"card2__absoluteTop__right\":\"AboutUs_card2__absoluteTop__right__1w7uX\",\"card2__figure\":\"AboutUs_card2__figure__gNwX3\",\"card2__title\":\"AboutUs_card2__title__o0DQE\",\"card2__subTitle\":\"AboutUs_card2__subTitle__8+JrP\",\"card2__gist\":\"AboutUs_card2__gist__Y8IiJ\",\"card2__attributes__heading\":\"AboutUs_card2__attributes__heading__FbvUb\",\"card2__attributes__item\":\"AboutUs_card2__attributes__item__HYFSu\",\"medium\":\"AboutUs_medium__4YyIT\",\"bold\":\"AboutUs_bold__ENMyR\",\"card2__cta\":\"AboutUs_card2__cta__KjTBa\"};","// extracted by mini-css-extract-plugin\nexport default {\"gpAcademy\":\"Academy_gpAcademy__jGTkb\",\"gpAcademy__mission\":\"Academy_gpAcademy__mission__EhHXH\",\"gpAcademy__mission__heading\":\"Academy_gpAcademy__mission__heading__6Z9ri\",\"gpAcademy__mission__text\":\"Academy_gpAcademy__mission__text__1vjwa\",\"heroSection\":\"Academy_heroSection__owhip\",\"heroSection__top\":\"Academy_heroSection__top__biS+1\",\"heroSection__image\":\"Academy_heroSection__image__hMdX+\",\"heroSection__image__wrapper\":\"Academy_heroSection__image__wrapper__sqksg\",\"heroSection__heading\":\"Academy_heroSection__heading__1RKg3\",\"heroSection__text\":\"Academy_heroSection__text__627h3\"};","// extracted by mini-css-extract-plugin\nexport default {\"faq\":\"FAQ_faq__9DylF\",\"faq__top\":\"FAQ_faq__top__8bgHh\",\"faq__layout\":\"FAQ_faq__layout__B6gLS\",\"faq__accordionWrapper\":\"FAQ_faq__accordionWrapper__zg27n\"};","// extracted by mini-css-extract-plugin\nexport default {\"goldmines\":\"GoldMines_goldmines__kyqJ-\",\"goldmines__mountains\":\"GoldMines_goldmines__mountains__T+gH2\",\"heroSection\":\"GoldMines_heroSection__+TEB2\",\"heroSection__top\":\"GoldMines_heroSection__top__pJ79+\",\"heroSection__image\":\"GoldMines_heroSection__image__7fvRp\",\"heroSection__image__wrapper\":\"GoldMines_heroSection__image__wrapper__Z7YAu\",\"heroSection__heading\":\"GoldMines_heroSection__heading__KiAZX\",\"heroSection__text\":\"GoldMines_heroSection__text__0Qid0\"};","// extracted by mini-css-extract-plugin\nexport default {\"mediaAndPress__brandsSlider\":\"Home_mediaAndPress__brandsSlider__e6oHf\",\"mediaAndPress__top\":\"Home_mediaAndPress__top__XktgH\",\"mediaAndPress__bottom\":\"Home_mediaAndPress__bottom__odnCR\",\"heroSection\":\"Home_heroSection__3rGyO\",\"videoSection\":\"Home_videoSection__i7hbA\",\"heroSection__heading\":\"Home_heroSection__heading__ltI49\",\"videoSection__heading\":\"Home_videoSection__heading__1XoD7\",\"heroSection__heading--1\":\"Home_heroSection__heading--1__V679Y\",\"videoSection__heading--1\":\"Home_videoSection__heading--1__ibT6D\",\"heroSection__heading--2\":\"Home_heroSection__heading--2__Ps-pf\",\"videoSection__heading--2\":\"Home_videoSection__heading--2__OuqIK\",\"heroSection__cardsGrid\":\"Home_heroSection__cardsGrid__6t8Y8\",\"videoSection__cardsGrid\":\"Home_videoSection__cardsGrid__ACm5A\",\"heroSection__sectionScroller\":\"Home_heroSection__sectionScroller__WlhOr\",\"videoSection__sectionScroller\":\"Home_videoSection__sectionScroller__CKq+4\",\"heroSection__sectionScroller__icon\":\"Home_heroSection__sectionScroller__icon__G1MdZ\",\"videoSection__sectionScroller__icon\":\"Home_videoSection__sectionScroller__icon__RWYeh\",\"pulse\":\"Home_pulse__mJHkf\",\"pulse-hover\":\"Home_pulse-hover__VKgZ2\",\"videoSection__video\":\"Home_videoSection__video__7B9Fn\",\"videoSection__video__wrapper\":\"Home_videoSection__video__wrapper__VUxu0\"};","// extracted by mini-css-extract-plugin\nexport default {\"mediaAndPress__brandsSlider\":\"MediaAndPress_mediaAndPress__brandsSlider__jWI-k\",\"mediaAndPress__top\":\"MediaAndPress_mediaAndPress__top__6C4Or\",\"mediaAndPress__bottom\":\"MediaAndPress_mediaAndPress__bottom__Tse-m\"};","// extracted by mini-css-extract-plugin\nexport default {\"roadMap\":\"Roadmap_roadMap__3HP8J\",\"roadMap__top\":\"Roadmap_roadMap__top__78r2J\",\"roadMap__layout\":\"Roadmap_roadMap__layout__8lMBs\",\"card\":\"Roadmap_card__jsJrE\",\"card__title\":\"Roadmap_card__title__WaO0Z\",\"horizontalLine\":\"Roadmap_horizontalLine__zHuiz\",\"card__text\":\"Roadmap_card__text__Ov57H\",\"notLast\":\"Roadmap_notLast__oNXmx\",\"active\":\"Roadmap_active__aYDPT\",\"rtl\":\"Roadmap_rtl__PqeoU\"};","// extracted by mini-css-extract-plugin\nexport default {\"stakeTwoWin\":\"Stake2Win_stakeTwoWin__Z8Yz1\",\"heroSection\":\"Stake2Win_heroSection__UA3Ys\",\"heroSection__top\":\"Stake2Win_heroSection__top__YfW+1\",\"heroSection__image\":\"Stake2Win_heroSection__image__HeqHc\",\"heroSection__image__wrapper\":\"Stake2Win_heroSection__image__wrapper__b57IZ\",\"heroSection__heading\":\"Stake2Win_heroSection__heading__SIOoH\",\"heroSection__text\":\"Stake2Win_heroSection__text__fkrD0\"};","// extracted by mini-css-extract-plugin\nexport default {\"team\":\"Team_team__WabnW\",\"team__top\":\"Team_team__top__1e4gR\",\"team__bottom\":\"Team_team__bottom__7f1nZ\",\"team__grid\":\"Team_team__grid__-WUQG\",\"team__grid__left\":\"Team_team__grid__left__II1ny\",\"team__title\":\"Team_team__title__zPL2W\",\"team__linkedin\":\"Team_team__linkedin__zDq9p\",\"team__image\":\"Team_team__image__PYTFt\",\"team__text\":\"Team_team__text__86ZrN\",\"videoPlayer\":\"Team_videoPlayer__+NfmQ\",\"videoPlayer__wrapper\":\"Team_videoPlayer__wrapper__DM+D+\",\"ourTeam\":\"Team_ourTeam__9320O\",\"ourTeam__grid\":\"Team_ourTeam__grid__BpOhh\"};","// extracted by mini-css-extract-plugin\nexport default {\"xenii\":\"Xenii2_xenii__vRba8\",\"xenii__gallery\":\"Xenii2_xenii__gallery__Cm5j+\",\"heroSection__top\":\"Xenii2_heroSection__top__SROQ3\",\"heroSection__bottom\":\"Xenii2_heroSection__bottom__1xDI7\",\"heroSection__image\":\"Xenii2_heroSection__image__OQ1Uf\",\"heroSection__image__wrapper\":\"Xenii2_heroSection__image__wrapper__ZlG-9\",\"heroSection__heading\":\"Xenii2_heroSection__heading__a9opE\",\"heroSection__text\":\"Xenii2_heroSection__text__6deZd\",\"gallery__item\":\"Xenii2_gallery__item__IXi31\"};","var map = {\n\t\"./1.png\": 70028,\n\t\"./10.png\": 93363,\n\t\"./11.png\": 53849,\n\t\"./12.png\": 24148,\n\t\"./13.png\": 587,\n\t\"./14.png\": 95054,\n\t\"./2.png\": 47267,\n\t\"./3.png\": 79178,\n\t\"./4.png\": 73752,\n\t\"./5.png\": 60832,\n\t\"./6.png\": 55096,\n\t\"./7.png\": 91738,\n\t\"./8.png\": 73038,\n\t\"./9.png\": 56713\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__.t(id, 1 | 16);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 44569;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./logo-1.png\": 57726,\n\t\"./logo-2.png\": 92185,\n\t\"./logo-3.png\": 52799,\n\t\"./logo-4.png\": 82533,\n\t\"./logo-5.png\": 33018,\n\t\"./logo-6.png\": 87585,\n\t\"./logo-7.png\": 473,\n\t\"./logo-8.png\": 98967\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 83121;","var map = {\n\t\"./thumbnail-1.png\": 91396,\n\t\"./thumbnail-2.png\": 72557,\n\t\"./thumbnail-3.png\": 13845,\n\t\"./thumbnail-4.png\": 29806,\n\t\"./thumbnail-5.png\": 44769,\n\t\"./thumbnail-6.png\": 11425,\n\t\"./thumbnail-7.png\": 69033,\n\t\"./thumbnail-8.png\": 85695\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 72667;","var map = {\n\t\"./discord.svg\": 32471,\n\t\"./facebook.svg\": 25971,\n\t\"./git.svg\": 80947,\n\t\"./instagram.svg\": 25419,\n\t\"./linkedin.svg\": 133,\n\t\"./medium.svg\": 63598,\n\t\"./telegram.svg\": 39902,\n\t\"./twitter.svg\": 18122,\n\t\"./youtube.svg\": 65651\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 85951;","var map = {\n\t\"./\": 77569,\n\t\"./App\": 42135,\n\t\"./App.jsx\": 42135,\n\t\"./App.scss\": 5636,\n\t\"./Hooks/scrollToTop\": 8985,\n\t\"./Hooks/scrollToTop.js\": 8985,\n\t\"./ImageRotationContext\": 59778,\n\t\"./ImageRotationContext.jsx\": 59778,\n\t\"./assets/images/about-us/arrow-right.svg\": 51925,\n\t\"./assets/images/about-us/blockchain.svg\": 56617,\n\t\"./assets/images/about-us/coin-gecko.svg\": 27879,\n\t\"./assets/images/about-us/coin-market-cap.svg\": 35076,\n\t\"./assets/images/about-us/etherium.svg\": 75783,\n\t\"./assets/images/about-us/goldbars.svg\": 92099,\n\t\"./assets/images/about-us/gpo-large.svg\": 28374,\n\t\"./assets/images/about-us/gpx-large.svg\": 68605,\n\t\"./assets/images/about-us/graph.svg\": 55545,\n\t\"./assets/images/about-us/handshake.svg\": 56493,\n\t\"./assets/images/about-us/list-gpx.svg\": 8234,\n\t\"./assets/images/about-us/mint-gpo.svg\": 98996,\n\t\"./assets/images/about-us/mint-gpx.svg\": 21318,\n\t\"./assets/images/about-us/pawn.svg\": 28926,\n\t\"./assets/images/bath-floor.png\": 91764,\n\t\"./assets/images/brands/1.png\": 70028,\n\t\"./assets/images/brands/10.png\": 93363,\n\t\"./assets/images/brands/11.png\": 53849,\n\t\"./assets/images/brands/12.png\": 24148,\n\t\"./assets/images/brands/13.png\": 587,\n\t\"./assets/images/brands/14.png\": 95054,\n\t\"./assets/images/brands/2.png\": 47267,\n\t\"./assets/images/brands/3.png\": 79178,\n\t\"./assets/images/brands/4.png\": 73752,\n\t\"./assets/images/brands/5.png\": 60832,\n\t\"./assets/images/brands/6.png\": 55096,\n\t\"./assets/images/brands/7.png\": 91738,\n\t\"./assets/images/brands/8.png\": 73038,\n\t\"./assets/images/brands/9.png\": 56713,\n\t\"./assets/images/founder-image-rectangle.png\": 88159,\n\t\"./assets/images/founder-image.png\": 79340,\n\t\"./assets/images/goldmines/gp-mines-background.png\": 58717,\n\t\"./assets/images/goldmines/gp-mines.png\": 61396,\n\t\"./assets/images/goldmines/gp-mountains-1.png\": 61880,\n\t\"./assets/images/goldmines/gp-mountains-2.png\": 56843,\n\t\"./assets/images/goldpesa-logo-6.png\": 10294,\n\t\"./assets/images/gp-academy/gp-academy.png\": 75528,\n\t\"./assets/images/gp-logo-footer.png\": 45919,\n\t\"./assets/images/gpo-icon.png\": 77264,\n\t\"./assets/images/gpx-icon.png\": 14043,\n\t\"./assets/images/icons/arrow-down-circle.svg\": 79432,\n\t\"./assets/images/icons/arrow-right-long.svg\": 47979,\n\t\"./assets/images/icons/arrow-up-long.svg\": 37639,\n\t\"./assets/images/icons/chevron-down-2.svg\": 59226,\n\t\"./assets/images/icons/chevron-down.svg\": 43886,\n\t\"./assets/images/icons/close.svg\": 34241,\n\t\"./assets/images/icons/external-link.svg\": 19406,\n\t\"./assets/images/icons/hamburger.svg\": 25442,\n\t\"./assets/images/icons/launch-icon-white.png\": 64774,\n\t\"./assets/images/icons/launch-icon-yellow.png\": 97035,\n\t\"./assets/images/icons/launch.svg\": 92602,\n\t\"./assets/images/icons/pause-icon.svg\": 68761,\n\t\"./assets/images/icons/play-icon.svg\": 40991,\n\t\"./assets/images/icons/triangle.svg\": 86833,\n\t\"./assets/images/media-logo/logo-1.png\": 57726,\n\t\"./assets/images/media-logo/logo-2.png\": 92185,\n\t\"./assets/images/media-logo/logo-3.png\": 52799,\n\t\"./assets/images/media-logo/logo-4.png\": 82533,\n\t\"./assets/images/media-logo/logo-5.png\": 33018,\n\t\"./assets/images/media-logo/logo-6.png\": 87585,\n\t\"./assets/images/media-logo/logo-7.png\": 473,\n\t\"./assets/images/media-logo/logo-8.png\": 98967,\n\t\"./assets/images/media-thumbnail/thumbnail-1.png\": 91396,\n\t\"./assets/images/media-thumbnail/thumbnail-2.png\": 72557,\n\t\"./assets/images/media-thumbnail/thumbnail-3.png\": 13845,\n\t\"./assets/images/media-thumbnail/thumbnail-4.png\": 29806,\n\t\"./assets/images/media-thumbnail/thumbnail-5.png\": 44769,\n\t\"./assets/images/media-thumbnail/thumbnail-6.png\": 11425,\n\t\"./assets/images/media-thumbnail/thumbnail-7.png\": 69033,\n\t\"./assets/images/media-thumbnail/thumbnail-8.png\": 85695,\n\t\"./assets/images/pawn-icon.png\": 12678,\n\t\"./assets/images/social-icons/discord.svg\": 32471,\n\t\"./assets/images/social-icons/facebook.svg\": 25971,\n\t\"./assets/images/social-icons/git.svg\": 80947,\n\t\"./assets/images/social-icons/instagram.svg\": 25419,\n\t\"./assets/images/social-icons/linkedin.svg\": 133,\n\t\"./assets/images/social-icons/medium.svg\": 63598,\n\t\"./assets/images/social-icons/telegram.svg\": 39902,\n\t\"./assets/images/social-icons/twitter.svg\": 18122,\n\t\"./assets/images/social-icons/youtube.svg\": 65651,\n\t\"./assets/images/stake-2-win/stake-2-win-background.png\": 34038,\n\t\"./assets/images/stake-2-win/stake-2-win-logo.png\": 81577,\n\t\"./assets/images/team/abhimanyu-malhotra.png\": 45242,\n\t\"./assets/images/team/alexandre-de-angelis.png\": 46548,\n\t\"./assets/images/team/heroies-havewalla.png\": 79391,\n\t\"./assets/images/team/linkedin-icon-blue.png\": 69232,\n\t\"./assets/images/team/linkedin-icon.png\": 1361,\n\t\"./assets/images/team/michael-sutton.png\": 49762,\n\t\"./assets/images/team/sina-tootoonian.png\": 62329,\n\t\"./assets/images/team/wil-yeung.png\": 18584,\n\t\"./assets/images/team/yadav-jani.png\": 43755,\n\t\"./assets/images/team/zahid-pirani.png\": 99937,\n\t\"./assets/images/xenii/1.png\": 32885,\n\t\"./assets/images/xenii/10.png\": 31156,\n\t\"./assets/images/xenii/11.png\": 11202,\n\t\"./assets/images/xenii/12.png\": 5175,\n\t\"./assets/images/xenii/13.png\": 26901,\n\t\"./assets/images/xenii/2.png\": 84339,\n\t\"./assets/images/xenii/3.png\": 75670,\n\t\"./assets/images/xenii/4.png\": 71484,\n\t\"./assets/images/xenii/5.png\": 26968,\n\t\"./assets/images/xenii/6.png\": 69117,\n\t\"./assets/images/xenii/7.png\": 34422,\n\t\"./assets/images/xenii/8.png\": 44750,\n\t\"./assets/images/xenii/9.png\": 77948,\n\t\"./assets/images/xenii/banner-left.png\": 84664,\n\t\"./assets/images/xenii/banner-right.png\": 25937,\n\t\"./assets/images/xenii/hero.png\": 27897,\n\t\"./assets/lottie/Loader\": 23724,\n\t\"./assets/lottie/Loader.json\": 23724,\n\t\"./assets/styles/main.scss\": 82838,\n\t\"./assets/styles/partials/_fonts.scss\": 11701,\n\t\"./assets/styles/partials/_global.scss\": 53042,\n\t\"./assets/styles/partials/_mixins.scss\": 23193,\n\t\"./assets/styles/partials/_reset.scss\": 365,\n\t\"./assets/styles/partials/_scrollbars.scss\": 60302,\n\t\"./assets/styles/partials/_theme.scss\": 50451,\n\t\"./assets/styles/partials/default-theme/root-colors.scss\": 31541,\n\t\"./assets/styles/partials/default-theme/theme.scss\": 45814,\n\t\"./components/Accordion\": 22126,\n\t\"./components/Accordion/\": 22126,\n\t\"./components/Accordion/index\": 22126,\n\t\"./components/Accordion/index.jsx\": 22126,\n\t\"./components/Accordion/index.module.scss\": 97180,\n\t\"./components/Button\": 98222,\n\t\"./components/Button/\": 98222,\n\t\"./components/Button/index\": 98222,\n\t\"./components/Button/index.jsx\": 98222,\n\t\"./components/Button/index.module.scss\": 91978,\n\t\"./components/Cards/Style1\": 30188,\n\t\"./components/Cards/Style1/\": 30188,\n\t\"./components/Cards/Style1/index\": 30188,\n\t\"./components/Cards/Style1/index.jsx\": 30188,\n\t\"./components/Cards/Style1/index.module.scss\": 42387,\n\t\"./components/Footer\": 9817,\n\t\"./components/Footer/\": 9817,\n\t\"./components/Footer/index\": 9817,\n\t\"./components/Footer/index.jsx\": 9817,\n\t\"./components/Footer/index.module.scss\": 10086,\n\t\"./components/Header\": 49575,\n\t\"./components/Header/\": 49575,\n\t\"./components/Header/index\": 49575,\n\t\"./components/Header/index.jsx\": 49575,\n\t\"./components/Header/index.module.scss\": 50912,\n\t\"./components/InfiniteLoopBrandSlider\": 98296,\n\t\"./components/InfiniteLoopBrandSlider/\": 98296,\n\t\"./components/InfiniteLoopBrandSlider/index\": 98296,\n\t\"./components/InfiniteLoopBrandSlider/index.jsx\": 98296,\n\t\"./components/InfiniteLoopBrandSlider/index.module.scss\": 66607,\n\t\"./components/Loader\": 79572,\n\t\"./components/Loader/\": 79572,\n\t\"./components/Loader/index\": 79572,\n\t\"./components/Loader/index.jsx\": 79572,\n\t\"./components/Loader/index.module.scss\": 618,\n\t\"./components/MediaCardsSlider\": 40354,\n\t\"./components/MediaCardsSlider/\": 40354,\n\t\"./components/MediaCardsSlider/index\": 40354,\n\t\"./components/MediaCardsSlider/index.jsx\": 40354,\n\t\"./components/MediaCardsSlider/index.module.scss\": 48042,\n\t\"./components/ScrollToTopButton\": 833,\n\t\"./components/ScrollToTopButton/\": 833,\n\t\"./components/ScrollToTopButton/index\": 833,\n\t\"./components/ScrollToTopButton/index.jsx\": 833,\n\t\"./components/ScrollToTopButton/index.module.scss\": 30960,\n\t\"./components/TeamCard\": 57771,\n\t\"./components/TeamCard/\": 57771,\n\t\"./components/TeamCard/index\": 57771,\n\t\"./components/TeamCard/index.jsx\": 57771,\n\t\"./components/TeamCard/index.module.scss\": 51981,\n\t\"./configs/faqConfig\": 25420,\n\t\"./configs/faqConfig.js\": 25420,\n\t\"./configs/footerConfig\": 96480,\n\t\"./configs/footerConfig.js\": 96480,\n\t\"./configs/headerConfigs\": 57045,\n\t\"./configs/headerConfigs.js\": 57045,\n\t\"./configs/homeAnimationTextConfig\": 35604,\n\t\"./configs/homeAnimationTextConfig.js\": 35604,\n\t\"./configs/homeMobileAnimationTextConfig\": 37260,\n\t\"./configs/homeMobileAnimationTextConfig.js\": 37260,\n\t\"./configs/mediaAndPressConfig\": 72343,\n\t\"./configs/mediaAndPressConfig.js\": 72343,\n\t\"./configs/roadmapConfig\": 71313,\n\t\"./configs/roadmapConfig.js\": 71313,\n\t\"./configs/teamConfig\": 60057,\n\t\"./configs/teamConfig.js\": 60057,\n\t\"./context/AppContext\": 65717,\n\t\"./context/AppContext.js\": 65717,\n\t\"./index\": 77569,\n\t\"./index.jsx\": 77569,\n\t\"./layouts/Layout\": 96286,\n\t\"./layouts/Layout.jsx\": 96286,\n\t\"./layouts/Layout.module.scss\": 40624,\n\t\"./locales/en\": 20790,\n\t\"./locales/en.json\": 20790,\n\t\"./locales/fa\": 49603,\n\t\"./locales/fa.json\": 49603,\n\t\"./pages/AboutUs\": 31763,\n\t\"./pages/AboutUs/\": 31763,\n\t\"./pages/AboutUs/index\": 31763,\n\t\"./pages/AboutUs/index.jsx\": 31763,\n\t\"./pages/AboutUs/index.module.scss\": 15243,\n\t\"./pages/Academy\": 74449,\n\t\"./pages/Academy/\": 74449,\n\t\"./pages/Academy/index\": 74449,\n\t\"./pages/Academy/index.jsx\": 74449,\n\t\"./pages/Academy/index.module.scss\": 82915,\n\t\"./pages/FAQ\": 36673,\n\t\"./pages/FAQ/\": 36673,\n\t\"./pages/FAQ/index\": 36673,\n\t\"./pages/FAQ/index.jsx\": 36673,\n\t\"./pages/FAQ/index.module.scss\": 13135,\n\t\"./pages/GoldMines\": 13717,\n\t\"./pages/GoldMines/\": 13717,\n\t\"./pages/GoldMines/index\": 13717,\n\t\"./pages/GoldMines/index.jsx\": 13717,\n\t\"./pages/GoldMines/index.module.scss\": 96018,\n\t\"./pages/Home\": 81956,\n\t\"./pages/Home/\": 81956,\n\t\"./pages/Home/index\": 81956,\n\t\"./pages/Home/index.jsx\": 81956,\n\t\"./pages/Home/index.module.scss\": 21812,\n\t\"./pages/MediaAndPress\": 67859,\n\t\"./pages/MediaAndPress/\": 67859,\n\t\"./pages/MediaAndPress/index\": 67859,\n\t\"./pages/MediaAndPress/index.jsx\": 67859,\n\t\"./pages/MediaAndPress/index.module.scss\": 59238,\n\t\"./pages/Roadmap\": 22422,\n\t\"./pages/Roadmap/\": 22422,\n\t\"./pages/Roadmap/index\": 22422,\n\t\"./pages/Roadmap/index.jsx\": 22422,\n\t\"./pages/Roadmap/index.module.scss\": 70659,\n\t\"./pages/Stake2Win\": 56676,\n\t\"./pages/Stake2Win/\": 56676,\n\t\"./pages/Stake2Win/index\": 56676,\n\t\"./pages/Stake2Win/index.jsx\": 56676,\n\t\"./pages/Stake2Win/index.module.scss\": 47076,\n\t\"./pages/Team\": 19905,\n\t\"./pages/Team/\": 19905,\n\t\"./pages/Team/index\": 19905,\n\t\"./pages/Team/index.jsx\": 19905,\n\t\"./pages/Team/index.module.scss\": 30216,\n\t\"./pages/Xenii2\": 17928,\n\t\"./pages/Xenii2/\": 17928,\n\t\"./pages/Xenii2/index\": 17928,\n\t\"./pages/Xenii2/index.jsx\": 17928,\n\t\"./pages/Xenii2/index.module.scss\": 60553,\n\t\"./reportWebVitals\": 54013,\n\t\"./reportWebVitals.js\": 54013,\n\t\"./setupTests\": 79511,\n\t\"./setupTests.js\": 79511,\n\t\"./utils/utilityFunctions\": 92326,\n\t\"./utils/utilityFunctions.js\": 92326\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 18116;","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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, 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;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\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 var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, 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;","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}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _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 return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, 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;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","export { computeAccessibleDescription } from \"./accessible-description\";\nexport { computeAccessibleName } from \"./accessible-name\";\nexport { default as getRole } from \"./getRole\";\nexport * from \"./is-inaccessible\";\n","'use strict';\n\n/* eslint global-require: 0 */\n// the code is structured this way so that bundlers can\n// alias out `has-symbols` to `() => true` or `() => false` if your target\n// environments' Symbol capabilities are known, and then use\n// dead code elimination on the rest of this module.\n//\n// Similarly, `isarray` can be aliased to `Array.isArray` if\n// available in all target environments.\n\nvar isArguments = require('is-arguments');\nvar getStopIterationIterator = require('stop-iteration-iterator');\n\nif (require('has-symbols')() || require('has-symbols/shams')()) {\n\tvar $iterator = Symbol.iterator;\n\t// Symbol is available natively or shammed\n\t// natively:\n\t// - Chrome >= 38\n\t// - Edge 12-14?, Edge >= 15 for sure\n\t// - FF >= 36\n\t// - Safari >= 9\n\t// - node >= 0.12\n\tmodule.exports = function getIterator(iterable) {\n\t\t// alternatively, `iterable[$iterator]?.()`\n\t\tif (iterable != null && typeof iterable[$iterator] !== 'undefined') {\n\t\t\treturn iterable[$iterator]();\n\t\t}\n\t\tif (isArguments(iterable)) {\n\t\t\t// arguments objects lack Symbol.iterator\n\t\t\t// - node 0.12\n\t\t\treturn Array.prototype[$iterator].call(iterable);\n\t\t}\n\t};\n} else {\n\t// Symbol is not available, native or shammed\n\tvar isArray = require('isarray');\n\tvar isString = require('is-string');\n\tvar GetIntrinsic = require('get-intrinsic');\n\tvar $Map = GetIntrinsic('%Map%', true);\n\tvar $Set = GetIntrinsic('%Set%', true);\n\tvar callBound = require('call-bind/callBound');\n\tvar $arrayPush = callBound('Array.prototype.push');\n\tvar $charCodeAt = callBound('String.prototype.charCodeAt');\n\tvar $stringSlice = callBound('String.prototype.slice');\n\n\tvar advanceStringIndex = function advanceStringIndex(S, index) {\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t};\n\n\tvar getArrayIterator = function getArrayIterator(arraylike) {\n\t\tvar i = 0;\n\t\treturn {\n\t\t\tnext: function next() {\n\t\t\t\tvar done = i >= arraylike.length;\n\t\t\t\tvar value;\n\t\t\t\tif (!done) {\n\t\t\t\t\tvalue = arraylike[i];\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: done,\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t};\n\n\tvar getNonCollectionIterator = function getNonCollectionIterator(iterable, noPrimordialCollections) {\n\t\tif (isArray(iterable) || isArguments(iterable)) {\n\t\t\treturn getArrayIterator(iterable);\n\t\t}\n\t\tif (isString(iterable)) {\n\t\t\tvar i = 0;\n\t\t\treturn {\n\t\t\t\tnext: function next() {\n\t\t\t\t\tvar nextIndex = advanceStringIndex(iterable, i);\n\t\t\t\t\tvar value = $stringSlice(iterable, i, nextIndex);\n\t\t\t\t\ti = nextIndex;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: nextIndex > iterable.length,\n\t\t\t\t\t\tvalue: value\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// es6-shim and es-shims' es-map use a string \"_es6-shim iterator_\" property on different iterables, such as MapIterator.\n\t\tif (noPrimordialCollections && typeof iterable['_es6-shim iterator_'] !== 'undefined') {\n\t\t\treturn iterable['_es6-shim iterator_']();\n\t\t}\n\t};\n\n\tif (!$Map && !$Set) {\n\t\t// the only language iterables are Array, String, arguments\n\t\t// - Safari <= 6.0\n\t\t// - Chrome < 38\n\t\t// - node < 0.12\n\t\t// - FF < 13\n\t\t// - IE < 11\n\t\t// - Edge < 11\n\n\t\tmodule.exports = function getIterator(iterable) {\n\t\t\tif (iterable != null) {\n\t\t\t\treturn getNonCollectionIterator(iterable, true);\n\t\t\t}\n\t\t};\n\t} else {\n\t\t// either Map or Set are available, but Symbol is not\n\t\t// - es6-shim on an ES5 browser\n\t\t// - Safari 6.2 (maybe 6.1?)\n\t\t// - FF v[13, 36)\n\t\t// - IE 11\n\t\t// - Edge 11\n\t\t// - Safari v[6, 9)\n\n\t\tvar isMap = require('is-map');\n\t\tvar isSet = require('is-set');\n\n\t\t// Firefox >= 27, IE 11, Safari 6.2 - 9, Edge 11, es6-shim in older envs, all have forEach\n\t\tvar $mapForEach = callBound('Map.prototype.forEach', true);\n\t\tvar $setForEach = callBound('Set.prototype.forEach', true);\n\t\tif (typeof process === 'undefined' || !process.versions || !process.versions.node) { // \"if is not node\"\n\n\t\t\t// Firefox 17 - 26 has `.iterator()`, whose iterator `.next()` either\n\t\t\t// returns a value, or throws a StopIteration object. These browsers\n\t\t\t// do not have any other mechanism for iteration.\n\t\t\tvar $mapIterator = callBound('Map.prototype.iterator', true);\n\t\t\tvar $setIterator = callBound('Set.prototype.iterator', true);\n\t\t}\n\t\t// Firefox 27-35, and some older es6-shim versions, use a string \"@@iterator\" property\n\t\t// this returns a proper iterator object, so we should use it instead of forEach.\n\t\t// newer es6-shim versions use a string \"_es6-shim iterator_\" property.\n\t\tvar $mapAtAtIterator = callBound('Map.prototype.@@iterator', true) || callBound('Map.prototype._es6-shim iterator_', true);\n\t\tvar $setAtAtIterator = callBound('Set.prototype.@@iterator', true) || callBound('Set.prototype._es6-shim iterator_', true);\n\n\t\tvar getCollectionIterator = function getCollectionIterator(iterable) {\n\t\t\tif (isMap(iterable)) {\n\t\t\t\tif ($mapIterator) {\n\t\t\t\t\treturn getStopIterationIterator($mapIterator(iterable));\n\t\t\t\t}\n\t\t\t\tif ($mapAtAtIterator) {\n\t\t\t\t\treturn $mapAtAtIterator(iterable);\n\t\t\t\t}\n\t\t\t\tif ($mapForEach) {\n\t\t\t\t\tvar entries = [];\n\t\t\t\t\t$mapForEach(iterable, function (v, k) {\n\t\t\t\t\t\t$arrayPush(entries, [k, v]);\n\t\t\t\t\t});\n\t\t\t\t\treturn getArrayIterator(entries);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isSet(iterable)) {\n\t\t\t\tif ($setIterator) {\n\t\t\t\t\treturn getStopIterationIterator($setIterator(iterable));\n\t\t\t\t}\n\t\t\t\tif ($setAtAtIterator) {\n\t\t\t\t\treturn $setAtAtIterator(iterable);\n\t\t\t\t}\n\t\t\t\tif ($setForEach) {\n\t\t\t\t\tvar values = [];\n\t\t\t\t\t$setForEach(iterable, function (v) {\n\t\t\t\t\t\t$arrayPush(values, v);\n\t\t\t\t\t});\n\t\t\t\t\treturn getArrayIterator(values);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tmodule.exports = function getIterator(iterable) {\n\t\t\treturn getCollectionIterator(iterable) || getNonCollectionIterator(iterable);\n\t\t};\n\t}\n}\n","'use strict';\n\nvar isMap = require('is-map');\nvar isSet = require('is-set');\nvar isWeakMap = require('is-weakmap');\nvar isWeakSet = require('is-weakset');\n\nmodule.exports = function whichCollection(value) {\n\tif (value && typeof value === 'object') {\n\t\tif (isMap(value)) {\n\t\t\treturn 'Map';\n\t\t}\n\t\tif (isSet(value)) {\n\t\t\treturn 'Set';\n\t\t}\n\t\tif (isWeakMap(value)) {\n\t\t\treturn 'WeakMap';\n\t\t}\n\t\tif (isWeakSet(value)) {\n\t\t\treturn 'WeakSet';\n\t\t}\n\t}\n\treturn false;\n};\n","export default 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}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","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 return self;\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 toPropertyKey from \"./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}\nexport default function _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}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\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 var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _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}","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 for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : 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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import _typeof from \"./typeof.js\";\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 return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\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 _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default 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}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\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 getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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 return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import {\n\tcomputeTextAlternative,\n\tComputeTextAlternativeOptions,\n} from \"./accessible-name-and-description\";\nimport { queryIdRefs } from \"./util\";\n\n/**\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleDescription(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {}\n): string {\n\tlet description = queryIdRefs(root, \"aria-describedby\")\n\t\t.map((element) => {\n\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t...options,\n\t\t\t\tcompute: \"description\",\n\t\t\t});\n\t\t})\n\t\t.join(\" \");\n\n\t// TODO: Technically we need to make sure that node wasn't used for the accessible name\n\t// This causes `description_1.0_combobox-focusable-manual` to fail\n\t//\n\t// https://www.w3.org/TR/html-aam-1.0/#accessible-name-and-description-computation\n\t// says for so many elements to use the `title` that we assume all elements are considered\n\tif (description === \"\") {\n\t\tconst title = root.getAttribute(\"title\");\n\t\tdescription = title === null ? \"\" : title;\n\t}\n\n\treturn description;\n}\n","/**\n * @source {https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill}\n * but without thisArg (too hard to type, no need to `this`)\n */\nconst toStr = Object.prototype.toString;\nfunction isCallable(fn: unknown): boolean {\n\treturn typeof fn === \"function\" || toStr.call(fn) === \"[object Function]\";\n}\nfunction toInteger(value: unknown): number {\n\tconst number = Number(value);\n\tif (isNaN(number)) {\n\t\treturn 0;\n\t}\n\tif (number === 0 || !isFinite(number)) {\n\t\treturn number;\n\t}\n\treturn (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n}\nconst maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(value: unknown): number {\n\tconst len = toInteger(value);\n\treturn Math.min(Math.max(len, 0), maxSafeInteger);\n}\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\nexport default function arrayFrom<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\n/**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\nexport default function arrayFrom<T, U>(\n\tarrayLike: Iterable<T> | ArrayLike<T>,\n\tmapFn?: (v: T, k: number) => U\n): U[] {\n\t// 1. Let C be the this value.\n\t// edit(@eps1lon): we're not calling it as Array.from\n\tconst C = Array;\n\n\t// 2. Let items be ToObject(arrayLike).\n\tconst items = Object(arrayLike);\n\n\t// 3. ReturnIfAbrupt(items).\n\tif (arrayLike == null) {\n\t\tthrow new TypeError(\n\t\t\t\"Array.from requires an array-like object - not null or undefined\"\n\t\t);\n\t}\n\n\t// 4. If mapfn is undefined, then let mapping be false.\n\t// const mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n\n\tif (typeof mapFn !== \"undefined\") {\n\t\t// 5. else\n\t\t// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n\t\tif (!isCallable(mapFn)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t\"Array.from: when provided, the second argument must be a function\"\n\t\t\t);\n\t\t}\n\t}\n\n\t// 10. Let lenValue be Get(items, \"length\").\n\t// 11. Let len be ToLength(lenValue).\n\tconst len = toLength(items.length);\n\n\t// 13. If IsConstructor(C) is true, then\n\t// 13. a. Let A be the result of calling the [[Construct]] internal method\n\t// of C with an argument list containing the single item len.\n\t// 14. a. Else, Let A be ArrayCreate(len).\n\tconst A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n\t// 16. Let k be 0.\n\tlet k = 0;\n\t// 17. Repeat, while k < len… (also steps a - h)\n\tlet kValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tA[k] = mapFn(kValue, k);\n\t\t} else {\n\t\t\tA[k] = kValue;\n\t\t}\n\t\tk += 1;\n\t}\n\t// 18. Let putStatus be Put(A, \"length\", len, true).\n\tA.length = len;\n\t// 20. Return A.\n\treturn A;\n}\n","declare global {\n\tclass Set<T> {\n\t\t// es2015.collection.d.ts\n\t\tconstructor(items?: T[]);\n\t\tadd(value: T): this;\n\t\tclear(): void;\n\t\tdelete(value: T): boolean;\n\t\tforEach(\n\t\t\tcallbackfn: (value: T, value2: T, set: Set<T>) => void,\n\t\t\tthisArg?: unknown\n\t\t): void;\n\t\thas(value: T): boolean;\n\t\treadonly size: number;\n\n\t\t// es2015.iterable.d.ts\n\t\t// no implemennted\n\t}\n}\n\n// for environments without Set we fallback to arrays with unique members\nclass SetLike<T> implements Set<T> {\n\tprivate items: T[];\n\n\tconstructor(items: T[] = []) {\n\t\tthis.items = items;\n\t}\n\n\tadd(value: T): this {\n\t\tif (this.has(value) === false) {\n\t\t\tthis.items.push(value);\n\t\t}\n\t\treturn this;\n\t}\n\tclear(): void {\n\t\tthis.items = [];\n\t}\n\tdelete(value: T): boolean {\n\t\tconst previousLength = this.items.length;\n\t\tthis.items = this.items.filter((item) => item !== value);\n\n\t\treturn previousLength !== this.items.length;\n\t}\n\tforEach(callbackfn: (value: T, value2: T, set: Set<T>) => void): void {\n\t\tthis.items.forEach((item) => {\n\t\t\tcallbackfn(item, item, this);\n\t\t});\n\t}\n\thas(value: T): boolean {\n\t\treturn this.items.indexOf(value) !== -1;\n\t}\n\n\tget size(): number {\n\t\treturn this.items.length;\n\t}\n}\n\nexport default typeof Set === \"undefined\" ? Set : SetLike;\n","/**\n * implements https://w3c.github.io/accname/\n */\nimport ArrayFrom from \"./polyfills/array.from\";\nimport SetLike from \"./polyfills/SetLike\";\nimport {\n\thasAnyConcreteRoles,\n\tisElement,\n\tisHTMLTableCaptionElement,\n\tisHTMLInputElement,\n\tisHTMLSelectElement,\n\tisHTMLTextAreaElement,\n\tsafeWindow,\n\tisHTMLFieldSetElement,\n\tisHTMLLegendElement,\n\tisHTMLOptGroupElement,\n\tisHTMLTableElement,\n\tisHTMLSlotElement,\n\tisSVGSVGElement,\n\tisSVGTitleElement,\n\tqueryIdRefs,\n\tgetLocalName,\n} from \"./util\";\n\n/**\n * A string of characters where all carriage returns, newlines, tabs, and form-feeds are replaced with a single space, and multiple spaces are reduced to a single space. The string contains only character data; it does not contain any markup.\n */\ntype FlatString = string & {\n\t__flat: true;\n};\n\n/**\n * interface for an options-bag where `window.getComputedStyle` can be mocked\n */\nexport interface ComputeTextAlternativeOptions {\n\tcompute?: \"description\" | \"name\";\n\t/**\n\t * Set to true if window.computedStyle supports the second argument.\n\t * This should be false in JSDOM. Otherwise JSDOM will log console errors.\n\t */\n\tcomputedStyleSupportsPseudoElements?: boolean;\n\t/**\n\t * mock window.getComputedStyle. Needs `content`, `display` and `visibility`\n\t */\n\tgetComputedStyle?: typeof window.getComputedStyle;\n\t/**\n\t * Set to `true` if you want to include hidden elements in the accessible name and description computation.\n\t * Skips 2A in https://w3c.github.io/accname/#computation-steps.\n\t * @default false\n\t */\n\thidden?: boolean;\n}\n\n/**\n *\n * @param {string} string -\n * @returns {FlatString} -\n */\nfunction asFlatString(s: string): FlatString {\n\treturn s.trim().replace(/\\s\\s+/g, \" \") as FlatString;\n}\n\n/**\n *\n * @param node -\n * @param options - These are not optional to prevent accidentally calling it without options in `computeAccessibleName`\n * @returns {boolean} -\n */\nfunction isHidden(\n\tnode: Node,\n\tgetComputedStyleImplementation: typeof window.getComputedStyle\n): node is Element {\n\tif (!isElement(node)) {\n\t\treturn false;\n\t}\n\n\tif (\n\t\tnode.hasAttribute(\"hidden\") ||\n\t\tnode.getAttribute(\"aria-hidden\") === \"true\"\n\t) {\n\t\treturn true;\n\t}\n\n\tconst style = getComputedStyleImplementation(node);\n\treturn (\n\t\tstyle.getPropertyValue(\"display\") === \"none\" ||\n\t\tstyle.getPropertyValue(\"visibility\") === \"hidden\"\n\t);\n}\n\n/**\n * @param {Node} node -\n * @returns {boolean} - As defined in step 2E of https://w3c.github.io/accname/#mapping_additional_nd_te\n */\nfunction isControl(node: Node): boolean {\n\treturn (\n\t\thasAnyConcreteRoles(node, [\"button\", \"combobox\", \"listbox\", \"textbox\"]) ||\n\t\thasAbstractRole(node, \"range\")\n\t);\n}\n\nfunction hasAbstractRole(node: Node, role: string): node is Element {\n\tif (!isElement(node)) {\n\t\treturn false;\n\t}\n\n\tswitch (role) {\n\t\tcase \"range\":\n\t\t\treturn hasAnyConcreteRoles(node, [\n\t\t\t\t\"meter\",\n\t\t\t\t\"progressbar\",\n\t\t\t\t\"scrollbar\",\n\t\t\t\t\"slider\",\n\t\t\t\t\"spinbutton\",\n\t\t\t]);\n\t\tdefault:\n\t\t\tthrow new TypeError(\n\t\t\t\t`No knowledge about abstract role '${role}'. This is likely a bug :(`\n\t\t\t);\n\t}\n}\n\n/**\n * element.querySelectorAll but also considers owned tree\n * @param element\n * @param selectors\n */\nfunction querySelectorAllSubtree(\n\telement: Element,\n\tselectors: string\n): Element[] {\n\tconst elements = ArrayFrom(element.querySelectorAll(selectors));\n\n\tqueryIdRefs(element, \"aria-owns\").forEach((root) => {\n\t\t// babel transpiles this assuming an iterator\n\t\telements.push.apply(elements, ArrayFrom(root.querySelectorAll(selectors)));\n\t});\n\n\treturn elements;\n}\n\nfunction querySelectedOptions(listbox: Element): ArrayLike<Element> {\n\tif (isHTMLSelectElement(listbox)) {\n\t\t// IE11 polyfill\n\t\treturn (\n\t\t\tlistbox.selectedOptions || querySelectorAllSubtree(listbox, \"[selected]\")\n\t\t);\n\t}\n\treturn querySelectorAllSubtree(listbox, '[aria-selected=\"true\"]');\n}\n\nfunction isMarkedPresentational(node: Node): node is Element {\n\treturn hasAnyConcreteRoles(node, [\"none\", \"presentation\"]);\n}\n\n/**\n * Elements specifically listed in html-aam\n *\n * We don't need this for `label` or `legend` elements.\n * Their implicit roles already allow \"naming from content\".\n *\n * sources:\n *\n * - https://w3c.github.io/html-aam/#table-element\n */\nfunction isNativeHostLanguageTextAlternativeElement(\n\tnode: Node\n): node is Element {\n\treturn isHTMLTableCaptionElement(node);\n}\n\n/**\n * https://w3c.github.io/aria/#namefromcontent\n */\nfunction allowsNameFromContent(node: Node): boolean {\n\treturn hasAnyConcreteRoles(node, [\n\t\t\"button\",\n\t\t\"cell\",\n\t\t\"checkbox\",\n\t\t\"columnheader\",\n\t\t\"gridcell\",\n\t\t\"heading\",\n\t\t\"label\",\n\t\t\"legend\",\n\t\t\"link\",\n\t\t\"menuitem\",\n\t\t\"menuitemcheckbox\",\n\t\t\"menuitemradio\",\n\t\t\"option\",\n\t\t\"radio\",\n\t\t\"row\",\n\t\t\"rowheader\",\n\t\t\"switch\",\n\t\t\"tab\",\n\t\t\"tooltip\",\n\t\t\"treeitem\",\n\t]);\n}\n\n/**\n * TODO https://github.com/eps1lon/dom-accessibility-api/issues/100\n */\nfunction isDescendantOfNativeHostLanguageTextAlternativeElement(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars -- not implemented yet\n\tnode: Node\n): boolean {\n\treturn false;\n}\n\nfunction getValueOfTextbox(element: Element): string {\n\tif (isHTMLInputElement(element) || isHTMLTextAreaElement(element)) {\n\t\treturn element.value;\n\t}\n\t// https://github.com/eps1lon/dom-accessibility-api/issues/4\n\treturn element.textContent || \"\";\n}\n\nfunction getTextualContent(declaration: CSSStyleDeclaration): string {\n\tconst content = declaration.getPropertyValue(\"content\");\n\tif (/^[\"'].*[\"']$/.test(content)) {\n\t\treturn content.slice(1, -1);\n\t}\n\treturn \"\";\n}\n\n/**\n * https://html.spec.whatwg.org/multipage/forms.html#category-label\n * TODO: form-associated custom elements\n * @param element\n */\nfunction isLabelableElement(element: Element): boolean {\n\tconst localName = getLocalName(element);\n\n\treturn (\n\t\tlocalName === \"button\" ||\n\t\t(localName === \"input\" && element.getAttribute(\"type\") !== \"hidden\") ||\n\t\tlocalName === \"meter\" ||\n\t\tlocalName === \"output\" ||\n\t\tlocalName === \"progress\" ||\n\t\tlocalName === \"select\" ||\n\t\tlocalName === \"textarea\"\n\t);\n}\n\n/**\n * > [...], then the first such descendant in tree order is the label element's labeled control.\n * -- https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param element\n */\nfunction findLabelableElement(element: Element): Element | null {\n\tif (isLabelableElement(element)) {\n\t\treturn element;\n\t}\n\tlet labelableElement: Element | null = null;\n\telement.childNodes.forEach((childNode) => {\n\t\tif (labelableElement === null && isElement(childNode)) {\n\t\t\tconst descendantLabelableElement = findLabelableElement(childNode);\n\t\t\tif (descendantLabelableElement !== null) {\n\t\t\t\tlabelableElement = descendantLabelableElement;\n\t\t\t}\n\t\t}\n\t});\n\n\treturn labelableElement;\n}\n\n/**\n * Polyfill of HTMLLabelElement.control\n * https://html.spec.whatwg.org/multipage/forms.html#labeled-control\n * @param label\n */\nfunction getControlOfLabel(label: HTMLLabelElement): Element | null {\n\tif (label.control !== undefined) {\n\t\treturn label.control;\n\t}\n\n\tconst htmlFor = label.getAttribute(\"for\");\n\tif (htmlFor !== null) {\n\t\treturn label.ownerDocument.getElementById(htmlFor);\n\t}\n\n\treturn findLabelableElement(label);\n}\n\n/**\n * Polyfill of HTMLInputElement.labels\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/labels\n * @param element\n */\nfunction getLabels(element: Element): HTMLLabelElement[] | null {\n\tconst labelsProperty = (element as HTMLInputElement).labels as\n\t\t| HTMLInputElement[\"labels\"]\n\t\t| undefined;\n\n\tif (labelsProperty === null) {\n\t\treturn labelsProperty;\n\t}\n\tif (labelsProperty !== undefined) {\n\t\treturn ArrayFrom(labelsProperty);\n\t}\n\n\t// polyfill\n\tif (!isLabelableElement(element)) {\n\t\treturn null;\n\t}\n\tconst document = element.ownerDocument;\n\n\treturn ArrayFrom(document.querySelectorAll(\"label\")).filter((label) => {\n\t\treturn getControlOfLabel(label) === element;\n\t});\n}\n\n/**\n * Gets the contents of a slot used for computing the accname\n * @param slot\n */\nfunction getSlotContents(slot: HTMLSlotElement): Node[] {\n\t// Computing the accessible name for elements containing slots is not\n\t// currently defined in the spec. This implementation reflects the\n\t// behavior of NVDA 2020.2/Firefox 81 and iOS VoiceOver/Safari 13.6.\n\tconst assignedNodes = slot.assignedNodes();\n\tif (assignedNodes.length === 0) {\n\t\t// if no nodes are assigned to the slot, it displays the default content\n\t\treturn ArrayFrom(slot.childNodes);\n\t}\n\treturn assignedNodes;\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_te\n * @param root\n * @param options\n * @returns\n */\nexport function computeTextAlternative(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {}\n): string {\n\tconst consultedNodes = new SetLike<Node>();\n\n\tconst window = safeWindow(root);\n\tconst {\n\t\tcompute = \"name\",\n\t\tcomputedStyleSupportsPseudoElements = options.getComputedStyle !==\n\t\t\tundefined,\n\t\t// This might be overengineered. I don't know what happens if I call\n\t\t// window.getComputedStyle(elementFromAnotherWindow) or if I don't bind it\n\t\t// the type declarations don't require a `this`\n\t\t// eslint-disable-next-line no-restricted-properties\n\t\tgetComputedStyle = window.getComputedStyle.bind(window),\n\t\thidden = false,\n\t} = options;\n\n\t// 2F.i\n\tfunction computeMiscTextAlternative(\n\t\tnode: Node,\n\t\tcontext: { isEmbeddedInLabel: boolean; isReferenced: boolean }\n\t): string {\n\t\tlet accumulatedText = \"\";\n\t\tif (isElement(node) && computedStyleSupportsPseudoElements) {\n\t\t\tconst pseudoBefore = getComputedStyle(node, \"::before\");\n\t\t\tconst beforeContent = getTextualContent(pseudoBefore);\n\t\t\taccumulatedText = `${beforeContent} ${accumulatedText}`;\n\t\t}\n\n\t\t// FIXME: Including aria-owns is not defined in the spec\n\t\t// But it is required in the web-platform-test\n\t\tconst childNodes = isHTMLSlotElement(node)\n\t\t\t? getSlotContents(node)\n\t\t\t: ArrayFrom(node.childNodes).concat(queryIdRefs(node, \"aria-owns\"));\n\t\tchildNodes.forEach((child) => {\n\t\t\tconst result = computeTextAlternative(child, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t\trecursion: true,\n\t\t\t});\n\t\t\t// TODO: Unclear why display affects delimiter\n\t\t\t// see https://github.com/w3c/accname/issues/3\n\t\t\tconst display = isElement(child)\n\t\t\t\t? getComputedStyle(child).getPropertyValue(\"display\")\n\t\t\t\t: \"inline\";\n\t\t\tconst separator = display !== \"inline\" ? \" \" : \"\";\n\t\t\t// trailing separator for wpt tests\n\t\t\taccumulatedText += `${separator}${result}${separator}`;\n\t\t});\n\n\t\tif (isElement(node) && computedStyleSupportsPseudoElements) {\n\t\t\tconst pseudoAfter = getComputedStyle(node, \"::after\");\n\t\t\tconst afterContent = getTextualContent(pseudoAfter);\n\t\t\taccumulatedText = `${accumulatedText} ${afterContent}`;\n\t\t}\n\n\t\treturn accumulatedText.trim();\n\t}\n\n\t/**\n\t *\n\t * @param element\n\t * @param attributeName\n\t * @returns A string non-empty string or `null`\n\t */\n\tfunction useAttribute(\n\t\telement: Element,\n\t\tattributeName: string\n\t): string | null {\n\t\tconst attribute = element.getAttributeNode(attributeName);\n\t\tif (\n\t\t\tattribute !== null &&\n\t\t\t!consultedNodes.has(attribute) &&\n\t\t\tattribute.value.trim() !== \"\"\n\t\t) {\n\t\t\tconsultedNodes.add(attribute);\n\t\t\treturn attribute.value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction computeTooltipAttributeValue(node: Node): string | null {\n\t\tif (!isElement(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn useAttribute(node, \"title\");\n\t}\n\n\tfunction computeElementTextAlternative(node: Node): string | null {\n\t\tif (!isElement(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// https://w3c.github.io/html-aam/#fieldset-and-legend-elements\n\t\tif (isHTMLFieldSetElement(node)) {\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isHTMLLegendElement(child)) {\n\t\t\t\t\treturn computeTextAlternative(child, {\n\t\t\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isHTMLTableElement(node)) {\n\t\t\t// https://w3c.github.io/html-aam/#table-element\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isHTMLTableCaptionElement(child)) {\n\t\t\t\t\treturn computeTextAlternative(child, {\n\t\t\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isSVGSVGElement(node)) {\n\t\t\t// https://www.w3.org/TR/svg-aam-1.0/\n\t\t\tconsultedNodes.add(node);\n\t\t\tconst children = ArrayFrom(node.childNodes);\n\t\t\tfor (let i = 0; i < children.length; i += 1) {\n\t\t\t\tconst child = children[i];\n\t\t\t\tif (isSVGTitleElement(child)) {\n\t\t\t\t\treturn child.textContent;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} else if (getLocalName(node) === \"img\" || getLocalName(node) === \"area\") {\n\t\t\t// https://w3c.github.io/html-aam/#area-element\n\t\t\t// https://w3c.github.io/html-aam/#img-element\n\t\t\tconst nameFromAlt = useAttribute(node, \"alt\");\n\t\t\tif (nameFromAlt !== null) {\n\t\t\t\treturn nameFromAlt;\n\t\t\t}\n\t\t} else if (isHTMLOptGroupElement(node)) {\n\t\t\tconst nameFromLabel = useAttribute(node, \"label\");\n\t\t\tif (nameFromLabel !== null) {\n\t\t\t\treturn nameFromLabel;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tisHTMLInputElement(node) &&\n\t\t\t(node.type === \"button\" ||\n\t\t\t\tnode.type === \"submit\" ||\n\t\t\t\tnode.type === \"reset\")\n\t\t) {\n\t\t\t// https://w3c.github.io/html-aam/#input-type-text-input-type-password-input-type-search-input-type-tel-input-type-email-input-type-url-and-textarea-element-accessible-description-computation\n\t\t\tconst nameFromValue = useAttribute(node, \"value\");\n\t\t\tif (nameFromValue !== null) {\n\t\t\t\treturn nameFromValue;\n\t\t\t}\n\n\t\t\t// TODO: l10n\n\t\t\tif (node.type === \"submit\") {\n\t\t\t\treturn \"Submit\";\n\t\t\t}\n\t\t\t// TODO: l10n\n\t\t\tif (node.type === \"reset\") {\n\t\t\t\treturn \"Reset\";\n\t\t\t}\n\t\t}\n\n\t\tconst labels = getLabels(node);\n\t\tif (labels !== null && labels.length !== 0) {\n\t\t\tconsultedNodes.add(node);\n\t\t\treturn ArrayFrom(labels)\n\t\t\t\t.map((element) => {\n\t\t\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t\t\tisEmbeddedInLabel: true,\n\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\trecursion: true,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.filter((label) => {\n\t\t\t\t\treturn label.length > 0;\n\t\t\t\t})\n\t\t\t\t.join(\" \");\n\t\t}\n\n\t\t// https://w3c.github.io/html-aam/#input-type-image-accessible-name-computation\n\t\t// TODO: wpt test consider label elements but html-aam does not mention them\n\t\t// We follow existing implementations over spec\n\t\tif (isHTMLInputElement(node) && node.type === \"image\") {\n\t\t\tconst nameFromAlt = useAttribute(node, \"alt\");\n\t\t\tif (nameFromAlt !== null) {\n\t\t\t\treturn nameFromAlt;\n\t\t\t}\n\n\t\t\tconst nameFromTitle = useAttribute(node, \"title\");\n\t\t\tif (nameFromTitle !== null) {\n\t\t\t\treturn nameFromTitle;\n\t\t\t}\n\n\t\t\t// TODO: l10n\n\t\t\treturn \"Submit Query\";\n\t\t}\n\n\t\tif (hasAnyConcreteRoles(node, [\"button\"])) {\n\t\t\t// https://www.w3.org/TR/html-aam-1.0/#button-element\n\t\t\tconst nameFromSubTree = computeMiscTextAlternative(node, {\n\t\t\t\tisEmbeddedInLabel: false,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t\tif (nameFromSubTree !== \"\") {\n\t\t\t\treturn nameFromSubTree;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction computeTextAlternative(\n\t\tcurrent: Node,\n\t\tcontext: {\n\t\t\tisEmbeddedInLabel: boolean;\n\t\t\tisReferenced: boolean;\n\t\t\trecursion: boolean;\n\t\t}\n\t): string {\n\t\tif (consultedNodes.has(current)) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// 2A\n\t\tif (\n\t\t\t!hidden &&\n\t\t\tisHidden(current, getComputedStyle) &&\n\t\t\t!context.isReferenced\n\t\t) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn \"\" as FlatString;\n\t\t}\n\n\t\t// 2B\n\t\tconst labelAttributeNode = isElement(current)\n\t\t\t? current.getAttributeNode(\"aria-labelledby\")\n\t\t\t: null;\n\t\t// TODO: Do we generally need to block query IdRefs of attributes we have already consulted?\n\t\tconst labelElements =\n\t\t\tlabelAttributeNode !== null && !consultedNodes.has(labelAttributeNode)\n\t\t\t\t? queryIdRefs(current, \"aria-labelledby\")\n\t\t\t\t: [];\n\t\tif (\n\t\t\tcompute === \"name\" &&\n\t\t\t!context.isReferenced &&\n\t\t\tlabelElements.length > 0\n\t\t) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Can't be null here otherwise labelElements would be empty\n\t\t\tconsultedNodes.add(labelAttributeNode!);\n\n\t\t\treturn labelElements\n\t\t\t\t.map((element) => {\n\t\t\t\t\t// TODO: Chrome will consider repeated values i.e. use a node multiple times while we'll bail out in computeTextAlternative.\n\t\t\t\t\treturn computeTextAlternative(element, {\n\t\t\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\t\t\tisReferenced: true,\n\t\t\t\t\t\t// this isn't recursion as specified, otherwise we would skip\n\t\t\t\t\t\t// `aria-label` in\n\t\t\t\t\t\t// <input id=\"myself\" aria-label=\"foo\" aria-labelledby=\"myself\"\n\t\t\t\t\t\trecursion: false,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.join(\" \");\n\t\t}\n\n\t\t// 2C\n\t\t// Changed from the spec in anticipation of https://github.com/w3c/accname/issues/64\n\t\t// spec says we should only consider skipping if we have a non-empty label\n\t\tconst skipToStep2E =\n\t\t\tcontext.recursion && isControl(current) && compute === \"name\";\n\t\tif (!skipToStep2E) {\n\t\t\tconst ariaLabel = (\n\t\t\t\t(isElement(current) && current.getAttribute(\"aria-label\")) ||\n\t\t\t\t\"\"\n\t\t\t).trim();\n\t\t\tif (ariaLabel !== \"\" && compute === \"name\") {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn ariaLabel;\n\t\t\t}\n\n\t\t\t// 2D\n\t\t\tif (!isMarkedPresentational(current)) {\n\t\t\t\tconst elementTextAlternative = computeElementTextAlternative(current);\n\t\t\t\tif (elementTextAlternative !== null) {\n\t\t\t\t\tconsultedNodes.add(current);\n\t\t\t\t\treturn elementTextAlternative;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// special casing, cheating to make tests pass\n\t\t// https://github.com/w3c/accname/issues/67\n\t\tif (hasAnyConcreteRoles(current, [\"menu\"])) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn \"\";\n\t\t}\n\n\t\t// 2E\n\t\tif (skipToStep2E || context.isEmbeddedInLabel || context.isReferenced) {\n\t\t\tif (hasAnyConcreteRoles(current, [\"combobox\", \"listbox\"])) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\tconst selectedOptions = querySelectedOptions(current);\n\t\t\t\tif (selectedOptions.length === 0) {\n\t\t\t\t\t// defined per test `name_heading_combobox`\n\t\t\t\t\treturn isHTMLInputElement(current) ? current.value : \"\";\n\t\t\t\t}\n\t\t\t\treturn ArrayFrom(selectedOptions)\n\t\t\t\t\t.map((selectedOption) => {\n\t\t\t\t\t\treturn computeTextAlternative(selectedOption, {\n\t\t\t\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\t\t\t\tisReferenced: false,\n\t\t\t\t\t\t\trecursion: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.join(\" \");\n\t\t\t}\n\t\t\tif (hasAbstractRole(current, \"range\")) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\tif (current.hasAttribute(\"aria-valuetext\")) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n\t\t\t\t\treturn current.getAttribute(\"aria-valuetext\")!;\n\t\t\t\t}\n\t\t\t\tif (current.hasAttribute(\"aria-valuenow\")) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute guard\n\t\t\t\t\treturn current.getAttribute(\"aria-valuenow\")!;\n\t\t\t\t}\n\t\t\t\t// Otherwise, use the value as specified by a host language attribute.\n\t\t\t\treturn current.getAttribute(\"value\") || \"\";\n\t\t\t}\n\t\t\tif (hasAnyConcreteRoles(current, [\"textbox\"])) {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn getValueOfTextbox(current);\n\t\t\t}\n\t\t}\n\n\t\t// 2F: https://w3c.github.io/accname/#step2F\n\t\tif (\n\t\t\tallowsNameFromContent(current) ||\n\t\t\t(isElement(current) && context.isReferenced) ||\n\t\t\tisNativeHostLanguageTextAlternativeElement(current) ||\n\t\t\tisDescendantOfNativeHostLanguageTextAlternativeElement(current)\n\t\t) {\n\t\t\tconst accumulatedText2F = computeMiscTextAlternative(current, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t\tif (accumulatedText2F !== \"\") {\n\t\t\t\tconsultedNodes.add(current);\n\t\t\t\treturn accumulatedText2F;\n\t\t\t}\n\t\t}\n\n\t\tif (current.nodeType === current.TEXT_NODE) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn current.textContent || \"\";\n\t\t}\n\n\t\tif (context.recursion) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn computeMiscTextAlternative(current, {\n\t\t\t\tisEmbeddedInLabel: context.isEmbeddedInLabel,\n\t\t\t\tisReferenced: false,\n\t\t\t});\n\t\t}\n\n\t\tconst tooltipAttributeValue = computeTooltipAttributeValue(current);\n\t\tif (tooltipAttributeValue !== null) {\n\t\t\tconsultedNodes.add(current);\n\t\t\treturn tooltipAttributeValue;\n\t\t}\n\n\t\t// TODO should this be reachable?\n\t\tconsultedNodes.add(current);\n\t\treturn \"\";\n\t}\n\n\treturn asFlatString(\n\t\tcomputeTextAlternative(root, {\n\t\t\tisEmbeddedInLabel: false,\n\t\t\t// by spec computeAccessibleDescription starts with the referenced elements as roots\n\t\t\tisReferenced: compute === \"description\",\n\t\t\trecursion: false,\n\t\t})\n\t);\n}\n","import {\n\tcomputeTextAlternative,\n\tComputeTextAlternativeOptions,\n} from \"./accessible-name-and-description\";\nimport { hasAnyConcreteRoles } from \"./util\";\n\n/**\n * https://w3c.github.io/aria/#namefromprohibited\n */\nfunction prohibitsNaming(node: Node): boolean {\n\treturn hasAnyConcreteRoles(node, [\n\t\t\"caption\",\n\t\t\"code\",\n\t\t\"deletion\",\n\t\t\"emphasis\",\n\t\t\"generic\",\n\t\t\"insertion\",\n\t\t\"paragraph\",\n\t\t\"presentation\",\n\t\t\"strong\",\n\t\t\"subscript\",\n\t\t\"superscript\",\n\t]);\n}\n\n/**\n * implements https://w3c.github.io/accname/#mapping_additional_nd_name\n * @param root\n * @param options\n * @returns\n */\nexport function computeAccessibleName(\n\troot: Element,\n\toptions: ComputeTextAlternativeOptions = {}\n): string {\n\tif (prohibitsNaming(root)) {\n\t\treturn \"\";\n\t}\n\n\treturn computeTextAlternative(root, options);\n}\n","// https://w3c.github.io/html-aria/#document-conformance-requirements-for-use-of-aria-attributes-in-html\n\n/**\n * Safe Element.localName for all supported environments\n * @param element\n */\nexport function getLocalName(element: Element): string {\n\treturn (\n\t\t// eslint-disable-next-line no-restricted-properties -- actual guard for environments without localName\n\t\telement.localName ??\n\t\t// eslint-disable-next-line no-restricted-properties -- required for the fallback\n\t\telement.tagName.toLowerCase()\n\t);\n}\n\nconst localNameToRoleMappings: Record<string, string | undefined> = {\n\tarticle: \"article\",\n\taside: \"complementary\",\n\tbutton: \"button\",\n\tdatalist: \"listbox\",\n\tdd: \"definition\",\n\tdetails: \"group\",\n\tdialog: \"dialog\",\n\tdt: \"term\",\n\tfieldset: \"group\",\n\tfigure: \"figure\",\n\t// WARNING: Only with an accessible name\n\tform: \"form\",\n\tfooter: \"contentinfo\",\n\th1: \"heading\",\n\th2: \"heading\",\n\th3: \"heading\",\n\th4: \"heading\",\n\th5: \"heading\",\n\th6: \"heading\",\n\theader: \"banner\",\n\thr: \"separator\",\n\thtml: \"document\",\n\tlegend: \"legend\",\n\tli: \"listitem\",\n\tmath: \"math\",\n\tmain: \"main\",\n\tmenu: \"list\",\n\tnav: \"navigation\",\n\tol: \"list\",\n\toptgroup: \"group\",\n\t// WARNING: Only in certain context\n\toption: \"option\",\n\toutput: \"status\",\n\tprogress: \"progressbar\",\n\t// WARNING: Only with an accessible name\n\tsection: \"region\",\n\tsummary: \"button\",\n\ttable: \"table\",\n\ttbody: \"rowgroup\",\n\ttextarea: \"textbox\",\n\ttfoot: \"rowgroup\",\n\t// WARNING: Only in certain context\n\ttd: \"cell\",\n\tth: \"columnheader\",\n\tthead: \"rowgroup\",\n\ttr: \"row\",\n\tul: \"list\",\n};\n\nconst prohibitedAttributes: Record<string, Set<string>> = {\n\tcaption: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tcode: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tdeletion: new Set([\"aria-label\", \"aria-labelledby\"]),\n\temphasis: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tgeneric: new Set([\"aria-label\", \"aria-labelledby\", \"aria-roledescription\"]),\n\tinsertion: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tparagraph: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tpresentation: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tstrong: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tsubscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n\tsuperscript: new Set([\"aria-label\", \"aria-labelledby\"]),\n};\n\n/**\n *\n * @param element\n * @param role The role used for this element. This is specified to control whether you want to use the implicit or explicit role.\n */\nfunction hasGlobalAriaAttributes(element: Element, role: string): boolean {\n\t// https://rawgit.com/w3c/aria/stable/#global_states\n\t// commented attributes are deprecated\n\treturn [\n\t\t\"aria-atomic\",\n\t\t\"aria-busy\",\n\t\t\"aria-controls\",\n\t\t\"aria-current\",\n\t\t\"aria-describedby\",\n\t\t\"aria-details\",\n\t\t// \"disabled\",\n\t\t\"aria-dropeffect\",\n\t\t// \"errormessage\",\n\t\t\"aria-flowto\",\n\t\t\"aria-grabbed\",\n\t\t// \"haspopup\",\n\t\t\"aria-hidden\",\n\t\t// \"invalid\",\n\t\t\"aria-keyshortcuts\",\n\t\t\"aria-label\",\n\t\t\"aria-labelledby\",\n\t\t\"aria-live\",\n\t\t\"aria-owns\",\n\t\t\"aria-relevant\",\n\t\t\"aria-roledescription\",\n\t].some((attributeName) => {\n\t\treturn (\n\t\t\telement.hasAttribute(attributeName) &&\n\t\t\t!prohibitedAttributes[role]?.has(attributeName)\n\t\t);\n\t});\n}\n\nfunction ignorePresentationalRole(\n\telement: Element,\n\timplicitRole: string\n): boolean {\n\t// https://rawgit.com/w3c/aria/stable/#conflict_resolution_presentation_none\n\treturn hasGlobalAriaAttributes(element, implicitRole);\n}\n\nexport default function getRole(element: Element): string | null {\n\tconst explicitRole = getExplicitRole(element);\n\tif (explicitRole === null || explicitRole === \"presentation\") {\n\t\tconst implicitRole = getImplicitRole(element);\n\t\tif (\n\t\t\texplicitRole !== \"presentation\" ||\n\t\t\tignorePresentationalRole(element, implicitRole || \"\")\n\t\t) {\n\t\t\treturn implicitRole;\n\t\t}\n\t}\n\n\treturn explicitRole;\n}\n\nfunction getImplicitRole(element: Element): string | null {\n\tconst mappedByTag = localNameToRoleMappings[getLocalName(element)];\n\tif (mappedByTag !== undefined) {\n\t\treturn mappedByTag;\n\t}\n\n\tswitch (getLocalName(element)) {\n\t\tcase \"a\":\n\t\tcase \"area\":\n\t\tcase \"link\":\n\t\t\tif (element.hasAttribute(\"href\")) {\n\t\t\t\treturn \"link\";\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"img\":\n\t\t\tif (\n\t\t\t\telement.getAttribute(\"alt\") === \"\" &&\n\t\t\t\t!ignorePresentationalRole(element, \"img\")\n\t\t\t) {\n\t\t\t\treturn \"presentation\";\n\t\t\t}\n\t\t\treturn \"img\";\n\t\tcase \"input\": {\n\t\t\tconst { type } = element as HTMLInputElement;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"button\":\n\t\t\t\tcase \"image\":\n\t\t\t\tcase \"reset\":\n\t\t\t\tcase \"submit\":\n\t\t\t\t\treturn \"button\";\n\t\t\t\tcase \"checkbox\":\n\t\t\t\tcase \"radio\":\n\t\t\t\t\treturn type;\n\t\t\t\tcase \"range\":\n\t\t\t\t\treturn \"slider\";\n\t\t\t\tcase \"email\":\n\t\t\t\tcase \"tel\":\n\t\t\t\tcase \"text\":\n\t\t\t\tcase \"url\":\n\t\t\t\t\tif (element.hasAttribute(\"list\")) {\n\t\t\t\t\t\treturn \"combobox\";\n\t\t\t\t\t}\n\t\t\t\t\treturn \"textbox\";\n\n\t\t\t\tcase \"search\":\n\t\t\t\t\tif (element.hasAttribute(\"list\")) {\n\t\t\t\t\t\treturn \"combobox\";\n\t\t\t\t\t}\n\t\t\t\t\treturn \"searchbox\";\n\t\t\t\tcase \"number\":\n\t\t\t\t\treturn \"spinbutton\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tcase \"select\":\n\t\t\tif (\n\t\t\t\telement.hasAttribute(\"multiple\") ||\n\t\t\t\t(element as HTMLSelectElement).size > 1\n\t\t\t) {\n\t\t\t\treturn \"listbox\";\n\t\t\t}\n\t\t\treturn \"combobox\";\n\t}\n\treturn null;\n}\n\nfunction getExplicitRole(element: Element): string | null {\n\tconst role = element.getAttribute(\"role\");\n\tif (role !== null) {\n\t\tconst explicitRole = role.trim().split(\" \")[0];\n\t\t// String.prototype.split(sep, limit) will always return an array with at least one member\n\t\t// as long as limit is either undefined or > 0\n\t\tif (explicitRole.length > 0) {\n\t\t\treturn explicitRole;\n\t\t}\n\t}\n\n\treturn null;\n}\n","export interface IsInaccessibleOptions {\n\tgetComputedStyle?: typeof window.getComputedStyle;\n\t/**\n\t * Can be used to return cached results from previous isSubtreeInaccessible calls.\n\t */\n\tisSubtreeInaccessible?: (element: Element) => boolean;\n}\n\n/**\n * Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion\n * which should only be used for elements with a non-presentational role i.e.\n * `role=\"none\"` and `role=\"presentation\"` will not be excluded.\n *\n * Implements aria-hidden semantics (i.e. parent overrides child)\n * Ignores \"Child Presentational: True\" characteristics\n *\n * @param element\n * @param options\n * @returns {boolean} true if excluded, otherwise false\n */\nexport function isInaccessible(\n\telement: Element,\n\toptions: IsInaccessibleOptions = {}\n): boolean {\n\tconst {\n\t\tgetComputedStyle = element.ownerDocument.defaultView?.getComputedStyle,\n\t\tisSubtreeInaccessible: isSubtreeInaccessibleImpl = isSubtreeInaccessible,\n\t} = options;\n\tif (typeof getComputedStyle !== \"function\") {\n\t\tthrow new TypeError(\n\t\t\t\"Owner document of the element needs to have an associated window.\"\n\t\t);\n\t}\n\t// since visibility is inherited we can exit early\n\tif (getComputedStyle(element).visibility === \"hidden\") {\n\t\treturn true;\n\t}\n\n\tlet currentElement: Element | null = element;\n\twhile (currentElement) {\n\t\tif (isSubtreeInaccessibleImpl(currentElement, { getComputedStyle })) {\n\t\t\treturn true;\n\t\t}\n\n\t\tcurrentElement = currentElement.parentElement;\n\t}\n\n\treturn false;\n}\n\nexport interface IsSubtreeInaccessibleOptions {\n\tgetComputedStyle?: typeof window.getComputedStyle;\n}\n\n/**\n *\n * @param element\n * @param options\n * @returns {boolean} - `true` if every child of the element is inaccessible\n */\nexport function isSubtreeInaccessible(\n\telement: Element,\n\toptions: IsSubtreeInaccessibleOptions = {}\n): boolean {\n\tconst {\n\t\tgetComputedStyle = element.ownerDocument.defaultView?.getComputedStyle,\n\t} = options;\n\tif (typeof getComputedStyle !== \"function\") {\n\t\tthrow new TypeError(\n\t\t\t\"Owner document of the element needs to have an associated window.\"\n\t\t);\n\t}\n\n\tif ((element as HTMLElement).hidden === true) {\n\t\treturn true;\n\t}\n\n\tif (element.getAttribute(\"aria-hidden\") === \"true\") {\n\t\treturn true;\n\t}\n\n\tif (getComputedStyle(element).display === \"none\") {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","export { getLocalName } from \"./getRole\";\nimport getRole, { getLocalName } from \"./getRole\";\n\nexport function isElement(node: Node | null): node is Element {\n\treturn node !== null && node.nodeType === node.ELEMENT_NODE;\n}\n\nexport function isHTMLTableCaptionElement(\n\tnode: Node | null\n): node is HTMLTableCaptionElement {\n\treturn isElement(node) && getLocalName(node) === \"caption\";\n}\n\nexport function isHTMLInputElement(\n\tnode: Node | null\n): node is HTMLInputElement {\n\treturn isElement(node) && getLocalName(node) === \"input\";\n}\n\nexport function isHTMLOptGroupElement(\n\tnode: Node | null\n): node is HTMLOptGroupElement {\n\treturn isElement(node) && getLocalName(node) === \"optgroup\";\n}\n\nexport function isHTMLSelectElement(\n\tnode: Node | null\n): node is HTMLSelectElement {\n\treturn isElement(node) && getLocalName(node) === \"select\";\n}\n\nexport function isHTMLTableElement(\n\tnode: Node | null\n): node is HTMLTableElement {\n\treturn isElement(node) && getLocalName(node) === \"table\";\n}\n\nexport function isHTMLTextAreaElement(\n\tnode: Node | null\n): node is HTMLTextAreaElement {\n\treturn isElement(node) && getLocalName(node) === \"textarea\";\n}\n\nexport function safeWindow(node: Node): Window {\n\tconst { defaultView } =\n\t\tnode.ownerDocument === null ? (node as Document) : node.ownerDocument;\n\n\tif (defaultView === null) {\n\t\tthrow new TypeError(\"no window available\");\n\t}\n\treturn defaultView;\n}\n\nexport function isHTMLFieldSetElement(\n\tnode: Node | null\n): node is HTMLFieldSetElement {\n\treturn isElement(node) && getLocalName(node) === \"fieldset\";\n}\n\nexport function isHTMLLegendElement(\n\tnode: Node | null\n): node is HTMLLegendElement {\n\treturn isElement(node) && getLocalName(node) === \"legend\";\n}\n\nexport function isHTMLSlotElement(node: Node | null): node is HTMLSlotElement {\n\treturn isElement(node) && getLocalName(node) === \"slot\";\n}\n\nexport function isSVGElement(node: Node | null): node is SVGElement {\n\treturn isElement(node) && (node as SVGElement).ownerSVGElement !== undefined;\n}\n\nexport function isSVGSVGElement(node: Node | null): node is SVGSVGElement {\n\treturn isElement(node) && getLocalName(node) === \"svg\";\n}\n\nexport function isSVGTitleElement(node: Node | null): node is SVGTitleElement {\n\treturn isSVGElement(node) && getLocalName(node) === \"title\";\n}\n\n/**\n *\n * @param {Node} node -\n * @param {string} attributeName -\n * @returns {Element[]} -\n */\nexport function queryIdRefs(node: Node, attributeName: string): Element[] {\n\tif (isElement(node) && node.hasAttribute(attributeName)) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- safe due to hasAttribute check\n\t\tconst ids = node.getAttribute(attributeName)!.split(\" \");\n\n\t\t// Browsers that don't support shadow DOM won't have getRootNode\n\t\tconst root = node.getRootNode\n\t\t\t? (node.getRootNode() as Document | ShadowRoot)\n\t\t\t: node.ownerDocument;\n\n\t\treturn ids\n\t\t\t.map((id) => root.getElementById(id))\n\t\t\t.filter(\n\t\t\t\t(element: Element | null): element is Element => element !== null\n\t\t\t\t// TODO: why does this not narrow?\n\t\t\t) as Element[];\n\t}\n\n\treturn [];\n}\n\nexport function hasAnyConcreteRoles(\n\tnode: Node,\n\troles: Array<string | null>\n): node is Element {\n\tif (isElement(node)) {\n\t\treturn roles.indexOf(getRole(node)) !== -1;\n\t}\n\treturn false;\n}\n","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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};\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Logger);\n this.init(concreteLogger, options);\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 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 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 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 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$6(_objectSpread$6({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n return Logger;\n}();\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.observers = {};\n }\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\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 if (!listener) {\n delete this.observers[event];\n return;\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 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 if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\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}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\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 if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\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 return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\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 return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\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 for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\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 while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n var _super = _createSuper$3(ResourceStore);\n function ResourceStore(data) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _classCallCheck(this, ResourceStore);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n return _this;\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 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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\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 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 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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$5(_objectSpread$5({}, pack), resources);\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 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$5(_objectSpread$5({}, {}), 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: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\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 processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n var _super = _createSuper$2(Translator);\n function Translator(services) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Translator);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n _this.logger = baseLogger.create('translator');\n return _this;\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 if (key === undefined || key === null) {\n return false;\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 var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\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 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 if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (_typeof(options) === 'object') options = _objectSpread$4({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\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 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 var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\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$4(_objectSpread$4({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\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, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\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 if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, 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 var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\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 var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).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 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) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$4(_objectSpread$4({}, options), {\n interpolation: _objectSpread$4(_objectSpread$4({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\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 if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\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 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 return null;\n }\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\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$4({\n i18nResolved: resolved\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\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 var extracted = _this4.extractFromKey(k, options);\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 needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\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 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 _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 codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\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, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n var possibleKey;\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 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 return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\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 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 return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : 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 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 if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this.formatLanguageCode(code);\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this.getLanguagePartFromCode(code);\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\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 var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\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 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 fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\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};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\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}\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, PluralResolver);\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\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 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\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 var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\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 return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Interpolator);\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\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 var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\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(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? 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 while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\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 (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\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 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\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 var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, 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 delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread$3({}, options);\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\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 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 if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Formatter);\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng) {\n var _this = this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var formats = _format.split(this.formatSeparator);\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n if (_this.formats[formatName]) {\n var formatted = mem;\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n return mem;\n }, value);\n return result;\n }\n }]);\n return Formatter;\n}();\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n var _super = _createSuper$1(Connector);\n function Connector(backend, store, services) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _classCallCheck(this, Connector);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\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.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\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 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[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(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 if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\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 var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n this.readingCalls++;\n var resolver = function resolver(err, data) {\n _this3.readingCalls--;\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n var fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\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 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 if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\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 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 _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 var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\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 if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {\n isUpdate: isUpdate\n });\n var fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n var r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\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 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 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 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: true\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 if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n var _super = _createSuper(I18n);\n function I18n() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _classCallCheck(this, I18n);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\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 var formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\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 if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\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 _this2.emit.apply(_this2, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\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 _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 this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\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 if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\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 (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n return _this2;\n };\n });\n var deferred = defer();\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 _this2.emit('initialized', _this2.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\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 if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\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 if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\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 if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n _this4.setResolvedLanguage(l);\n };\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n _this4.translator.changeLanguage(l);\n _this4.isLanguageChangingTo = undefined;\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\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 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 if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n _this4.loadResources(l, function (err) {\n done(err, l);\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 if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\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 options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n return _this5.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\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 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 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 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\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 var lng = this.resolvedLanguage || 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 var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) 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 var deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\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 if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\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.resolvedLanguage || (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', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\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 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 resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n return I18n;\n}(EventEmitter);\n_defineProperty(I18n, \"createInstance\", function () {\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});\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar dir = instance.dir;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '</' + current.name + '>') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith('<!--')\n const start = index + tag.length\n const nextChar = html.charAt(start)\n let parent\n\n if (isComment) {\n const comment = parseTag(tag)\n\n // if we're at root, push new base node\n if (level < 0) {\n result.push(comment)\n return result\n }\n parent = arr[level]\n parent.children.push(comment)\n return result\n }\n\n if (isOpen) {\n level++\n\n current = parseTag(tag)\n if (current.type === 'tag' && options.components[current.name]) {\n current.type = 'component'\n inComponent = true\n }\n\n if (\n !current.voidElement &&\n !inComponent &&\n nextChar &&\n nextChar !== '<'\n ) {\n current.children.push({\n type: 'text',\n content: html.slice(start, html.indexOf('<', start)),\n })\n }\n\n // if we're at root, push new base node\n if (level === 0) {\n result.push(current)\n }\n\n parent = arr[level - 1]\n\n if (parent) {\n parent.children.push(current)\n }\n\n arr[level] = current\n }\n\n if (!isOpen || current.voidElement) {\n if (\n level > -1 &&\n (current.voidElement || current.name === tag.slice(2, -1))\n ) {\n level--\n // move current up a level to match the end tag\n current = level === -1 ? result : arr[level]\n }\n if (!inComponent && nextChar !== '<' && nextChar) {\n // trailing text node\n // if we're at the root, push a base text node. otherwise add as\n // a child to the current node.\n parent = level === -1 ? result : arr[level].children\n\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n const end = html.indexOf('<', start)\n let content = html.slice(start, end === -1 ? undefined : end)\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (whitespaceRE.test(content)) {\n content = ' '\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and parent has length 0\n if ((end > -1 && level + parent.length >= 0) || content !== ' ') {\n parent.push({\n type: 'text',\n content: content,\n })\n }\n }\n }\n })\n\n return result\n}\n","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}","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 _defineProperty from \"@babel/runtime/helpers/defineProperty\";\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\nimport { unescape } from './unescape.js';\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};\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}","var i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\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\nimport { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport var I18nContext = createContext();\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 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}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\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\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils.js';\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, optsOrDefaultValue) {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && _typeof(optsOrDefaultValue) === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\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}","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider(_ref) {\n var i18n = _ref.i18n,\n defaultNS = _ref.defaultNS,\n children = _ref.children;\n var value = useMemo(function () {\n return {\n i18n: i18n,\n defaultNS: defaultNS\n };\n }, [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value: value\n }, children);\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 if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 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 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 return target;\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopedSlidesLimit', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nexport const calcLoopedSlides = (slides, swiperParams) => {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n};","import React from 'react';\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from '../components-shared/utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual };","import React from 'react';\nimport { calcLoopedSlides } from '../shared/calc-looped-slides.js';\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n\n for (let i = 0; i < loopedSlides; i += 1) {\n const index = i - Math.floor(i / modifiedSlides.length) * modifiedSlides.length;\n appendSlides.push(duplicateSlide(modifiedSlides[index], i, 'append'));\n prependSlides.unshift(duplicateSlide(modifiedSlides[modifiedSlides.length - index - 1], i, 'prepend'));\n }\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"9fa88188\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"goldpesa-v1:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkgoldpesa_v1\"] = self[\"webpackChunkgoldpesa_v1\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(77569);\n"],"names":["_path","_excluded","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgExternalLink","_ref","svgRef","title","titleId","props","width","height","viewBox","fill","xmlns","ref","id","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ForwardRef","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","__assign","t","s","n","__rest","e","__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","genericMessage","_a","obj","proto","InvariantError","_super","message","_this","framesToPop","name","Error","invariant","condition","verbosityLevels","verbosityLevel","wrapConsoleMethod","console","log","debug","warn","error","maybe","thunk","globalThis","window","self","global","GLOBAL_KEY","join","Boolean","__DEV__","defineProperty","process","enumerable","configurable","writable","safeGlobal","needToRemove","remove","env","NODE_ENV","devAssert","MAX_ARRAY_LENGTH","MAX_RECURSIVE_DEPTH","inspect","formatValue","seenValues","JSON","stringify","previouslySeenValues","includes","_toConsumableArray","toJSON","isJSONable","jsonValue","isArray","array","len","Math","min","remaining","items","formatArray","object","entries","tag","toString","replace","getObjectTag","properties","map","_ref2","_slicedToArray","formatObject","formatObjectValue","toStringTag","_createForOfIteratorHelperLoose","o","allowArrayLike","it","minLen","_arrayLikeToArray","test","_unsupportedIterableToArray","arr","arr2","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","DEV","hasSymbols","hasSymbol","getSymbol","observable","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","ctor","undefined","Observable","isObservable","x","hostReportError","setTimeout","enqueue","fn","cleanupSubscription","subscription","cleanup","_cleanup","unsubscribe","closeSubscription","_observer","_queue","_state","notifySubscription","type","observer","m","onNotify","queue","flushSubscription","Subscription","subscriber","subscriptionObserver","SubscriptionObserver","get","_subscription","_proto2","complete","_subscriber","_proto3","subscribe","forEach","_this2","filter","_this3","reduce","_this4","C","hasSeed","hasValue","acc","first","_this5","_len","sources","_key","index","startNext","flatMap","_this6","subscriptions","outer","inner","splice","completeIfDone","closed","method","_step","_iterator","item","of","_len2","_key2","isNonNullObject","getFragmentQueryDocument","document","fragmentName","actualFragmentName","fragments","definitions","definition","kind","operation","selectionSet","selections","createFragmentMap","symTable","fragment","getFragmentFromSelection","selection","fragmentMap","makeReference","__ref","isReference","valueToObjectRepresentation","argObj","variables","isIntValue","isFloatValue","Number","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","fields","isVariable","variableValue","isListValue","values","listValue","nestedArgArrayObj","isEnumValue","isNullValue","symbol","KNOWN_DIRECTIVES","getStoreKeyName","fieldName","args","directives","filterKeys","sort","filteredArgs_1","completeFieldName","stringifiedArgs","setStringify","previous","stringifyReplacer","copy","argumentsObjectFromField","field","argObj_1","resultKeyNameFromField","alias","getTypenameFromResult","__typename","_i","isField","typename","checkDocument","doc","operations","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","fragmentDefinition","getDefaultValues","defaultValues","defs","variableDefinitions","def","defaultValue","variable","passthrough","forward","toLink","handler","ApolloLink","isTerminating","link","request","OperationTypeNode","Kind","LinkError","empty","links","split","left","right","leftLink","rightLink","execute","starting","context","createOperation","transformedOperation","extensions","operationName","query","transformOperation","OPERATION_FIELDS","validateOperation","second","firstLink","nextLink","onError","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","kindValues","Set","isNode","maybeNode","maybeKind","has","BREAK","freeze","visit","root","visitor","visitorKeys","enterLeaveMap","Map","_Object$values","set","getEnterLeaveForKind","stack","inArray","edits","node","parent","path","ancestors","isLeaving","isEdited","editOffset","_createForOfIteratorHelper","_step$value","editKey","editValue","arrayKey","err","defineProperties","getOwnPropertyDescriptors","_step2","_iterator2","_step2$value","prev","_node$kind","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","leave","enter","kindVisitor","shouldInclude","directive","isInclusionDirective","directiveArguments","directiveName","ifArgument","ifValue","getInclusionDirectives","every","evaledValue","hasDirectives","names","all","nameSet","uniqueCount","size","delete","hasClientExports","serializeFetchParameter","serialized","parseError","canUseWeakMap","WeakMap","navigator","product","canUseWeakSet","WeakSet","canUseSymbol","for","canUseAsyncIteratorSymbol","asyncIterator","createElement","userAgent","nodeStreamIterator","stream","data","waiting","onData","chunk","shiftedArr","shift","pair","onEnd","removeListener","on","readerIterator","reader","read","responseIterator","response","isAsyncIterableIterator","getReader","isReadableStream","isStreamableBlob","arrayBuffer","isBlob","promise","resolved","catch","promiseIterator","pipe","isNodeReadableStream","throwServerError","statusCode","status","parseHeaders","headerText","headersInit","line","name_1","trim","toLowerCase","parseJsonBody","bodyText","parse","getResult","handleError","errors","_b","readJsonBody","text","isWhiteSpace","code","escapedRegExp","escapedReplacer","str","escapeSequences","charCodeAt","print","ast","printDocASTReducer","varDefs","wrap","prefix","block","_ref3","argsLine","indent","_ref4","_ref5","_ref6","typeCondition","_ref7","_ref8","_ref9","_ref10","options","escapedValue","lines","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","endsWith","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","minimize","skipLeadingNewLine","printBlockString","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","description","operationTypes","_ref21","_ref22","_ref23","interfaces","_ref24","hasMultilineItems","_ref25","_ref26","_ref27","types","_ref28","_ref29","_ref30","_ref31","repeatable","locations","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","maybeArray","_maybeArray$filter$jo","separator","start","maybeString","_maybeArray$some","some","fallbackHttpConfig","http","includeQuery","includeExtensions","preserveHeaderCase","headers","accept","defaultPrinter","printer","selectHttpOptionsAndBodyInternal","configs","config","credentials","normalizedHeaders_1","headerData","originalName","normalizedHeaders","removeDuplicateHeaders","fromError","errorValue","backupFetch","fetch","createHttpLink","linkOptions","uri","preferredFetch","useGETForQueries","_c","includeUnusedVariables","requestOptions","fetcher","checkFetcher","linkConfig","fetchOptions","chosenURI","fallbackURI","contextURI","getContext","selectURI","clientAwarenessHeaders","clientAwareness","version","controller","contextHeaders","contextConfig","unusedNames_1","signal","AbortController","createSignalIfSupported","_controller","_d","queryParams","addQueryParam","encodeURIComponent","serializedVariables","serializedExtensions","preFragment","fragmentStart","substr","queryParamsPrefix","newURI","rewriteURIForGET","setContext","ctype","TextDecoder","decoder","contentType","delimiter","boundaryVal","substring","boundary","buffer","running","_f","decode","bi","_e","contentType_1","readMultipartBody","abort","HttpLink","fnToStr","Function","previousComparisons","equal","a","check","clear","aTag","previouslyCompared","aKeys","definedKeys","bKeys","keyCount","k","aIterator","isMap","info","aKey","aValue","Uint8Array","byteLength","aCode","full","suffix","fromIndex","nativeCodeSuffix","isDefinedKey","bSet","add","isNonEmptyArray","mergeDeep","mergeDeepArray","count","merger","DeepMerger","merge","defaultReconciler","property","reconciler","isObject","pastCopies","sourceKey","targetValue","shallowCopyForMerge","getPrototypeOf","isExecutionPatchIncrementalResult","mergeIncrementalData","prevResult","mergedData","incremental","parent_1","isNaN","defaultMakeData","Trie","weakness","makeData","lookup","lookupArray","getChildTrie","isObjRef","weak","strong","child","stringifyCanon","stringifyCache","ObjectCanon","known","pool","passes","keysByJSON","admit","isKnown","isObjectOrArray","pass","shallowCopy","original","proto_1","array_1","sortedKeys","json","firstValueIndex_1","sorted","obj_1","canonicalStringify","resetCanonicalStringify","canonical","reset","asyncMap","mapFn","catchFn","activeCallbackCount","completed","promiseQueue","callback","makeCallback","examiner","delegate","arg","both","caught","sub","graphQLResultHasError","getGraphQLErrorsFromResult","graphQLErrors","incrementalResult","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","fragmentDef","getFragmentDefinition","getDirectiveMatcher","tests","makeInUseGetterFunction","defaultKey","inUse","fragmentSpreads","removeDirectivesFromDocument","getInUseByOperationName","getInUseByFragmentName","getInUse","ancestor","operationCount","directiveMatcher","hasRemoveDirective","shouldRemoveField","nodeDirectives","originalFragmentDefsByPath","firstVisitMadeChanges","fieldOrInlineFragmentVisitor","docWithoutDirectiveSubtrees","_parent","removed","populateTransitiveVars","transitiveVars","childFragmentName","varName","allFragmentNamesUsed","enterVisitor","usedVariableNames_1","varDef","addTypenameToDocument","lastIndexOf","added","connectionRemoveConfig","willRemove","buildQueryFromSelectionSet","prefixCounts","makeUniqueId","random","iterateObserversSafely","observers","argument","observersWithMethod","obs","fixObservableSubclass","subclass","species","isPromiseLike","Concast","addObserver","removeObserver","handlers","latest","notify","nextResultListeners","cancel","reason","iterable","deliverLastMessage","nextOrError","listener","beforeNext","called","NetworkStatus","ApolloError","clientErrors","networkError","errorMessage","extraInfo","generateErrorMessage","isNetworkRequestInFlight","networkStatus","cloneDeep","cloneDeepHelper","val","seen","copy_1","copy_2","compact","objects","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","last","reobserve","tearDownQuery","isTornDown","defaultOptions","watchQuery","fetchPolicy","defaultFetchPolicy","initialFetchPolicy","queryId","generateQueryId","opDef","queryName","transform","removeQuery","getCurrentResult","saveAsLastResult","lastResult","getLastResult","ready","loading","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","observe","updatedQuerySet","fetchQuery","fetchMoreResult","cache","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","clearTimeout","timeout","assumeImmutableResults","useDisposableConcast","oldVariables","oldFetchPolicy","mergedOptions","concast","reportResult","reportError","lastError","errorResult","hasObservers","stopQuery","obsQuery","isSelectionNode","currentContext","MISSING_VALUE","idCounter","ignored","globalKey","globalHost","Slot","Date","now","context_1","slots","getValue","withValue","saved","noContext","defaultDispose","Cache","max","dispose","Infinity","newest","oldest","getNode","older","newer","clean","parentEntrySlot","toArray","collection","maybeUnsubscribe","entryOrDep","emptySetPool","POOL_TARGET_SIZE","assert","optionalMessage","valueGet","Entry","parents","childValues","dirtyChildren","dirty","recomputing","deps","peek","mightBeDirty","rememberParent","recompute","entry","forgetChildren","recomputeNewValue","setDirty","maybeSubscribe","reportClean","setClean","reallyRecompute","reportDirty","eachParent","forgetChild","forget","dependOn","dep","forgetDeps","reportDirtyChild","reportCleanChild","parentCount","parentWasClean","childValue","valueIs","removeDirtyChild","dc","_value","EntryMethods","depsByKey","depend","dep_1","entryMethodName","m_1","makeDefaultMakeCacheKeyFunction","keyTrie","caches","originalFunction","pow","keyArgs","makeCacheKey","dirtyKey","peekKey","forgetKey","getKey","cacheSlot","cacheInfoMap","getCacheInfo","forgetCache","rv","makeVar","listeners","newValue","broadcastWatches","broadcast","oldListeners","attach","onNextChange","attachCache","LocalState","client","resolvers","fragmentMatcher","selectionsToResolveCache","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","serverQuery","removeClientSetsFromDocument","prepareContext","getCacheKey","identify","addExportedVariables","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","rootValue","mainDefinition","selectionsToResolve","collectSelectionsToResolve","definitionOperation","defaultOperationType","charAt","toUpperCase","execContext","resolveSelectionSet","isClientFieldDescendant","resultsToMerge","resolveField","fieldResult","isInlineFragment","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","isClientField","resolveSubSelectedArray","isSingleASTNode","collectByDefinition","definitionNode","matches_1","___","spread","fragmentSelections","destructiveMethodCounts","wrapDestructiveCacheMethod","methodName","cancelNotifyTimeout","QueryInfo","lastRequestId","stopped","observableQuery","init","lastDiff","getDiffOptions","updateWatch","oq","updateLastDiff","canonizeResults","setDiff","oldDiff","notifyTimeout","oqListener","fromOptimisticTransaction","shouldNotify","stop","watchOptions","watcher","lastWatch","lastWrite","shouldWrite","dmCount","markResult","cacheWriteBehavior","hasNext","shouldWriteResult","errorPolicy","performTransaction","overwrite","diffOptions","markReady","markError","ignoreErrors","writeWithErrors","QueryManager","queryDeduplication","onBroadcast","localState","queries","fetchCancelFns","transformCache","queryIdCounter","requestIdCounter","mutationIdCounter","inFlightLinkObservables","mutationStore","_info","stopQueryNoBroadcast","cancelPendingFetches","mutate","mutation","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","_g","keepRootFields","mutationId","generateMutationId","_h","transformForLink","getVariables","markMutationOptimistic","getObservableFromLink","mutationStoreValue","storeResult","markMutationResult","removeOptimistic","cacheWrites","skipCache","dataId","asQuery","updateQueries_1","updater","currentQueryResult","nextQueryResult","mutationResult","queryVariables","results_1","write","isFinalResult","isExecutionPatchInitialResult","modify","DELETE","include","recordOptimisticTransaction","getQueryStore","store","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","hasErrors","aqr","defaults","normalized","fromVariables","concastSources","fetchQueryByPolicy","cleanupCancelFn","updateCache","includedQueriesById","results","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","newContext","mergeOptions","hasSuggestedDevtools","ApolloClient","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","__APOLLO_CLIENT__","typeDefs","clientAwarenessName","clientAwarenessVersion","disableNetworkFetches","resetStore","top","__APOLLO_DEVTOOLS_GLOBAL_HOOK__","nav","ua","url","devToolsHookCb","action","state","mutations","dataWithOptimisticResults","extract","readQuery","readFragment","writeFragment","__actionHookForDevTools","cb","__requestRaw","payload","onResetStore","c","onClearStore","restore","serializedState","setLocalStateFragmentMatcher","setLink","newLink","ApolloCache","getFragmentDoc","updateResult","optimisticId","transaction","gc","rootId","updateFragment","MissingFieldError","deepFreeze","workSet","isFrozen","shallowFreeze","getOwnPropertyNames","maybeDeepFreeze","hasOwn","isNullish","defaultDataIdFromObject","_id","keyObject","defaultConfig","dataIdFromObject","addTypename","resultCaching","shouldCanonizeResults","TypeOrFieldNameRegExp","fieldNameFromStoreName","storeFieldName","match","selectionSetMatchesResult","storeValueIsStoreObject","extractFragmentContext","lookupFragment","delModifier","INVALIDATE","EntityStore","policies","group","rootIds","refs","getFieldValue","objectOrReference","canRead","objOrRef","toReference","objOrIdOrRef","mergeIntoStore","toObject","storeObject","rootTypenamesById","Layer","dependOnExistence","existing","incoming","merged","storeObjectReconciler","caching","fieldsToDirty_1","__exists","hasKeyArgs","changedFields_1","needToMerge_1","allDeleted_1","sharedDetails_1","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","keyMaker","CacheGroup","resetCaching","makeDepKey","maybeDependOnExistenceOfEntity","entityId","supportsResultCaching","Root","seed","stump","Stump","storageTrie","addLayer","layerId","replay","removeLayer","ownStoreObject","parentStoreObject","fromParent","existingObject","incomingObject","existingValue","incomingValue","execSelectionSetKeyArgs","StoreReader","knownResults","canon","executeSelectionSet","peekArgs","other","enclosingRef","execSelectionSetImpl","resultCacheMaxSize","varString","executeSubSelectedArray","execSubSelectedArrayImpl","resetCanon","diffQueryAgainstStore","rootRef","execResult","firstMissing","isFresh","objectsToMerge","missingMerger","handleMissing","resultName","rootIdsByTypename","fragmentMatches","finalResult","frozen","childResult","getTypenameFromStoreObject","assertSelectionSetForIdValue","tree","specifierInfoCache","lookupSpecifierInfo","spec","cacheKey","keyFieldsFnFromSpecifier","specifier","keyFieldsFn","collectSpecifierPaths","schemaKeyPath","extracted","extractKeyPath","extractKey","keyArgsFnFromSpecifier","keyArgsFn","collected","keyPath","firstKey","firstChar","variableName","varKeyPath","directiveName_1","find","directiveArgs","extractor","getSpecifierPaths","toMerge","paths","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","RegExp","policy_1","supertypes","rest","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","argc","undefId","stringifyForDisplay","eType","iType","getContextFlavor","clientOnly","deferred","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","result_1","flattenFields","resultFieldKey","getChildMergeTree","processFieldValue","maybeRecycleChildMergeTree","dataRef","sets","previous_1","mergeMergeTrees","mergeTreeIsEmpty","fieldMap","limitingTrie","flatten","inheritedContext","visitedNode","visited","dir","if","getStorageArgs","e_1","i_1","getValue_1","eVal","iVal","aVal","emptyMergeTreePool","needToMergeMaps","remainingRightKeys_1","leftTree","InMemoryCache","watches","typenameDocumentCache","txCount","normalizeConfig","rootStore","optimisticData","resetResultCache","resetResultIdentities","previousReader","storeReader","storeWriter","maybeBroadcastWatch","broadcastWatch","immediate","idToRemove","newOptimisticData","perform","layer","alreadyDirty","contextKey","ApolloProvider","children","ApolloContext","React","displayName","getApolloContext","Consumer","Provider","queryClient","QueryClient","i18n","lng","fallbackLng","resources","en","translation","fa","_jsx","ImageRotationProvider","AppContext","QueryClientProvider","_jsxs","Router","AnimatedCursor","color","innerSize","outerSize","innerScale","outerScale","outerAlpha","outerStyle","backgroundColor","hideNativeCursor","clickables","I18nextProvider","Layout","ScrollToTop","ScrollToTopButton","Routes","Route","exact","element","Home","MediaAndPress","Team","RoadMap","FAQ","AboutUs","pathname","useLocation","useEffect","scrollTo","ImageRotationContext","createContext","_useState","useState","_useState2","rotateImage","setRotateImage","handleRotateImage","SvgChevronDown2","content","innerRef","parentRef","isExpanded","setIsExpanded","_document","handleClickOutside","current","contains","addEventListener","_document2","removeEventListener","className","styles","onClick","prevState","ChevronDownIcon","dangerouslySetInnerHTML","__html","_ref$type","_ref$text","_ref$variant","variant","clickHandler","isHovered","setIsHovered","toggleHover","STATE","onMouseEnter","onMouseLeave","src","LaunchIconWhite","LaunchIconYellow","alt","_ref$image","image","_ref$title","_ref$subTitle","subTitle","_ref$attributes","attributes","_ref$showCta","showCta","_ref$ctaText","ctaText","lastUpdated","_ref$ctaFunc","ctaFunc","style","attribute","display","isWidth1440","setIsWidth1440","isMobile","innerWidth","isMobile2","isDesktop","launchAppFunc","location","href","footerConfig","useTranslation","handleResize","Link","Logo","socialAddress","rel","require","_Fragment","marginLeft","dropdownLinks","isExternal","Fragment","ExternalLinkIcon","Button","_objectSpread","marginTop","justifyContent","alignItems","marginRight","flexBasis","margin","marginBottom","visibility","SvgChevronDown","SvgTriangle","SvgClose","SvgHamburger","headerRef","useRef","initialHeaderConfig","headerConfig","setHeaderConfig","_useState3","_useState4","isDrawerOpen","setIsDrawerOpen","_useState5","_useState6","isPageScrolled","setIsPageScrolled","_useState7","_useState8","isModalOpen","setIsModalOpen","launchAppLink","toggleActiveOption","headerConfigClone","customCloneDeep","isActive","toggleDrawer","changeHeaderBackground","_headerRef$current","scrollY","clientHeight","toggleModal","overflow","search","getElementsByTagName","CloseIcon","HamburgerIcon","_item$dropdownLinks","innerLinks","innerIndex","debounce","TriangleIcon","frameBorder","allow","allowFullScreen","_regeneratorRuntime","r","u","define","Generator","Context","makeInvokeMethod","tryCatch","h","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","maybeInvokeDelegate","_sent","dispatchException","abrupt","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","mark","awrap","async","reverse","rval","handle","finish","delegateYield","asyncGeneratorStep","gen","_next","_throw","images","setImages","swiperParams","slidesPerView","spaceBetween","allowTouchMove","loop","autoplay","delay","disableOnInteraction","waitForTransition","speed","modules","Autoplay","breakpoints","fetchImages","_callee","myArray","duplicates","_context","default","Swiper","SwiperSlide","isLoading","animationData","LoaderAnimation","rendererSettings","preserveAspectRatio","getElementByTagName","Lottie","isClickToPauseDisabled","mediaAndPressConfig","logo","thumbnail","mediaItem","_images$index","_images$index2","date","SvgArrowUpLong","showButton","setShowButton","showHideButton","ArrowUpLong","specializations","linkedin","avatar","myAvatar","speciality","faqConfig","question","answer","email","address","socialLinks","navigationLinks","homeAnimationTextConfig","position","homeMobileAnimationTextConfig","roadmapConfig","startDate","endDate","teamConfig","ReactGA","ReactDOM","getElementById","render","integrity","crossOrigin","App","reportWebVitals","autoHeight","setAutoHeight","_location$pathname","Header","Footer","isMobileView","useContext","setIsLoading","Loader","Image1","Image2","Image3","Image4","ArrowRight","Image5","Image6","Image7","Image8","Image9","ExternalLink","GPO","GPX","HeroImage","accordionRef","translatedFaqConfig","translatedQuestion","translatedAnswer","ans","returnObjects","Accordion","GPMountainsDesktop","SvgArrowDownCircle","fillRule","clipRule","_useQuery","useQuery","res","load","pricePretty","Intl","NumberFormat","currency","format","price","volumePretty","vol24hr","videoSectionRef","CardStyle1","GPOImage","PawnImage","GPXImage","InfiniteLoopBrandSlider","headerHeight","getBoundingClientRect","pageYOffset","behavior","ArrowDownCircleIcon","frameborder","allowfullscreen","MediaCardsSlider","getIsActive","today","month","getMonth","padStart","year","getFullYear","endDay","getDate","getTime","FounderImage","LinkedInIcon","member","TeamCard","specialization","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","inObject","outObject","func","timer","getConnectionSpeed","startTime","endTime","Image","imageLink","onload","mbps","imageSize","speedInMbps","toFixed","parseFloat","calculateSpeed","_Error","_inherits","_createSuper","_classCallCheck","filename","column","_wrapNativeSuper","_class","end","silent","M","exec","CssTypes","comment","T","V","declaration","j","keyframe","declarations","w","O","keyframes","vendor","media","rules","customMedia","supports","page","selectors","host","fontFace","container","rule","stylesheet","parsingErrors","_class2","level","indentation","compress","charset","import","namespace","emit","mapVisit","compile","exports","Action","ResultType","PopStateEventType","createBrowserHistory","getUrlBasedHistory","globalHistory","_window$location","createLocation","hash","usr","createPath","warning","cond","getHistoryState","idx","parsePath","_ref$pathname","_ref$search","_ref$hash","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","_options2","_options2$window","defaultView","_options2$v5Compat","v5Compat","history","Pop","getIndex","handlePop","nextIndex","delta","createURL","base","origin","URL","replaceState","listen","encodeLocation","Push","historyState","pushState","Replace","go","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","matches","matchRouteBranch","safelyDecodeURI","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","startsWith","joinPaths","computeScore","_route$path","explodeOptionalSegments","exploded","segments","_segments","_toArray","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","params","pathnameBase","normalizePathname","pattern","_compilePath","paramNames","regexpSource","paramName","matcher","compilePath","_compilePath2","captureGroups","memo","splatValue","decodeURIComponent","safelyDecodeURIComponent","decodeURI","startIndex","nextChar","getInvalidPathError","char","dest","getPathContributingMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","_ref3$search","_ref3$hash","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","AbortedDeferredError","isRouteErrorResponse","statusText","internal","validMutationMethodsArr","validRequestMethodsArr","nodeInterop","__esModule","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","_interopRequireWildcard","cacheBabelInterop","cacheNodeInterop","expect","extend","_toBeChecked","toBeChecked","_toBeDisabled","toBeDisabled","_toBeEmpty","toBeEmpty","_toBeEmptyDomElement","toBeEmptyDOMElement","toBeEnabled","_toBeInTheDom","toBeInTheDOM","_toBeInTheDocument","toBeInTheDocument","_toBeInvalid","toBeInvalid","_toBePartiallyChecked","toBePartiallyChecked","_toBeRequired","toBeRequired","toBeValid","_toBeVisible","toBeVisible","_toContainElement","toContainElement","_toContainHtml","toContainHTML","_toHaveAccessibleDescription","toHaveAccessibleDescription","_toHaveAccessibleName","toHaveAccessibleName","_toHaveAttribute","toHaveAttribute","_toHaveClass","toHaveClass","_toHaveDescription","toHaveDescription","_toHaveDisplayValue","toHaveDisplayValue","_toHaveErrormessage","toHaveErrorMessage","_toHaveFocus","toHaveFocus","_toHaveFormValues","toHaveFormValues","_toHaveStyle","toHaveStyle","_toHaveTextContent","toHaveTextContent","_toHaveValue","toHaveValue","_utils","checkHtmlElement","isValidInput","tagName","roleSupportsChecked","getAttribute","toSentence","_ariaQuery","roles","role","lastWordConnector","isChecked","checked","is","utils","matcherHint","isNot","printReceived","cloneNode","_roles$get","isDisabled","isElementOrAncestorDisabled","isEnabled","FORM_TAGS","isElementDisabledByParent","isElementDisabled","getTag","isSameNode","isFirstLegendChildOfFieldset","canElementBeDisabled","isCustomElement","hasAttribute","isAncestorDisabled","parentElement","isEmptyElement","innerHTML","childNodes","nodeType","deprecate","ownerDocument","getRootNode","composed","RECEIVED_COLOR","isInvalid","isElementInvalid","isValid","isHaveAriaInvalid","isElementHavingAriaInvalid","isSupportsValidityMethod","checkValidity","isPartiallyChecked","isAriaMixed","indeterminate","isRequired","isRequiredOnFormTagsExceptInput","UNSUPPORTED_INPUT_TYPES","isRequiredOnSupportedInput","ARIA_FORM_TAGS","SUPPORTED_ARIA_ROLES","isElementRequiredByARIA","isInDocument","isVisible","isElementVisible","previousElement","_getComputedStyle","getComputedStyle","opacity","isStyleVisible","detailsVisibility","nodeName","isAttributeVisible","htmlText","outerHTML","getNormalizedHtml","EXPECTED_COLOR","div","htmlElement","expectedAccessibleDescription","actualAccessibleDescription","_domAccessibilityApi","computeAccessibleDescription","missingExpectedValue","equals","getMessage","expectedAccessibleName","actualAccessibleName","computeAccessibleName","expectedValue","isExpectedValuePresent","receivedValue","receivedAttribute","printAttribute","printExpected","secondArgument","getAttributeComment","_getExpectedClassName","expectedClassNames","lastParam","getExpectedClassNamesAndOptions","received","splitClassNames","expected","isSubset","subset","superset","checkWith","expectsDescription","descriptionIDs","descriptionEls","descriptionID","el","textContent","option","selected","getValues","expectedValues","getExpectedValues","numberOfMatchesWithValues","matchedWithAllValues","matchedWithAllExpectedValues","not","expectsErrorMessage","errormessageIDs","errormessage","errormessageEls","errormessageID","activeElement","_defineProperty","_interopRequireDefault","formElement","elements","formValues","_extends2","getPureName","querySelectorAll","_css","getSingleElementValue","_uniq","theChosenOne","radio","checkbox","getMultiElementValue","getFormValue","_isEqualWith","compareArraysAsSet","commonKeyValues","css","parsedCSS","parseCSS","getStyleDeclaration","computedStyle","prop","getPropertyValue","expectedDiff","_chalk","printoutStyles","diffFn","computedStyles","red","normalizeWhitespace","checkNode","checkingWithEmptyString","expectsValue","expectedTypedValue","receivedTypedValue","_construct","_assertThisInitialized","NodeTypeError","HtmlElementTypeError","_len5","_key5","checkHasWindow","HTMLElement","SVGElement","_len4","_key4","Node","_isEqual","replacementText","expectedLabel","receivedLabel","_redent","inputElement","getInputValue","multiple","selectedOptions","opt","getSelectValue","textToMatch","_cssTools","_ast$parsingErrors$","_len6","_key6","InvalidCSSError","_ref3$wordConnector","wordConnector","_ref3$lastWordConnect","GenericTypeError","expectedString","matcherFn","captureStackTrace","withType","printWithType","_GenericTypeError","_super2","_GenericTypeError2","_super3","ErrorClass","_len3","_key3","_Error2","_super4","colorConvert","wrapAnsi16","offset","wrapAnsi256","wrapAnsi16m","rgb","ansi2ansi","rgb2rgb","setLazyProperty","makeDynamicStyles","targetSpace","identity","isBackground","_Object$entries","_Object$entries$_i","sourceSpace","suite","module","codes","modifier","bold","dim","italic","underline","inverse","hidden","strikethrough","black","green","yellow","blue","magenta","cyan","white","blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright","bgColor","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgBlackBright","bgRedBright","bgGreenBright","bgYellowBright","bgBlueBright","bgMagentaBright","bgCyanBright","bgWhiteBright","gray","bgGray","grey","bgGrey","_i2","_Object$entries2","_Object$entries2$_i","groupName","_i3","_Object$entries3","_Object$entries3$_i","styleName","open","close","_iterationDecorator","_arrayWithHoles","_s","_arr","_n","_iterableToArrayLimit","_nonIterableRest","ariaPropsMap","F","_e2","normalCompletion","didErr","_e3","return","tuple","_default","dom","reserved","domMap","_deepEqual","_rolesMap","elementRoles","concepts","baseConcepts","relatedConcepts","relation","concept","conceptStr","elementRoleRelation","isUnique","elementRoleMap","abstract","accessibleNameRequired","childrenPresentational","nameFrom","prohibitedProps","requireContextRole","requiredContextRole","requiredOwnedElements","requiredProps","superClass","_commandRole","_compositeRole","_inputRole","_landmarkRole","_rangeRole","_roletypeRole","_sectionRole","_sectionheadRole","_selectRole","_structureRole","_widgetRole","_windowRole","_docAbstractRole","_docAcknowledgmentsRole","_docAfterwordRole","_docAppendixRole","_docBacklinkRole","_docBiblioentryRole","_docBibliographyRole","_docBibliorefRole","_docChapterRole","_docColophonRole","_docConclusionRole","_docCoverRole","_docCreditRole","_docCreditsRole","_docDedicationRole","_docEndnoteRole","_docEndnotesRole","_docEpigraphRole","_docEpilogueRole","_docErrataRole","_docExampleRole","_docFootnoteRole","_docForewordRole","_docGlossaryRole","_docGlossrefRole","_docIndexRole","_docIntroductionRole","_docNoterefRole","_docNoticeRole","_docPagebreakRole","_docPagelistRole","_docPartRole","_docPrefaceRole","_docPrologueRole","_docPullquoteRole","_docQnaRole","_docSubtitleRole","_docTipRole","_docTocRole","_graphicsDocumentRole","_graphicsObjectRole","_graphicsSymbolRole","_alertRole","_alertdialogRole","_applicationRole","_articleRole","_bannerRole","_blockquoteRole","_buttonRole","_captionRole","_cellRole","_checkboxRole","_codeRole","_columnheaderRole","_comboboxRole","_complementaryRole","_contentinfoRole","_definitionRole","_deletionRole","_dialogRole","_directoryRole","_documentRole","_emphasisRole","_feedRole","_figureRole","_formRole","_genericRole","_gridRole","_gridcellRole","_groupRole","_headingRole","_imgRole","_insertionRole","_linkRole","_listRole","_listboxRole","_listitemRole","_logRole","_mainRole","_marqueeRole","_mathRole","_menuRole","_menubarRole","_menuitemRole","_menuitemcheckboxRole","_menuitemradioRole","_meterRole","_navigationRole","_noneRole","_noteRole","_optionRole","_paragraphRole","_presentationRole","_progressbarRole","_radioRole","_radiogroupRole","_regionRole","_rowRole","_rowgroupRole","_rowheaderRole","_scrollbarRole","_searchRole","_searchboxRole","_separatorRole","_sliderRole","_spinbuttonRole","_statusRole","_strongRole","_subscriptRole","_superscriptRole","_switchRole","_tabRole","_tableRole","_tablistRole","_tabpanelRole","_termRole","_textboxRole","_timeRole","_timerRole","_toolbarRole","_tooltipRole","_treeRole","_treegridRole","_treeitemRole","constraints","roleElements","aria","_ariaPropsMap","_domMap","_elementRoleMap","_roleElementMap","roleElement","_loop","roleElementRelation","relationConcepts","roleElementMap","_ariaAbstractRoles","_ariaLiteralRoles","_ariaDpubRoles","_ariaGraphicsRoles","roleDefinition","superClassName","superClassRoleTuple","superClassDefinition","_Object$keys","rolesMap","_step3","_iterator3","_step3$value","_typeof","_iteratorProxy","iter","instance","_defineProperty2","_assign","_assign2","_setPrototypeOf2","_create2","_typeof3","subClass","_typeof2","ReferenceError","_symbol2","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","applyBind","ansiStyles","_require","stdoutColor","stdout","stderrColor","stderr","_require2","stringReplaceAll","stringEncaseCRLFWithFirstIndex","levelMapping","ChalkClass","chalkFactory","chalk","colorLevel","applyOptions","template","arguments_","chalkTag","Chalk","Instance","builder","createBuilder","createStyler","_styler","_isEmpty","visible","usedModels","_loop2","model","_usedModels","_ansiStyles$color$lev","styler","_loop3","_usedModels2","bgModel","_ansiStyles$bgColor$l","_generator","openAll","closeAll","applyStyle","string","_styler2","lfIndex","strings","firstString","parts","raw","supportsColor","Level","None","Basic","Ansi256","TrueColor","TEMPLATE_REGEX","STYLE_REGEX","STRING_REGEX","ESCAPE_REGEX","ESCAPES","unescape","bracket","fromCharCode","parseInt","fromCodePoint","parseArguments","chunks","number","escape","character","parseStyle","lastIndex","buildStyle","enabled","_current","temporary","escapeCharacter","errMsg","replacer","substringLength","endIndex","returnValue","postfix","gotCR","cssKeywords","reverseKeywords","convert","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","_Object$keys2","_convert$model","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","_Object$keys3","distance","z","t2","t3","t1","smin","lmin","hi","floor","q","sl","vmin","wh","bl","ratio","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","round","ansi","mult","rem","colorString","integer","hue","chroma","mg","pure","conversions","fromModel","toModel","wrappedFn","arg0","conversion","wrapRounded","wrapRaw","deriveBFS","graph","models","buildGraph","adjacents","adjacent","unshift","wrapConversion","cur","$Object","D","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","core","__e","aFunction","that","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","ctx","hide","PROTOTYPE","$export","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","virtual","R","U","__g","dP","createDesc","documentElement","cof","setToStringTag","IteratorPrototype","NAME","LIBRARY","redefine","Iterators","$iterCreate","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","KEY","NEED","fastKey","getWeak","onFreeze","DESCRIPTORS","IObject","$assign","A","K","aLen","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","lt","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","gOPD","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","ObjectProto","arrayIndexOf","fails","exp","bitmap","buggy","stat","shared","uid","SHARED","mode","copyright","toInteger","defined","TO_STRING","pos","ceil","valueOf","px","wksExt","$Symbol","USE_SYMBOL","addToUnscopables","iterated","_t","_k","Arguments","$getPrototypeOf","$at","point","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","$replacer","TO_STRING_TAG","DOMIterables","Collection","CSS","cssEscape","codeUnit","firstCodeUnit","factory","callBound","flags","getIterator","getSideChannel","isArguments","isArrayBuffer","isDate","isRegex","isSharedArrayBuffer","objectKeys","whichBoxedPrimitive","whichCollection","whichTypedArray","ab","sabByteLength","$getTime","gPO","$objToString","$Set","$mapHas","$mapGet","$mapSize","$setAdd","$setDelete","$setHas","$setSize","setHasEqualElement","val1","opts","channel","internalDeepEqual","findLooseMatchingPrimitives","prim","mapMightHaveLoosePrim","altValue","curB","looseOpts","strict","setMightHaveLoosePrim","mapHasEqualEntry","key1","item1","key2","actual","sentinel","hasActual","hasExpected","aIsArray","bIsArray","aIsError","bIsError","aIsRegex","bIsRegex","aIsDate","bIsDate","aWhich","bWhich","aIsBuffer","isBuffer","bIsBuffer","aIsArrayBuffer","bIsArrayBuffer","aIsSAB","bIsSAB","ka","kb","aCollection","bCollection","resultA","resultB","iA","iB","setEquiv","item2","mapEquiv","objEquiv","toStr","origDefineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","predicates","isCallable","list","receiver","forEachArray","forEachString","forEachObject","bound","boundLength","boundArgs","implementation","functionsHaveNames","functionsHaveConfigurableNames","$bind","boundFunctionsHaveNames","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","Proxy","RangeError","Reflect","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakRef","errorProto","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","intrinsicName","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","$BigInt","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","symObj","syms","includeEmptyLines","regex","repeat","SLOT","slot","hasToStringTag","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","isTypedArray","$ArrayBuffer","$Float32Array","$byteLength","abSlice","$abSlice","bigIntValueOf","tryBigInt","$boolToStr","tryBooleanObject","badArrayLike","isCallableMarker","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","getDay","tryDateObject","exported","$Map","numToStr","tryNumberObject","isRegexMarker","badStringifier","throwRegexMarker","strValue","tryStringObject","symToStr","symStringRegex","isSymbolObject","availableTypedArrays","typedArrays","$slice","toStrTags","typedArray","superProto","anyTrue","getter","tryTypedArrays","$WeakMap","$WeakSet","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","resIndex","baseIndexOf","comparator","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","eq","fromRight","arrayPush","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","isFunction","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","isPrototype","nativeKeys","iteratee","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","isCommon","computed","seenIndex","coreJsData","noop","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolProto","symbolValueOf","byteOffset","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","freeGlobal","baseGetAllKeys","isKeyable","baseIsNative","nativeObjectToString","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","nativeCreate","reIsUint","maskSrcKey","assocIndexOf","getMapData","overArg","freeExports","freeModule","freeProcess","nodeUtil","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","baseIsArguments","stubFalse","Buffer","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayLikeKeys","baseKeys","isArrayLike","baseUniq","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","destination","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","abs","absArr","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","Blob","blob","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","responseText","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","send","completeData","animation","event","onComplete","createProcess","loadAnimation","processId","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","keysCount","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","wrapper","animType","RendererClass","globalData","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","fileName","trigger","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","innerText","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_release","_length","_maxLength","newElement","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quat","qx","qy","qz","qw","heading","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","c1","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","queryString","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","prevIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","sc","getCharData","_char","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","getType","prepareProperties","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","descElement","descId","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","CVContextData","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","popTransform","popped","popOpacity","getTransform","getOpacity","setOpacity","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","CVEffects","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","exitLayer","forceRealStack","ctxTransform","ctxOpacity","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","cProps","trProps","currentOpacity","globalAlpha","actionFlag","containerStyle","mozTransformOrigin","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","textPath","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","fromComp","sampleImage","transformInterface","toComp","anchorPointDescriptor","hasParent","anchor_point","active","inPoint","outPoint","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_prevValue","_sourceText","sourceText","stringValue","fillColor","_typeof$2","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","_typeof$1","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","typ","mixkey","smear","stringseed","tostring","shortseed","entropy","randomBytes","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","is_math_call","initialize$2","propTypes","SHAPE","ExpressionManager","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","dimensions","sigmaX","sigmaY","edgeMode","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","functionToString","$match","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","symToString","hasShammedSymbols","isEnumerable","addNumericSeparator","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","isRegExp","inspect_","maxStringLength","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","attrs","xs","singleLineValues","indentedJoin","isError","cause","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","ys","isPlainObject","protoTag","stringTag","trailer","lowbyte","lineJoiner","symMap","numberIsNaN","getPolyfill","shim","polyfill","keysShim","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","$push","$propIsEnumerable","originalGetSymbols","source1","nextKey","propValue","lacksProperEnumerationOrder","thrower","assignHasPendingExceptions","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","checkPropTypes","PropTypes","_interopDefaultLegacy","ReactPropTypesSecret_1","hasRequiredReactPropTypesSecret","factoryWithThrowingShims","hasRequiredFactoryWithThrowingShims","React__default","requireReactPropTypesSecret","requireFactoryWithThrowingShims","useEventListener","savedHandler","eventListener","IsDevice","Android","BlackBerry","IEMobile","iOS","iPad","maxTouchPoints","OperaMini","CursorCore","innerStyle","_ref$color","_ref$outerAlpha","_ref$innerSize","_ref$outerSize","_ref$outerScale","_ref$innerScale","_ref$trailingSpeed","trailingSpeed","_ref$clickables","cursorOuterRef","cursorInnerRef","requestRef","previousTimeRef","_React$useState","_React$useState2","coords","setCoords","_React$useState3","_React$useState4","setIsVisible","_React$useState5","_React$useState6","setIsActive","_React$useState7","_React$useState8","isActiveClickable","setIsActiveClickable","endX","endY","onMouseMove","useCallback","clientX","clientY","animateOuterCursor","cancelAnimationFrame","onMouseDown","onMouseUp","onMouseEnterViewport","onMouseLeaveViewport","clickableEls","cursor","cursorInner","zIndex","borderRadius","pointerEvents","transition","cursorOuter","willChange","aa","ca","ea","ha","ia","ja","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","construct","Pa","Qa","$$typeof","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","bb","db","eb","defaultSelected","disabled","gb","hb","ib","jb","lb","mb","nb","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","area","br","embed","input","keygen","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","locale","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","password","range","tel","week","oe","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","pf","qf","rf","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","bh","eventTime","lane","dh","eh","gh","hh","ih","jh","Component","kh","nh","isMounted","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","th","uh","vh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","qi","ri","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","autoFocus","createTextNode","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","_internalRoot","nl","ol","pl","ql","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","titleCase","redactingEmail","_str","smallWords","mightBeEmail","redacted","redactEmail","GA4","_gtag","_format","_excluded2","_excluded3","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","ownKeys","enumerableOnly","_x","_r","_toPropertyKey","hint","_toPrimitive","isInitialized","_testMode","_currentMeasurementId","_hasLoadedGA","_isQueuing","_queueGtag","GA_MEASUREMENT_ID","nonce","gtagUrl","script","dataLayer","gtag","gaOptions","mapFields","cookieUpdate","cookieExpires","cookieDomain","cookieFlags","userId","clientId","anonymizeIp","contentGroup1","contentGroup2","contentGroup3","contentGroup4","contentGroup5","allowAdFeatures","allowAdPersonalizationSignals","nonInteraction","hitCallback","initConfigs","trackingId","gtagOptions","_options$testMode","testMode","_loadGA","mergedGtagOptions","_toGtagOptions","queues","fieldsObject","_gaCommand","eventCategory","eventAction","eventLabel","eventValue","event_category","event_label","non_interaction","_gaCommandSendEvent","_args$","hitType","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","page_path","page_title","page_location","_gaCommandSendPageview","_args$2","_gaCommandSendEventParameters","_gaCommandSendPageviewParameters","_gaCommandSendTiming","command","_gaCommandSend","_gaCommandSet","_len7","_key7","readyCallback","ga","optionsOrName","category","transport","fieldObject","_window","_ga","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","_React$Component","_temp","_ret","handleClickToPause","_props","eventListeners","registerEvents","nextProps","deRegisterEvents","isStopped","_props2","ariaRole","getSize","initial","lottieStyles","outline","onClickHandler","tabIndex","focusManager","_Subscribable","FocusManager","onFocus","isServer","_inheritsLoose","_proto","onSubscribe","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","focused","setFocused","isFocused","visibilityState","Subscribable","logger","getLogger","setLogger","newLogger","NotifyManager","transactions","notifyFn","batchNotifyFn","flush","schedule","scheduleMicrotask","batchCalls","setNotifyFunction","setBatchNotifyFunction","notifyManager","onlineManager","OnlineManager","onOnline","online","setOnline","isOnline","onLine","Query","abortSignalConsumed","hadObservers","queryKey","queryHash","initialState","getDefaultState","scheduleGc","_this$options$cacheTi","cacheTime","setDefaultOptions","clearGcTimeout","isValidTimeout","gcTimeout","optionalRemove","isFetching","_this$options$isDataE","_this$options","prevData","functionalUpdate","isDataEqual","structuralSharing","replaceEqualDeep","dataUpdatedAt","updatedAt","setState","setStateOptions","_this$retryer","retryer","isStale","isInvalidated","isStaleByTime","staleTime","timeUntilStale","_this$retryer2","shouldFetchOnWindowFocus","continue","_this$retryer3","shouldFetchOnReconnect","isTransportCancelable","revert","cancelRetry","getObserversCount","invalidate","_this$options$behavio","_context$fetchOptions","_abortController$abor","cancelRefetch","_this$retryer4","continueRetry","queryFn","ensureQueryKeyArray","abortController","getAbortController","queryFnContext","pageParam","_this$options$behavio2","_context$fetchOptions2","fetchFn","onFetch","revertState","fetchMeta","Retryer","onSuccess","isCancelledError","onFail","onPause","onContinue","retry","retryDelay","onQueryUpdate","initialData","initialDataUpdatedAt","hasData","dataUpdateCount","errorUpdateCount","errorUpdatedAt","fetchFailureCount","_action$meta","_action$dataUpdatedAt","QueryCache","queriesMap","build","_options$queryHash","hashQueryKeyByOptions","defaultQueryOptions","getQueryDefaults","queryInMap","getAll","arg1","arg2","parseFilterArgs","matchQuery","findAll","Mutation","mutationCache","failureCount","restored","onMutate","executeMutation","onSettled","_this$options$retry","mutationFn","onMutationUpdate","MutationCache","defaultMutationOptions","mutationKey","getMutationDefaults","matchMutation","resumePausedMutations","pausedMutations","getNextPageParam","pages","getPreviousPageParam","queryCache","queryDefaults","mutationDefaults","mount","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","fetching","isMutating","getQueryData","_this$queryCache$find","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","parsedOptions","parseQueryArgs","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","arg3","_parseFilterArgs3","refetchFilters","cancelQueries","_parseFilterArgs4","_parseFilterArgs4$","cancelOptions","promises","invalidateQueries","_filters$refetchActiv","_filters$refetchInact","_parseFilterArgs5","refetchActive","inactive","refetchInactive","_parseFilterArgs6","refetchPage","throwOnError","prefetchQuery","fetchInfiniteQuery","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","pageParams","abortSignal","newPageParams","cancelled","buildNewPages","fetchPage","manual","queryFnResult","isCancelable","_manual","_param","shouldFetchFirstPage","_param2","finalPromise","prefetchInfiniteQuery","cancelMutations","_this7","getMutationCache","getDefaultOptions","setQueryDefaults","hashQueryKey","_this$queryDefaults$f","partialMatchKey","setMutationDefaults","_this$mutationDefault","_defaulted","defaultQueryObserverOptions","defaultRetryDelay","CancelledError","cancelFn","continueFn","promiseResolve","promiseReject","isResolved","outerResolve","outerReject","run","promiseOrValue","_unused","_config$retry","_config$retryDelay","shouldRetry","sleep","continueResolve","isQueryKey","stale","queryStatusFilter","mapQueryStatusFilter","queryKeyHashFn","asArray","partialDeepEqual","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","prot","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","_ref$contextSharing","QueryObserver","trackedProps","selectError","bindMethods","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOn","refetchOnReconnect","refetchOnWindowFocus","clearTimers","notifyOptions","prevOptions","prevQuery","mounted","shouldFetchOptionally","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","createResult","currentResult","trackResult","trackedResult","trackProp","useErrorBoundary","suspense","getNextResult","getCurrentQuery","fetchOptimistic","clearStaleTimeout","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","clearRefetchInterval","refetchIntervalId","refetchIntervalInBackground","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","isPlaceholderData","optimisticResults","fetchOnMount","fetchOptionally","keepPreviousData","isSuccess","select","selectFn","selectResult","placeholderData","isIdle","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsExclusions","includedProps","typedKey","isIncluded","isExcluded","defaultNotifyOptions","_this8","retryOnMount","shouldLoadOnMount","refetchOnMount","createValue","_isReset","clearReset","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","Observer","mountedRef","forceUpdate","errorResetBoundary","_useErrorBoundary","useBaseQuery","BrowserRouter","historyRef","navigationType","isBrowser","ABSOLUTE_URL_REGEX","absoluteHref","relative","reloadDocument","preventScrollReset","UNSAFE_NavigationContext","currentUrl","targetUrl","protocol","useHref","internalOnClick","replaceProp","navigate","useNavigate","useResolvedPath","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","DataRouterHook","DataRouterStateHook","checkIfSnapshotChanged","inst","latestGetSnapshot","prevValue","DataRouterContext","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","RouteErrorContext","useInRouterContext","UNSAFE_invariant","_React$useContext","_useResolvedPath","joinedPathname","_React$useContext2","routePathnamesJson","UNSAFE_getPathContributingMatches","activeRef","_temp2","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","useCurrentRouteId","useRouteError","lightgrey","preStyles","padding","RenderErrorBoundary","errorInfo","routeContext","RenderedRoute","dataRouterContext","static","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_renderMatches","parentMatches","dataRouterState","renderedMatches","errorIndex","findIndex","reduceRight","getChildren","hookName","useRouteContext","thisRoute","AwaitRenderStatus","_ref4$basename","basenameProp","_ref4$children","locationProp","_ref4$navigationType","_ref4$static","staticProp","navigationContext","_locationProp","_locationProp$pathnam","_locationProp$search","_locationProp$hash","_locationProp$state","_locationProp$key","locationContext","trailingPathname","dataRouterStateContext","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","useRoutes","router","createRoutesFromChildren","neverSettledPromise","treePath","loader","hasErrorBoundary","shouldRevalidate","lazy","__self","__source","jsx","jsxs","_status","_result","Children","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","startTransition","unstable_act","stripIndent","indentString","hasIndices","ignoreCase","multiline","dotAll","unicode","sticky","flagsBound","calls","TypeErr","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","$weakMapGet","$weakMapSet","$weakMapHas","$mapSet","listGetNode","curr","$wm","$m","$o","listGet","listHas","listSet","$StopIteration","StopIteration","origIterator","siIterator","minIndent","foundName","webpackAsyncContext","req","__webpack_require__","webpackContext","webpackContextResolve","arrayLikeToArray","isNativeReflectConstruct","toPropertyKey","unsupportedIterableToArray","possibleConstructorReturn","Derived","hasNativeReflectConstruct","Super","NewTarget","_getPrototypeOf","_isNativeReflectConstruct","assertThisInitialized","_setPrototypeOf","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","isNativeFunction","Class","_cache","Wrapper","possibleNames","_accessibleDescription","_accessibleName","_getRole","_isInaccessible","_exportNames","getStopIterationIterator","$iterator","$arrayPush","$charCodeAt","$stringSlice","getArrayIterator","arraylike","getNonCollectionIterator","noPrimordialCollections","advanceStringIndex","$mapForEach","$setForEach","versions","$mapIterator","$setIterator","$mapAtAtIterator","$setAtAtIterator","getCollectionIterator","_objectSpread2","_possibleConstructorReturn","queryIdRefs","computeTextAlternative","compute","maxSafeInteger","arrayFrom","arrayLike","kValue","SetLike","previousLength","callbackfn","hasAbstractRole","hasAnyConcreteRoles","querySelectorAllSubtree","ArrayFrom","getTextualContent","isLabelableElement","localName","getLocalName","findLabelableElement","labelableElement","childNode","descendantLabelableElement","getControlOfLabel","control","htmlFor","consultedNodes","safeWindow","_options$compute","_options$computedStyl","computedStyleSupportsPseudoElements","_options$getComputedS","_options$hidden","computeMiscTextAlternative","accumulatedText","beforeContent","isHTMLSlotElement","assignedNodes","getSlotContents","isEmbeddedInLabel","isReferenced","recursion","afterContent","useAttribute","getAttributeNode","computeElementTextAlternative","isHTMLFieldSetElement","isHTMLLegendElement","isHTMLTableElement","_children","_child","isHTMLTableCaptionElement","isSVGSVGElement","_children2","_child2","isSVGTitleElement","nameFromAlt","isHTMLOptGroupElement","nameFromLabel","isHTMLInputElement","nameFromValue","labelsProperty","getLabels","_nameFromAlt","nameFromTitle","nameFromSubTree","getComputedStyleImplementation","labelAttributeNode","labelElements","listbox","skipToStep2E","isMarkedPresentational","elementTextAlternative","isHTMLSelectElement","selectedOption","isHTMLTextAreaElement","allowsNameFromContent","isNativeHostLanguageTextAlternativeElement","accumulatedText2F","TEXT_NODE","tooltipAttributeValue","computeTooltipAttributeValue","_element$localName","localNameToRoleMappings","article","aside","datalist","details","dialog","dt","fieldset","figure","footer","h3","h4","h5","h6","header","html","legend","main","menu","optgroup","output","progress","section","summary","tbody","textarea","tfoot","thead","prohibitedAttributes","caption","deletion","emphasis","generic","insertion","paragraph","presentation","subscript","superscript","ignorePresentationalRole","implicitRole","_prohibitedAttributes","hasGlobalAriaAttributes","getRole","explicitRole","getExplicitRole","mappedByTag","getImplicitRole","isInaccessible","_element$ownerDocumen","_options$isSubtreeIna","isSubtreeInaccessible","isSubtreeInaccessibleImpl","currentElement","_element$ownerDocumen2","_options$getComputedS2","ELEMENT_NODE","ownerSVGElement","isSVGElement","ownKeys$6","_objectSpread$6","consoleLogger","Logger","concreteLogger","debugOnly","moduleName","baseLogger","EventEmitter","events","defer","rej","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","_getLastOfPath","_getLastOfPath3","deepExtend","regexEscape","_entityMap","isIE10","userAgentData","deepFind","keySeparator","mix","joinedPath","ownKeys$5","_objectSpread$5","_createSuper$3","sham","_isNativeReflectConstruct$3","ResourceStore","_EventEmitter","ns","defaultNS","ignoreJSONStructure","addNamespaces","addResource","deep","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$4","_objectSpread$4","_createSuper$2","_isNativeReflectConstruct$2","checkedLoadedFor","Translator","services","language","interpolation","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","nestBef","skipOnVariables","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","hasLoadedNamespace","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","PluralResolver","compatibilityJSON","PluralRules","numbers","plurals","createRules","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","prepend","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","deepFindWithDefaults","getPathWithDefaults","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","ownKeys$2","_objectSpread$2","createCachedFormatter","formatter","Formatter","formats","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$1","_objectSpread$1","_createSuper$1","_isNativeReflectConstruct$1","Connector","backend","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","languages","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","wait","resolver","queueLoad","loadOne","prepareLoading","fallbackValue","isUpdate","clb","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","I18n","external","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","_this2$store","_this2$store2","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","keyPrefix","fixedT","resultKey","_this$translator","_this$translator2","exists","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","_console","alreadyWarned","warnOnce","off","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","i18nInstance","I18nContext","ReportNamespaces","usedNamespaces","usePrevious","ignore","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","retNotReady","react","i18nOptions","addUsedNamespaces","oldI18nextHasLoadedNamespace","getT","nsMode","setT","joinedNS","previousJoinedNS","boundReset","isInitial","noExtend","__swiper__","needsNavigation","navigation","nextEl","prevEl","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","classes","unique","paramsList","calcLoopedSlides","slides","slidesPerViewParams","breakpoint","breakpointOnlyParams","loopedSlides","loopAdditionalSlides","loopedSlidesLimit","isChildSwiperSlide","processChildren","slide","foundSlides","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","swiper","passedParams","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","useIsomorphicLayoutEffect","SwiperSlideContext","SwiperContext","externalElRef","_ref$tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","splitEvents","_emitClasses","allowedParams","plainObj","getParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","initSwiper","SwiperCore","loopCreate","loopDestroy","extendWith","renderExternal","renderExternalUpdate","originalParams","emitSlidesClasses","mountSwiper","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateSlides","updateProgress","updateSlidesClasses","parallax","isHorizontal","rtlTranslate","renderVirtual","modifiedSlides","duplicateSlide","slideDuplicateClass","loopFillGroupWithBlank","blankSlidesNum","slidesPerGroup","blankSlide","slideClass","slideBlankClass","prependSlides","appendSlides","renderLoop","externalRef","_ref$className","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","classNames","getSlideClasses","slideData","isDuplicate","isPrev","isNext","renderChildren","ssrDocument","blur","querySelector","createEvent","initEvent","importNode","hostname","getDocument","ssrWindow","back","CustomEvent","matchMedia","getWindow","win","Dom7","_Array","makeReactive","arrayFlat","$","selector","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len14","_key14","Methods","addClass","_el$classList","classList","removeClass","_el$classList2","hasClass","toggleClass","toggle","attrName","removeAttr","transitionDuration","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","dom7proxy","_len9","_key9","evt","dataIndex","transitionEnd","fireCallBack","outerWidth","includeMargins","outerHeight","clientTop","clientLeft","scrollX","each","compareWith","webkitMatchesSelector","msMatchesSelector","returnIndex","newChild","tempDiv","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","closest","foundElements","support","deviceCached","nextTick","getTranslate","curTransform","transformMatrix","axis","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","nextSource","keysArray","setCSSProperty","varValue","animateCSSModeScroll","targetPosition","side","startPosition","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","animate","easeProgress","currentPosition","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","getDevice","platform","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","calcDevice","getBrowser","isWebView","calcBrowser","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","$el","clientWidth","isVertical","getDirectionLabel","getDirectionPropertyValue","$wrapperEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","centeredSlides","cssMode","slideSize","gridEnabled","grid","rows","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","byController","previousTranslate","translateTo","runCallbacks","translateBounds","animating","preventInteractionOnTransition","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","transitionEmit","transitionStart","slideTo","indexAsNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","prevSnapIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","slideToIndex","$selector","blankNode","onTouchStart","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","closestElement","allowClick","swipeHandler","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","paused","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","move","updateOnWindowResize","attachEvents","detachEvents","isGridEnabled","_swiper$loopedSlides","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","containerEl","innerHeight","minRatio","_points$i","addClasses","suffixes","resultClasses","prepareClasses","removeClasses","initialSlide","resizeObserver","simulateTouch","uniqueNavElements","updateOnImagesReady","wrapperClass","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","moving","isLocked","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","onerror","imagesToLoad","currentSrc","extendedDefaults","swipers","newParams","_swiper$modules","__modules__","extendParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","getWrapperSelector","getWrapper","deleteInstance","cleanStyles","deleteProps","newDefaults","installModule","prototypeGroup","protoMethod","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","MutationObserver","WebkitMutationObserver","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","onTransitionEnd","onVisibilityChange","pauseOnMouseEnter","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","amdO","leafPrototypes","chunkId","miniCssF","inProgress","dataWebpackPrefix","needAttach","nc","onScriptComplete","doneFns","head","nmd","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}