{"version":3,"file":"vendor.d2d6570d18da85ed4f56.bundle.js","mappings":"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AAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,I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","sources":["webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/account/CcsCredential.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/utils/MathUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/cache/AsyncMemoryStorage.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/crypto/ICrypto.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/error/ServerError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/request/ScopeSet.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/account/AuthToken.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/CacheManager.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/utils/TimeUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/AuthorityOptions.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/url/UrlString.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/packageMetadata.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/network/INetworkModule.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/network/FetchClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/network/XhrClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/packageMetadata.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/event/EventHandler.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/network/NetworkManager.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/client/BaseClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/request/RequestValidator.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/response/ResponseHandler.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/Authority.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/utils/PopupUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_handler/PopupHandler.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/config/Configuration.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/cache/TokenCache.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/HybridSpaAuthorizationCodeClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/SilentAuthCodeClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/app/ClientApplication.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/event/EventType.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/_virtual/_tslib.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/account/ClientInfo.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/authority/AuthorityType.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/error/AuthError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/error/ClientAuthError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/logger/Logger.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/utils/Constants.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-common/dist/utils/StringUtils.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/app/IPublicClientApplication.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-browser/dist/event/EventMessage.js","webpack://gulfwinds.customerapp/./node_modules/@azure/msal-react/dist/msal-react.esm.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/extends.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/cache/dist/cache.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/utils/dist/utils.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/core/dist/emotion-element-04d85134.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/core/dist/core.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/css/dist/css.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/serialize/dist/serialize.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/sheet/dist/sheet.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/millisecond.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/second.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/minute.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/utcMinute.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/hour.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/utcHour.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/month.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/utcMonth.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/axes/dist/nivo-axes.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/array.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/stack.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/annotations/dist/nivo-annotations.esm.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/bar/dist/nivo-bar.esm.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/colors/dist/nivo-colors.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/basis.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/noop.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/bundle.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/cardinal.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/math.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/monotone.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/natural.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/step.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/order/ascending.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/order/appearance.js","webpack://gulfwinds.customerapp/./node_modules/d3-hierarchy/src/treemap/dice.js","webpack://gulfwinds.customerapp/./node_modules/d3-hierarchy/src/treemap/slice.js","webpack://gulfwinds.customerapp/./node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://gulfwinds.customerapp/./node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/array.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/date.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/number.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/object.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/string.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/numberArray.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/value.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/core/dist/nivo-core.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/order/descending.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/order/insideOut.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/order/reverse.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/offset/expand.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/offset/silhouette.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/offset/wiggle.js","webpack://gulfwinds.customerapp/./node_modules/d3-hierarchy/src/treemap/binary.js","webpack://gulfwinds.customerapp/./node_modules/d3-hierarchy/src/treemap/sliceDice.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/legends/dist/nivo-legends.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-path/src/path.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/point.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/line.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/nice.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/log.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/duration.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/interval.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/millisecond.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/second.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/minute.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/hour.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/day.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/week.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/month.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/year.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/utcMinute.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/utcHour.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/utcDay.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/utcWeek.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/utcMonth.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/utcYear.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time/src/ticks.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time-format/src/locale.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-time-format/src/defaultLocale.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/time.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/scales/dist/nivo-scales.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/utcTime.js","webpack://gulfwinds.customerapp/./node_modules/delaunator/index.js","webpack://gulfwinds.customerapp/./node_modules/d3-delaunay/src/path.js","webpack://gulfwinds.customerapp/./node_modules/d3-delaunay/src/polygon.js","webpack://gulfwinds.customerapp/./node_modules/d3-delaunay/src/voronoi.js","webpack://gulfwinds.customerapp/./node_modules/d3-delaunay/src/delaunay.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/voronoi/dist/nivo-voronoi.esm.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/line/dist/nivo-line.esm.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/area.js","webpack://gulfwinds.customerapp/./node_modules/@nivo/tooltip/dist/nivo-tooltip.esm.js","webpack://gulfwinds.customerapp/./node_modules/axios/index.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/adapters/xhr.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/axios.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/cancel/Cancel.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/cancel/CancelToken.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/cancel/isCancel.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/Axios.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/InterceptorManager.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/buildFullPath.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/createError.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/dispatchRequest.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/enhanceError.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/mergeConfig.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/settle.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/core/transformData.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/defaults.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/bind.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/buildURL.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/combineURLs.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/cookies.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/helpers/spread.js","webpack://gulfwinds.customerapp/./node_modules/axios/lib/utils.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/core-js/object/create.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/core-js/symbol.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/helpers/createClass.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/helpers/inherits.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/helpers/typeof.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://gulfwinds.customerapp/./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://gulfwinds.customerapp/./node_modules/base64-js/index.js","webpack://gulfwinds.customerapp/./node_modules/buffer/index.js","webpack://gulfwinds.customerapp/./node_modules/call-bind/callBound.js","webpack://gulfwinds.customerapp/./node_modules/call-bind/index.js","webpack://gulfwinds.customerapp/./node_modules/classnames/index.js","webpack://gulfwinds.customerapp/./node_modules/d3-array/src/ascending.js","webpack://gulfwinds.customerapp/./node_modules/d3-array/src/bisector.js","webpack://gulfwinds.customerapp/./node_modules/d3-array/src/ticks.js","webpack://gulfwinds.customerapp/./node_modules/d3-color/src/color.js","webpack://gulfwinds.customerapp/./node_modules/d3-color/src/math.js","webpack://gulfwinds.customerapp/./node_modules/d3-color/src/cubehelix.js","webpack://gulfwinds.customerapp/./node_modules/d3-color/src/define.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatDecimal.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatSpecifier.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatRounded.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatTypes.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/identity.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/locale.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/defaultLocale.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatGroup.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatNumerals.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/formatTrim.js","webpack://gulfwinds.customerapp/./node_modules/d3-format/src/exponent.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/color.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/constant.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/cubehelix.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/basis.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/rgb.js","webpack://gulfwinds.customerapp/./node_modules/d3-interpolate/src/basisClosed.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Accent.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Dark2.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Paired.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Set1.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Set2.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/categorical/category10.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/colors.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/BrBG.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/PRGn.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/PiYG.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/PuOr.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/RdBu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/RdGy.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/diverging/Spectral.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/ramp.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatPrefixAuto.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatRounded.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatTypes.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/identity.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/locale.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/defaultLocale.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatGroup.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatNumerals.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatTrim.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/exponent.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatDecimal.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/formatSpecifier.js","webpack://gulfwinds.customerapp/./node_modules/d3-array/src/range.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/band.js","webpack://gulfwinds.customerapp/./node_modules/d3-array/src/bisect.js","webpack://gulfwinds.customerapp/./node_modules/d3-array/src/number.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-color/src/define.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-color/src/color.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/basis.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/constant.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/color.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/rgb.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/array.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/date.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/number.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/object.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/basisClosed.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/string.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/numberArray.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/value.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-interpolate/src/round.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/number.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/continuous.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/constant.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/init.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/linear.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/tickFormat.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/precisionPrefix.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/precisionRound.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/node_modules/d3-format/src/precisionFixed.js","webpack://gulfwinds.customerapp/./node_modules/d3-scale/src/ordinal.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/constant.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/curve/linear.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/offset/diverging.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/offset/none.js","webpack://gulfwinds.customerapp/./node_modules/d3-shape/src/order/none.js","webpack://gulfwinds.customerapp/./node_modules/d3-time-format/src/locale.js","webpack://gulfwinds.customerapp/./node_modules/d3-time-format/src/defaultLocale.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/day.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/duration.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/interval.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/utcDay.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/utcWeek.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/utcYear.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/week.js","webpack://gulfwinds.customerapp/./node_modules/d3-time/src/year.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/addDays/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/addMonths/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/isDate/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/isValid/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/format/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/getDay/index.js","webpack://gulfwinds.customerapp/./node_modules/date-fns/esm/toDate/index.js","webpack://gulfwinds.customerapp/./node_modules/dom-helpers/esm/addClass.js","webpack://gulfwinds.customerapp/./node_modules/dom-helpers/esm/hasClass.js","webpack://gulfwinds.customerapp/./node_modules/dom-helpers/esm/removeClass.js","webpack://gulfwinds.customerapp/./node_modules/exenv/index.js","webpack://gulfwinds.customerapp/./node_modules/fbjs/lib/shallowEqual.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/types/options.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/l10n/default.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/utils/index.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/utils/dom.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/utils/dates.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/index.js","webpack://gulfwinds.customerapp/./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack://gulfwinds.customerapp/./node_modules/for-each/index.js","webpack://gulfwinds.customerapp/./node_modules/formik/node_modules/deepmerge/dist/es.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/eq.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_assocIndexOf.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_listCacheDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_ListCache.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_listCacheClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_listCacheGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_listCacheHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_listCacheSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_isMasked.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isFunction.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_coreJsData.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_toSource.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseIsNative.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getNative.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Map.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_nativeCreate.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_hashGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_hashHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Hash.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_hashClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_hashDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_hashSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getMapData.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_isKeyable.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_MapCache.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_mapCacheClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_mapCacheDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_mapCacheGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_mapCacheHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_mapCacheSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Stack.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_stackClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_stackDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_stackGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_stackHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_stackSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_defineProperty.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseAssignValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_assignValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_copyObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseIsArguments.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isArguments.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isBuffer.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/stubFalse.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_isIndex.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isLength.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseUnary.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_nodeUtil.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isTypedArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseTimes.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_isPrototype.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_nativeKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isArrayLike.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/keys.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseKeysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_nativeKeysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/keysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_cloneBuffer.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_copyArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/stubArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getSymbols.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_arrayFilter.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_arrayPush.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getSymbolsIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getAllKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getAllKeysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_DataView.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Promise.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Set.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_WeakMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_initCloneArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Uint8Array.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_cloneRegExp.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_cloneSymbol.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_initCloneByTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_cloneDataView.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_cloneTypedArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseCreate.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseIsMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseIsSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseClone.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_initCloneObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_copySymbolsIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseAssignIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_copySymbols.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseAssign.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_arrayEach.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/clone.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_arrayMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isSymbol.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/memoize.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_memoizeCapped.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_stringToPath.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_toKey.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/toString.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/toPath.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/cloneDeep.js","webpack://gulfwinds.customerapp/./node_modules/formik/dist/formik.esm.js","webpack://gulfwinds.customerapp/./node_modules/function-bind/implementation.js","webpack://gulfwinds.customerapp/./node_modules/function-bind/index.js","webpack://gulfwinds.customerapp/./node_modules/get-intrinsic/index.js","webpack://gulfwinds.customerapp/./node_modules/hammerjs/hammer.js","webpack://gulfwinds.customerapp/./node_modules/has-symbols/index.js","webpack://gulfwinds.customerapp/./node_modules/has-symbols/shams.js","webpack://gulfwinds.customerapp/./node_modules/has-tostringtag/shams.js","webpack://gulfwinds.customerapp/./node_modules/has/src/index.js","webpack://gulfwinds.customerapp/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://gulfwinds.customerapp/./node_modules/value-equal/esm/value-equal.js","webpack://gulfwinds.customerapp/./node_modules/history/esm/history.js","webpack://gulfwinds.customerapp/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://gulfwinds.customerapp/./node_modules/ieee754/index.js","webpack://gulfwinds.customerapp/./node_modules/inherits/inherits_browser.js","webpack://gulfwinds.customerapp/./node_modules/invariant/browser.js","webpack://gulfwinds.customerapp/./node_modules/is-arguments/index.js","webpack://gulfwinds.customerapp/./node_modules/is-callable/index.js","webpack://gulfwinds.customerapp/./node_modules/is-generator-function/index.js","webpack://gulfwinds.customerapp/./node_modules/is-typed-array/index.js","webpack://gulfwinds.customerapp/./node_modules/jquery/dist/jquery.js","webpack://gulfwinds.customerapp/./node_modules/json2mq/index.js","webpack://gulfwinds.customerapp/./node_modules/localforage/dist/localforage.js","webpack://gulfwinds.customerapp/./node_modules/lodash.get/index.js","webpack://gulfwinds.customerapp/./node_modules/lodash.isplainobject/index.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_DataView.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Hash.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_LazyWrapper.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_ListCache.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_LodashWrapper.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Map.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_MapCache.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Promise.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Set.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_SetCache.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Stack.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Symbol.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_Uint8Array.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_WeakMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_apply.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayEach.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayFilter.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayIncludes.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayIncludesWith.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayLikeKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayPush.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arrayReduce.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_arraySome.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_asciiToArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_asciiWords.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_assignMergeValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_assignValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_assocIndexOf.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseAssign.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseAssignIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseAssignValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseClone.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseCreate.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseDifference.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseEach.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseExtremum.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseFilter.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseFindIndex.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseFlatten.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseFor.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseForOwn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseGetAllKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseGetTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseGt.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseHasIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIndexOf.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsArguments.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsDate.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsEqual.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsEqualDeep.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsMatch.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsNaN.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsNative.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIsTypedArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseIteratee.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseKeysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseLodash.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseLt.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseMatches.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseMatchesProperty.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseMerge.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseMergeDeep.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseOrderBy.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_basePick.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_basePickBy.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseProperty.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_basePropertyDeep.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_basePropertyOf.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseRange.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseRest.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseSetData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseSetToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseSlice.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseSortBy.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseTimes.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseTrim.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseUnary.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseUniq.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_baseUnset.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cacheHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_castPath.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_castSlice.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cloneArrayBuffer.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cloneBuffer.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cloneDataView.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cloneRegExp.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cloneSymbol.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_cloneTypedArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_compareAscending.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_compareMultiple.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_composeArgs.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_composeArgsRight.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_copyArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_copyObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_copySymbols.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_copySymbolsIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_coreJsData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_countHolders.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createAssigner.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createBaseEach.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createBaseFor.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createBind.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createCaseFirst.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createCompounder.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createCtor.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createCurry.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createHybrid.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createPartial.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createRange.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createRecurry.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createRound.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_createWrap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_customOmitClone.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_deburrLetter.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_defineProperty.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_equalArrays.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_equalByTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_equalObjects.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_flatRest.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_freeGlobal.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getAllKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getAllKeysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getFuncName.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getHolder.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getMapData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getMatchData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getNative.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getPrototype.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getRawTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getSymbols.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getSymbolsIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getValue.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_getWrapDetails.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hasPath.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hasUnicode.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hasUnicodeWord.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hashClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hashDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hashGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hashHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_hashSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_initCloneArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_initCloneByTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_initCloneObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_insertWrapDetails.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isFlattenable.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isIndex.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isIterateeCall.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isKey.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isKeyable.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isLaziable.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isMasked.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isPrototype.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_isStrictComparable.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_listCacheClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_listCacheDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_listCacheGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_listCacheHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_listCacheSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mapCacheClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mapCacheDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mapCacheGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mapCacheHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mapCacheSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mapToArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_matchesStrictComparable.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_memoizeCapped.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_mergeData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_metaMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_nativeCreate.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_nativeKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_nativeKeysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_nodeUtil.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_objectToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_overArg.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_overRest.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_parent.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_realNames.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_reorder.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_replaceHolders.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_root.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_safeGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_setCacheAdd.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_setCacheHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_setData.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_setToArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_setToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_setWrapToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_shortOut.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stackClear.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stackDelete.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stackGet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stackHas.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stackSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_strictIndexOf.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stringToArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_stringToPath.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_toKey.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_toSource.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_trimmedEndIndex.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_unicodeToArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_unicodeWords.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_updateWrapDetails.js","webpack://gulfwinds.customerapp/./node_modules/lodash/_wrapperClone.js","webpack://gulfwinds.customerapp/./node_modules/lodash/camelCase.js","webpack://gulfwinds.customerapp/./node_modules/lodash/capitalize.js","webpack://gulfwinds.customerapp/./node_modules/lodash/ceil.js","webpack://gulfwinds.customerapp/./node_modules/lodash/constant.js","webpack://gulfwinds.customerapp/./node_modules/lodash/debounce.js","webpack://gulfwinds.customerapp/./node_modules/lodash/deburr.js","webpack://gulfwinds.customerapp/./node_modules/lodash/eq.js","webpack://gulfwinds.customerapp/./node_modules/lodash/filter.js","webpack://gulfwinds.customerapp/./node_modules/lodash/findIndex.js","webpack://gulfwinds.customerapp/./node_modules/lodash/flatten.js","webpack://gulfwinds.customerapp/./node_modules/lodash/flattenDepth.js","webpack://gulfwinds.customerapp/./node_modules/lodash/floor.js","webpack://gulfwinds.customerapp/./node_modules/lodash/get.js","webpack://gulfwinds.customerapp/./node_modules/lodash/has.js","webpack://gulfwinds.customerapp/./node_modules/lodash/hasIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/identity.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isArguments.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isArrayLike.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isArrayLikeObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isBuffer.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isDate.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isEqual.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isFunction.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isLength.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isMap.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isNil.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isNumber.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isObjectLike.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isPlainObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isSet.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isSymbol.js","webpack://gulfwinds.customerapp/./node_modules/lodash/isTypedArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/keys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/keysIn.js","webpack://gulfwinds.customerapp/./node_modules/lodash/last.js","webpack://gulfwinds.customerapp/./node_modules/lodash/lodash.js","webpack://gulfwinds.customerapp/./node_modules/lodash/mapKeys.js","webpack://gulfwinds.customerapp/./node_modules/lodash/mapValues.js","webpack://gulfwinds.customerapp/./node_modules/lodash/max.js","webpack://gulfwinds.customerapp/./node_modules/lodash/memoize.js","webpack://gulfwinds.customerapp/./node_modules/lodash/merge.js","webpack://gulfwinds.customerapp/./node_modules/lodash/min.js","webpack://gulfwinds.customerapp/./node_modules/lodash/noop.js","webpack://gulfwinds.customerapp/./node_modules/lodash/now.js","webpack://gulfwinds.customerapp/./node_modules/lodash/omit.js","webpack://gulfwinds.customerapp/./node_modules/lodash/partialRight.js","webpack://gulfwinds.customerapp/./node_modules/lodash/pick.js","webpack://gulfwinds.customerapp/./node_modules/lodash/property.js","webpack://gulfwinds.customerapp/./node_modules/lodash/range.js","webpack://gulfwinds.customerapp/./node_modules/lodash/set.js","webpack://gulfwinds.customerapp/./node_modules/lodash/snakeCase.js","webpack://gulfwinds.customerapp/./node_modules/lodash/sortBy.js","webpack://gulfwinds.customerapp/./node_modules/lodash/stubArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash/stubFalse.js","webpack://gulfwinds.customerapp/./node_modules/lodash/toFinite.js","webpack://gulfwinds.customerapp/./node_modules/lodash/toInteger.js","webpack://gulfwinds.customerapp/./node_modules/lodash/toNumber.js","webpack://gulfwinds.customerapp/./node_modules/lodash/toPlainObject.js","webpack://gulfwinds.customerapp/./node_modules/lodash/toString.js","webpack://gulfwinds.customerapp/./node_modules/lodash/uniq.js","webpack://gulfwinds.customerapp/./node_modules/lodash/uniqBy.js","webpack://gulfwinds.customerapp/./node_modules/lodash/upperFirst.js","webpack://gulfwinds.customerapp/./node_modules/lodash/without.js","webpack://gulfwinds.customerapp/./node_modules/lodash/words.js","webpack://gulfwinds.customerapp/./node_modules/lodash/wrapperLodash.js","webpack://gulfwinds.customerapp/./node_modules/memoize-one/dist/memoize-one.esm.js","webpack://gulfwinds.customerapp/./node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gulfwinds.customerapp/./node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gulfwinds.customerapp/./node_modules/mini-create-react-context/dist/esm/index.js","webpack://gulfwinds.customerapp/./node_modules/object-assign/index.js","webpack://gulfwinds.customerapp/./node_modules/object-inspect/index.js","webpack://gulfwinds.customerapp/./node_modules/performance-now/lib/performance-now.js","webpack://gulfwinds.customerapp/./node_modules/process/browser.js","webpack://gulfwinds.customerapp/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://gulfwinds.customerapp/./node_modules/prop-types/index.js","webpack://gulfwinds.customerapp/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://gulfwinds.customerapp/./node_modules/property-expr/index.js","webpack://gulfwinds.customerapp/./node_modules/qs/lib/formats.js","webpack://gulfwinds.customerapp/./node_modules/qs/lib/index.js","webpack://gulfwinds.customerapp/./node_modules/qs/lib/parse.js","webpack://gulfwinds.customerapp/./node_modules/qs/lib/stringify.js","webpack://gulfwinds.customerapp/./node_modules/qs/lib/utils.js","webpack://gulfwinds.customerapp/./node_modules/raf/index.js","webpack://gulfwinds.customerapp/./node_modules/react-motion/node_modules/performance-now/lib/performance-now.js","webpack://gulfwinds.customerapp/./node_modules/react-router/node_modules/isarray/index.js","webpack://gulfwinds.customerapp/./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack://gulfwinds.customerapp/./node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/rng.js","webpack://gulfwinds.customerapp/./node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/bytesToUuid.js","webpack://gulfwinds.customerapp/./node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/v4.js","webpack://gulfwinds.customerapp/./node_modules/recompose/compose.js","webpack://gulfwinds.customerapp/./node_modules/recompose/defaultProps.js","webpack://gulfwinds.customerapp/./node_modules/recompose/getDisplayName.js","webpack://gulfwinds.customerapp/./node_modules/recompose/mapProps.js","webpack://gulfwinds.customerapp/./node_modules/recompose/pure.js","webpack://gulfwinds.customerapp/./node_modules/recompose/setDisplayName.js","webpack://gulfwinds.customerapp/./node_modules/recompose/setPropTypes.js","webpack://gulfwinds.customerapp/./node_modules/recompose/setStatic.js","webpack://gulfwinds.customerapp/./node_modules/recompose/shallowEqual.js","webpack://gulfwinds.customerapp/./node_modules/recompose/shouldUpdate.js","webpack://gulfwinds.customerapp/./node_modules/recompose/utils/pick.js","webpack://gulfwinds.customerapp/./node_modules/recompose/withProps.js","webpack://gulfwinds.customerapp/./node_modules/recompose/withPropsOnChange.js","webpack://gulfwinds.customerapp/./node_modules/recompose/wrapDisplayName.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/constants.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isArray.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isString.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/getLastElement.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/camelCase.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/arrayToObject.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/flattenActionMap.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/unflattenActionCreators.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isEmpty.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isNull.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/createAction.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/createActions.js","webpack://gulfwinds.customerapp/./node_modules/reduce-reducers/es/index.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/flattenReducerMap.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/hasGeneratorInterface.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/toString.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/handleActions.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/handleAction.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isUndefined.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/flattenWhenNode.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/get.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/identity.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isFunction.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isMap.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isNil.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/isPlainObject.js","webpack://gulfwinds.customerapp/./node_modules/redux-actions/es/utils/ownKeys.js","webpack://gulfwinds.customerapp/./node_modules/redux-thunk/es/index.js","webpack://gulfwinds.customerapp/./node_modules/redux/es/createStore.js","webpack://gulfwinds.customerapp/./node_modules/redux/es/combineReducers.js","webpack://gulfwinds.customerapp/./node_modules/redux/es/compose.js","webpack://gulfwinds.customerapp/./node_modules/redux/es/applyMiddleware.js","webpack://gulfwinds.customerapp/./node_modules/regenerator-runtime/runtime.js","webpack://gulfwinds.customerapp/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://gulfwinds.customerapp/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://gulfwinds.customerapp/./node_modules/scheduler/index.js","webpack://gulfwinds.customerapp/./node_modules/side-channel/index.js","webpack://gulfwinds.customerapp/./node_modules/string-convert/camel2hyphen.js","webpack://gulfwinds.customerapp/./node_modules/styled-alert-component/lib/components/Alert.js","webpack://gulfwinds.customerapp/./node_modules/styled-alert-component/lib/index.js","webpack://gulfwinds.customerapp/./node_modules/styled-base-components/lib/components/globalStyle.js","webpack://gulfwinds.customerapp/./node_modules/styled-base-components/lib/components/transitions.js","webpack://gulfwinds.customerapp/./node_modules/styled-base-components/lib/components/utilityStyle.js","webpack://gulfwinds.customerapp/./node_modules/styled-base-components/lib/index.js","webpack://gulfwinds.customerapp/./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/is-what/dist/index.esm.js","webpack://gulfwinds.customerapp/./node_modules/merge-anything/dist/index.esm.js","webpack://gulfwinds.customerapp/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/index.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/alert.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/badge.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/breadcrumb.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/breadcrumbItem.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/button.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/buttonGroup.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/card.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/cardBody.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/cardFooter.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/cardHeader.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/cardImageHeader.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/cardText.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/cardTitle.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/colorScheme.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/container.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/dropdownDivider.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/dropdownItem.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/dropdownMenu.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/formCheck.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/formCheckInput.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/formControl.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/formControlPlainText.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/formGroup.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/formText.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/globals.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/index.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/inputGroup.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/inputGroupText.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/jumbotron.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/listGroup.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/listGroupItem.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/modalBody.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/modalContent.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/modalFooter.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/modalHeader.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/nav.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/navLink.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/navbar.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/navbarLink.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/popover.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/popoverArrow.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/popoverBody.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/popoverHeader.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/screenSize.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/table.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/tooltip.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/tooltipArrow.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/tooltipInner.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/theme/tr.js","webpack://gulfwinds.customerapp/./node_modules/styled-config/lib/utils/index.js","webpack://gulfwinds.customerapp/./node_modules/stylis-rule-sheet/index.js","webpack://gulfwinds.customerapp/./node_modules/stylis/stylis.min.js","webpack://gulfwinds.customerapp/./node_modules/symbol-observable/es/index.js","webpack://gulfwinds.customerapp/./node_modules/symbol-observable/es/ponyfill.js","webpack://gulfwinds.customerapp/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://gulfwinds.customerapp/./node_modules/to-camel-case/index.js","webpack://gulfwinds.customerapp/./node_modules/to-no-case/index.js","webpack://gulfwinds.customerapp/./node_modules/to-space-case/index.js","webpack://gulfwinds.customerapp/./node_modules/toastr/toastr.js","webpack://gulfwinds.customerapp/./node_modules/toposort/index.js","webpack://gulfwinds.customerapp/./node_modules/util/support/isBufferBrowser.js","webpack://gulfwinds.customerapp/./node_modules/util/support/types.js","webpack://gulfwinds.customerapp/./node_modules/util/util.js","webpack://gulfwinds.customerapp/./node_modules/warning/warning.js","webpack://gulfwinds.customerapp/./node_modules/which-typed-array/index.js","webpack://gulfwinds.customerapp/./node_modules/xtend/immutable.js","webpack://gulfwinds.customerapp/./node_modules/nanoclone/src/index.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/printValue.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/locale.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/isSchema.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/toArray.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/ValidationError.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/runTests.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/Reference.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/createValidation.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/reach.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/ReferenceSet.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/schema.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/Condition.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/mixed.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/isAbsent.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/string.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/isodate.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/date.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/sortByKeyOrder.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/object.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/util/sortFields.js","webpack://gulfwinds.customerapp/./node_modules/yup/es/Lazy.js","webpack://gulfwinds.customerapp/./node_modules/available-typed-arrays/index.js","webpack://gulfwinds.customerapp/./node_modules/is-typed-array/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://gulfwinds.customerapp/./node_modules/which-typed-array/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://gulfwinds.customerapp/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_Symbol.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getRawTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_objectToString.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_baseGetTag.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_freeGlobal.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_getPrototype.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_overArg.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/_root.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isObjectLike.js","webpack://gulfwinds.customerapp/./node_modules/lodash-es/isPlainObject.js","webpack://gulfwinds.customerapp/./node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://gulfwinds.customerapp/./node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gulfwinds.customerapp/./node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gulfwinds.customerapp/./node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://gulfwinds.customerapp/./node_modules/react-router/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://gulfwinds.customerapp/./node_modules/react-router/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gulfwinds.customerapp/./node_modules/react-router/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gulfwinds.customerapp/./node_modules/react-router/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/*! *****************************************************************************\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\nfunction __extends(d, b) {\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\nvar __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\nfunction __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\nfunction __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 (_) 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\nfunction __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\nfunction __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}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __spread };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n//# sourceMappingURL=CcsCredential.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n return MathUtils;\r\n}());\n\nexport { MathUtils };\n//# sourceMappingURL=MathUtils.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = \"\";\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n GuidGenerator.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n//# sourceMappingURL=GuidGenerator.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = \"\";\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n//# sourceMappingURL=BrowserStringUtils.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = \"\";\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n//# sourceMappingURL=Base64Encode.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, \"\");\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n//# sourceMappingURL=Base64Decode.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popupWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: \"silent_logout_unsupported\",\r\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n },\r\n unableToLoadTokenError: {\r\n code: \"unable_to_load_token\",\r\n desc: \"Error loading token to cache.\"\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: \"crypto_key_not_found\",\r\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\r\n },\r\n authCodeRequired: {\r\n code: \"auth_code_required\",\r\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\r\n },\r\n databaseUnavailable: {\r\n code: \"database_unavailable\",\r\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\r\n */\r\n BrowserAuthError.createSilentLogoutUnsupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when the necessary information is not available to sideload tokens\r\n */\r\n BrowserAuthError.createUnableToLoadTokenError = function (errorDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, BrowserAuthErrorMessage.unableToLoadTokenError.desc + \" | \" + errorDetail);\r\n };\r\n /**\r\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\r\n */\r\n BrowserAuthError.createSigningKeyNotFoundInStorageError = function (keyId) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc + \" | No match found for KeyId: \" + keyId);\r\n };\r\n /**\r\n * Create an error when an authorization code is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\r\n };\r\n /**\r\n * Create an error when IndexedDB is unavailable\r\n */\r\n BrowserAuthError.createDatabaseUnavailableError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n//# sourceMappingURL=BrowserAuthError.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n//# sourceMappingURL=PkceGenerator.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto(logger) {\r\n this.logger = logger;\r\n if (!(this.hasCryptoAPI())) {\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto or msCrypto object not available.\");\r\n }\r\n this._keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n return [2 /*return*/, this.hasIECrypto() ? this.getMSCryptoDigest(S256_HASH_ALG, data) : this.getSubtleCryptoDigest(S256_HASH_ALG, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n var cryptoObj = window[\"msCrypto\"] || window.crypto;\r\n if (!cryptoObj.getRandomValues) {\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"getRandomValues does not exist.\");\r\n }\r\n cryptoObj.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, (this.hasIECrypto() ?\r\n this.msCryptoGenerateKey(extractable, usages)\r\n : window.crypto.subtle.generateKey(this._keygenAlgorithmOptions, extractable, usages))];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.hasIECrypto() ? this.msCryptoExportJwk(key) : window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserCrypto.getJwkString(key);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, this.hasIECrypto() ?\r\n this.msCryptoImportKey(keyBuffer, extractable, usages)\r\n : window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, this._keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.hasIECrypto() ?\r\n this.msCryptoSign(key, data)\r\n : window.crypto.subtle.sign(this._keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasCryptoAPI = function () {\r\n return this.hasIECrypto() || this.hasBrowserCrypto();\r\n };\r\n /**\r\n * Checks whether IE crypto (AKA msCrypto) is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Helper function for SHA digest.\r\n * @param algorithm\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.getSubtleCryptoDigest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for SHA digest.\r\n * @param algorithm\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.getMSCryptoDigest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for generating a keypair\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.msCryptoGenerateKey = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(_this._keygenAlgorithmOptions, extractable, usages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for exportKey\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.msCryptoExportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, \"\")\r\n .replace(/\\n/g, \"\")\r\n .replace(/\\t/g, \"\")\r\n .split(\" \").join(\"\")\r\n .replace(\"\\u0000\", \"\");\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for importKey\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.msCryptoImportKey = function (keyBuffer, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, _this._keygenAlgorithmOptions, extractable, usages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for sign JWT\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.msCryptoSign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(_this._keygenAlgorithmOptions, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserCrypto.getJwkString = function (jwk) {\r\n return JSON.stringify(jwk, Object.keys(jwk).sort());\r\n };\r\n return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n//# sourceMappingURL=BrowserCrypto.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DB_NAME, DB_VERSION, DB_TABLE_NAME } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage() {\r\n this.dbName = DB_NAME;\r\n this.version = DB_VERSION;\r\n this.tableName = DB_TABLE_NAME;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function () { return reject(BrowserAuthError.createDatabaseUnavailableError()); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Opens database if it's not already open\r\n */\r\n DatabaseStorage.prototype.validateDbIsOpen = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.setItem = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function () { return resolve(); });\r\n dbPut.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes item from IndexedDB under given key\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbDelete = objectStore.delete(key);\r\n dbDelete.addEventListener(\"success\", function () { return resolve(); });\r\n dbDelete.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the storage object as an iterable array of strings.\r\n */\r\n DatabaseStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGetKeys = objectStore.getAllKeys();\r\n dbGetKeys.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result);\r\n });\r\n dbGetKeys.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Checks whether there is an object under the search key in the object store\r\n */\r\n DatabaseStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbContainsKey = objectStore.count(key);\r\n dbContainsKey.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result === 1);\r\n });\r\n dbContainsKey.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Deletes the MSAL database. The database is deleted rather than cleared to make it possible\r\n * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues\r\n * with IndexedDB database versions.\r\n */\r\n DatabaseStorage.prototype.deleteDatabase = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);\r\n deleteDbRequest.addEventListener(\"success\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"error\", function () { return reject(false); });\r\n })];\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n//# sourceMappingURL=DatabaseStorage.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n//# sourceMappingURL=MemoryStorage.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { DatabaseStorage } from './DatabaseStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class allows MSAL to store artifacts asynchronously using the DatabaseStorage IndexedDB wrapper,\r\n * backed up with the more volatile MemoryStorage object for cases in which IndexedDB may be unavailable.\r\n */\r\nvar AsyncMemoryStorage = /** @class */ (function () {\r\n function AsyncMemoryStorage(logger) {\r\n this.inMemoryCache = new MemoryStorage();\r\n this.indexedDBCache = new DatabaseStorage();\r\n this.logger = logger;\r\n }\r\n AsyncMemoryStorage.prototype.handleDatabaseAccessError = function (error) {\r\n if (error instanceof BrowserAuthError && error.errorCode === BrowserAuthErrorMessage.databaseUnavailable.code) {\r\n this.logger.error(\"Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.\");\r\n }\r\n };\r\n /**\r\n * Get the item matching the given key. Tries in-memory cache first, then in the asynchronous\r\n * storage object if item isn't found in-memory.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var item, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n item = this.inMemoryCache.getItem(key);\r\n if (!!item) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Queried item not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getItem(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_1 = _a.sent();\r\n this.handleDatabaseAccessError(e_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, item];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Sets the item in the in-memory cache and then tries to set it in the asynchronous\r\n * storage object with the given key.\r\n * @param key\r\n * @param value\r\n */\r\n AsyncMemoryStorage.prototype.setItem = function (key, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.setItem(key, value);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.setItem(key, value)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_2 = _a.sent();\r\n this.handleDatabaseAccessError(e_2);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the item matching the key from the in-memory cache, then tries to remove it from the asynchronous storage object.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.removeItem(key);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.removeItem(key)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _a.sent();\r\n this.handleDatabaseAccessError(e_3);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the in-memory cache as an iterable array of strings. If no keys are found, query the keys in the\r\n * asynchronous storage object.\r\n */\r\n AsyncMemoryStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cacheKeys, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cacheKeys = this.inMemoryCache.getKeys();\r\n if (!(cacheKeys.length === 0)) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"In-memory cache is empty, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getKeys()];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.handleDatabaseAccessError(e_4);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, cacheKeys];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns true or false if the given key is present in the cache.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var containsKey, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n containsKey = this.inMemoryCache.containsKey(key);\r\n if (!!containsKey) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Key not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.containsKey(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_5 = _a.sent();\r\n this.handleDatabaseAccessError(e_5);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, containsKey];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears in-memory Map and tries to delete the IndexedDB database.\r\n */\r\n AsyncMemoryStorage.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_6;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.clear();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.deleteDatabase()];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_6 = _a.sent();\r\n this.handleDatabaseAccessError(e_6);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return AsyncMemoryStorage;\r\n}());\n\nexport { AsyncMemoryStorage };\n//# sourceMappingURL=AsyncMemoryStorage.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { AsyncMemoryStorage } from '../cache/AsyncMemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps(logger) {\r\n this.logger = logger;\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto(this.logger);\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = {\r\n asymmetricKeys: new AsyncMemoryStorage(this.logger),\r\n symmetricKeys: new AsyncMemoryStorage(this.logger)\r\n };\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _a.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserCrypto.getJwkString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.hashString(publicJwkString)];\r\n case 3:\r\n publicJwkHash = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _a.sent();\r\n // Store Keypair data in keystore\r\n return [4 /*yield*/, this.cache.asymmetricKeys.setItem(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n })];\r\n case 6:\r\n // Store Keypair data in keystore\r\n _a.sent();\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes cryptographic keypair from key store matching the keyId passed in\r\n * @param kid\r\n */\r\n CryptoOps.prototype.removeTokenBindingKey = function (kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyFound;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.asymmetricKeys.removeItem(kid)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.cache.asymmetricKeys.containsKey(kid)];\r\n case 2:\r\n keyFound = _a.sent();\r\n return [2 /*return*/, !keyFound];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all cryptographic keys from IndexedDB storage\r\n */\r\n CryptoOps.prototype.clearKeystore = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var dataStoreNames, databaseStorage, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n dataStoreNames = Object.keys(this.cache);\r\n databaseStorage = this.cache[dataStoreNames[0]];\r\n if (!databaseStorage) return [3 /*break*/, 2];\r\n return [4 /*yield*/, databaseStorage.deleteDatabase()];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = false;\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, _a];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedKeyPair, publicKeyJwk, publicKeyJwkString, header, encodedHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.asymmetricKeys.getItem(kid)];\r\n case 1:\r\n cachedKeyPair = _a.sent();\r\n if (!cachedKeyPair) {\r\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\r\n }\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _a.sent();\r\n publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\r\n header = {\r\n alg: publicKeyJwk.alg,\r\n type: KEY_FORMAT_JWK\r\n };\r\n encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _a.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n return [2 /*return*/, tokenString + \".\" + encodedSignature];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\n CryptoOps.prototype.hashString = function (plainText) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var hashBuffer, hashBytes;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.sha256Digest(plainText)];\r\n case 1:\r\n hashBuffer = _a.sent();\r\n hashBytes = new Uint8Array(hashBuffer);\r\n return [2 /*return*/, this.b64Encode.urlEncodeArr(hashBytes)];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n//# sourceMappingURL=CryptoOps.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n removeTokenBindingKey: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - removeTokenBindingKey() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n clearKeystore: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - clearKeystore() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n hashString: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - hashString() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n//# sourceMappingURL=ICrypto.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n __extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n//# sourceMappingURL=ServerError.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { CredentialType, CacheType, Constants, Separators, AuthenticationScheme } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: -------\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * oboAssertion: access token passed in as part of OBO request\r\n * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)\r\n * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: --\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * helper function to return `CredentialType`\r\n * @param key\r\n */\r\n CredentialEntity.getCredentialType = function (key) {\r\n // First keyword search will match all \"AccessToken\" and \"AccessToken_With_AuthScheme\" credentials\r\n if (key.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) !== -1) {\r\n // Perform second search to differentiate between \"AccessToken\" and \"AccessToken_With_AuthScheme\" credential types\r\n if (key.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) !== -1) {\r\n return CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n }\r\n return CredentialType.ACCESS_TOKEN;\r\n }\r\n else if (key.indexOf(CredentialType.ID_TOKEN.toLowerCase()) !== -1) {\r\n return CredentialType.ID_TOKEN;\r\n }\r\n else if (key.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) !== -1) {\r\n return CredentialType.REFRESH_TOKEN;\r\n }\r\n return Constants.NOT_DEFINED;\r\n };\r\n /**\r\n * generates credential key\r\n * -\\-----\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n this.generateClaimsHashForCacheKey(requestedClaimsHash),\r\n this.generateSchemeForCacheKey(tokenType)\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || Constants.EMPTY_STRING,\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate requested claims key component as per schema: \r\n */\r\n CredentialEntity.generateClaimsHashForCacheKey = function (requestedClaimsHash) {\r\n return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate scheme key componenet as per schema: \r\n */\r\n CredentialEntity.generateSchemeForCacheKey = function (tokenType) {\r\n /*\r\n * PoP Tokens and SSH certs include scheme in cache key\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n return (tokenType && tokenType.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? tokenType.toLowerCase() : Constants.EMPTY_STRING;\r\n };\r\n return CredentialEntity;\r\n}());\n\nexport { CredentialEntity };\n//# sourceMappingURL=CredentialEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n },\r\n invalidAzureCloudInstance: {\r\n code: \"invalid_azure_cloud_instance\",\r\n desc: \"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values\"\r\n },\r\n missingSshJwk: {\r\n code: \"missing_ssh_jwk\",\r\n desc: \"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.\"\r\n },\r\n missingSshKid: {\r\n code: \"missing_ssh_kid\",\r\n desc: \"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.\"\r\n },\r\n missingNonceAuthenticationHeader: {\r\n code: \"missing_nonce_authentication_header\",\r\n desc: \"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.\"\r\n },\r\n invalidAuthenticationHeader: {\r\n code: \"invalid_authentication_header\",\r\n desc: \"Invalid authentication header provided\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\r\n */\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\r\n */\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n /**\r\n * Throws error when the AzureCloudInstance is set to an invalid value\r\n */\r\n ClientConfigurationError.createInvalidAzureCloudInstanceError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAzureCloudInstance.code, ClientConfigurationErrorMessage.invalidAzureCloudInstance.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshJwkError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshJwk.code, ClientConfigurationErrorMessage.missingSshJwk.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key ID is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshKidError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshKid.code, ClientConfigurationErrorMessage.missingSshKid.desc);\r\n };\r\n /**\r\n * Throws error when provided headers don't contain a header that a server nonce can be extracted from\r\n */\r\n ClientConfigurationError.createMissingNonceAuthenticationHeadersError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.code, ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.desc);\r\n };\r\n /**\r\n * Throws error when a provided header is invalid in any way\r\n */\r\n ClientConfigurationError.createInvalidAuthenticationHeaderError = function (invalidHeaderName, details) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthenticationHeader.code, ClientConfigurationErrorMessage.invalidAuthenticationHeader.desc + \". Invalid header: \" + invalidHeaderName + \". Details: \" + details);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n//# sourceMappingURL=ClientConfigurationError.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { OIDC_SCOPES, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n var scopeString = inputScopeString || Constants.EMPTY_STRING;\r\n var inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError();\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n//# sourceMappingURL=ScopeSet.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\nexport { AuthToken };\n//# sourceMappingURL=AuthToken.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator, __extends } from '../_virtual/_tslib.js';\nimport { Constants, CredentialType, AuthenticationScheme, CacheSchemaType, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';\nimport { CredentialEntity } from './entities/CredentialEntity.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var currentAccounts = this.getAccountsFilteredBy();\r\n var accountValues = Object.keys(currentAccounts).map(function (accountKey) { return currentAccounts[accountKey]; });\r\n var numAccounts = accountValues.length;\r\n if (numAccounts < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountValues.map(function (value) {\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), value);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = _this.readIdTokenFromCache(_this.clientId, accountInfo);\r\n if (idToken && !accountInfo.idTokenClaims) {\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, _this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!!cacheRecord.accessToken) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.saveAccessToken(cacheRecord.accessToken)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var currentTokenCache, currentScopes, currentAccessTokens, removedAccessTokens_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n currentTokenCache = this.getCredentialsFilteredBy({\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n tokenType: credential.tokenType,\r\n requestedClaimsHash: credential.requestedClaimsHash\r\n });\r\n currentScopes = ScopeSet.fromString(credential.target);\r\n currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });\r\n if (!currentAccessTokens) return [3 /*break*/, 2];\r\n removedAccessTokens_1 = [];\r\n currentAccessTokens.forEach(function (tokenEntity) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n removedAccessTokens_1.push(_this.removeCredential(tokenEntity));\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccessTokens_1)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n this.setAccessTokenCredential(credential);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : Constants.EMPTY_STRING, accountFilter ? accountFilter.environment : Constants.EMPTY_STRING, accountFilter ? accountFilter.realm : Constants.EMPTY_STRING);\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredByInternal = function (homeAccountId, environment, realm) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAccounts = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n matchingAccounts[cacheKey] = entity;\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * retrieve credentails matching all provided filters; if no filter is set, get all credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n */\r\n CacheManager.prototype.getCredentialsFilteredBy = function (filter) {\r\n return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion, filter.tokenType, filter.keyId, filter.requestedClaimsHash);\r\n };\r\n /**\r\n * Support function to help match credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n * @param oboAssertion\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion, tokenType, keyId, requestedClaimsHash) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingCredentials = {\r\n idTokens: {},\r\n accessTokens: {},\r\n refreshTokens: {},\r\n };\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!oboAssertion && !_this.matchOboAssertion(entity, oboAssertion)) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n if (!!credentialType && !_this.matchCredentialType(entity, credentialType)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n if (!!familyId && !_this.matchFamilyId(entity, familyId)) {\r\n return;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!target && !_this.matchTarget(entity, target)) {\r\n return;\r\n }\r\n // If request OR cached entity has requested Claims Hash, check if they match\r\n if (requestedClaimsHash || entity.requestedClaimsHash) {\r\n // Don't match if either is undefined or they are different\r\n if (entity.requestedClaimsHash !== requestedClaimsHash) {\r\n return;\r\n }\r\n }\r\n // Access Token with Auth Scheme specific matching\r\n if (credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {\r\n if (!!tokenType && !_this.matchTokenType(entity, tokenType)) {\r\n return;\r\n }\r\n // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key\r\n if (tokenType === AuthenticationScheme.SSH) {\r\n if (keyId && !_this.matchKeyId(entity, keyId)) {\r\n return;\r\n }\r\n }\r\n }\r\n // At this point, the entity matches the request, update cache key if key schema has changed\r\n var updatedCacheKey = _this.updateCredentialCacheKey(cacheKey, entity);\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN:\r\n matchingCredentials.idTokens[updatedCacheKey] = entity;\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n matchingCredentials.accessTokens[updatedCacheKey] = entity;\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n matchingCredentials.refreshTokens[updatedCacheKey] = entity;\r\n break;\r\n }\r\n });\r\n return matchingCredentials;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allCacheKeys, removedAccounts;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allCacheKeys = this.getKeys();\r\n removedAccounts = [];\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n removedAccounts.push(_this.removeAccount(cacheKey));\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccounts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return [4 /*yield*/, this.removeAccountContext(account)];\r\n case 1: return [2 /*return*/, ((_a.sent()) && this.removeItem(accountKey, CacheSchemaType.ACCOUNT))];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allCacheKeys, accountId, removedCredentials;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allCacheKeys = this.getKeys();\r\n accountId = account.generateAccountId();\r\n removedCredentials = [];\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n var cacheEntity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!!cacheEntity && accountId === cacheEntity.generateAccountId()) {\r\n removedCredentials.push(_this.removeCredential(cacheEntity));\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedCredentials)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeCredential = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var key, accessTokenWithAuthSchemeEntity, kid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n key = credential.generateCredentialKey();\r\n if (!(credential.credentialType.toLowerCase() === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())) return [3 /*break*/, 4];\r\n if (!(credential.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 4];\r\n accessTokenWithAuthSchemeEntity = credential;\r\n kid = accessTokenWithAuthSchemeEntity.keyId;\r\n if (!kid) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.cryptoImpl.removeTokenBindingKey(kid)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n throw ClientAuthError.createBindingKeyNotRemovedError();\r\n case 4: return [2 /*return*/, this.removeItem(key, CacheSchemaType.CREDENTIAL)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey, CacheSchemaType.APP_METADATA);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, clientId, request, environment) {\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.readIdTokenFromCache(clientId, account);\r\n var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, request);\r\n var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.readIdTokenFromCache = function (clientId, account) {\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(idTokenFilter);\r\n var idTokens = Object.keys(credentialCache.idTokens).map(function (key) { return credentialCache.idTokens[key]; });\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return idTokens[0];\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, request) {\r\n var scopes = new ScopeSet(request.scopes || []);\r\n var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n /*\r\n * Distinguish between Bearer and PoP/SSH token cache types\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n target: scopes.printScopesLowerCase(),\r\n tokenType: authScheme,\r\n keyId: request.sshKid,\r\n requestedClaimsHash: request.requestedClaimsHash\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);\r\n var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.readRefreshTokenFromCache = function (clientId, account, familyRT) {\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: clientId,\r\n familyId: id\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(refreshTokenFilter);\r\n var refreshTokens = Object.keys(credentialCache.refreshTokens).map(function (key) { return credentialCache.refreshTokens[key]; });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment, clientId) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment, clientId) {\r\n var appMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!(entity.homeAccountId && homeAccountId === entity.homeAccountId);\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchOboAssertion = function (entity, oboAssertion) {\r\n return !!(entity.oboAssertion && oboAssertion === entity.oboAssertion);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n var requestTargetScopeSet = ScopeSet.fromString(target);\r\n if (!requestTargetScopeSet.containsOnlyOIDCScopes()) {\r\n requestTargetScopeSet.removeOIDCScopes(); // ignore OIDC scopes\r\n }\r\n else {\r\n requestTargetScopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return entityScopeSet.containsScopeSet(requestTargetScopeSet);\r\n };\r\n /**\r\n * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchTokenType = function (entity, tokenType) {\r\n return !!(entity.tokenType && entity.tokenType === tokenType);\r\n };\r\n /**\r\n * Returns true if the credential's keyId matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchKeyId = function (entity, keyId) {\r\n return !!(entity.keyId && entity.keyId === keyId);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Returns the specific credential (IdToken/AccessToken/RefreshToken) from the cache\r\n * @param key\r\n * @param credType\r\n */\r\n CacheManager.prototype.getSpecificCredential = function (key, credType) {\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN: {\r\n return this.getIdTokenCredential(key);\r\n }\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME: {\r\n return this.getAccessTokenCredential(key);\r\n }\r\n case CredentialType.REFRESH_TOKEN: {\r\n return this.getRefreshTokenCredential(key);\r\n }\r\n default:\r\n return null;\r\n }\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n };\r\n DefaultStorageClass.prototype.updateCredentialCacheKey = function () {\r\n var notImplErr = \"Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n//# sourceMappingURL=CacheManager.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId, oboAssertion) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n idTokenEntity.oboAssertion = oboAssertion;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n//# sourceMappingURL=IdTokenEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n /**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\n TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n var cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Waits for t number of milliseconds\r\n * @param t number\r\n * @param value T\r\n */\r\n TimeUtils.delay = function (t, value) {\r\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n };\r\n return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n//# sourceMappingURL=TimeUtils.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, oboAssertion, keyId, requestedClaims, requestedClaimsHash) {\r\n var _a, _b;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.oboAssertion = oboAssertion;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n if (requestedClaims) {\r\n atEntity.requestedClaims = requestedClaims;\r\n atEntity.requestedClaimsHash = requestedClaimsHash;\r\n }\r\n /*\r\n * Create Access Token With Auth Scheme instead of regular access token\r\n * Cast to lower to handle \"bearer\" from ADFS\r\n */\r\n if (((_a = atEntity.tokenType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== AuthenticationScheme.BEARER.toLowerCase()) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n switch (atEntity.tokenType) {\r\n case AuthenticationScheme.POP:\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_b = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _b === void 0 ? void 0 : _b.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n break;\r\n case AuthenticationScheme.SSH:\r\n atEntity.keyId = keyId;\r\n }\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n//# sourceMappingURL=AccessTokenEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, oboAssertion) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.oboAssertion = oboAssertion;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n//# sourceMappingURL=RefreshTokenEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata--\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata--\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n//# sourceMappingURL=AppMetadataEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n//# sourceMappingURL=ServerTelemetryEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n//# sourceMappingURL=AuthorityMetadataEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n//# sourceMappingURL=ThrottlingEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = state.split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n//# sourceMappingURL=ProtocolUtils.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n//# sourceMappingURL=ProtocolMode.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AzureCloudInstance;\r\n(function (AzureCloudInstance) {\r\n // AzureCloudInstance is not specified.\r\n AzureCloudInstance[AzureCloudInstance[\"None\"] = 0] = \"None\";\r\n // Microsoft Azure public cloud\r\n AzureCloudInstance[\"AzurePublic\"] = \"https://login.microsoftonline.com\";\r\n // Microsoft PPE\r\n AzureCloudInstance[\"AzurePpe\"] = \"https://login.windows-ppe.net\";\r\n // Microsoft Chinese national cloud\r\n AzureCloudInstance[\"AzureChina\"] = \"https://login.chinacloudapi.cn\";\r\n // Microsoft German national cloud (\"Black Forest\")\r\n AzureCloudInstance[\"AzureGermany\"] = \"https://login.microsoftonline.de\";\r\n // US Government cloud\r\n AzureCloudInstance[\"AzureUsGovernment\"] = \"https://login.microsoftonline.us\";\r\n})(AzureCloudInstance || (AzureCloudInstance = {}));\n\nexport { AzureCloudInstance };\n//# sourceMappingURL=AuthorityOptions.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n//# sourceMappingURL=BrowserStorage.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n UrlString.appendQueryString = function (url, queryString) {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n };\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\r\n // Hash doesn't contain key/value pairs\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\nexport { UrlString };\n//# sourceMappingURL=UrlString.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n//# sourceMappingURL=BrowserProtocolUtils.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __spread, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AccountEntity, CacheManager, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, PersistentCacheKeys, ThrottlingEntity, StringUtils, Constants, ProtocolUtils, CcsCredentialType, IdToken, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, InMemoryCacheKeys, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.cacheLocation);\r\n // Migrate any cache entries from older versions of MSAL.\r\n _this.migrateCacheEntries();\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n *\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n * Sets wrapper metadata in memory\r\n * @param wrapperSKU\r\n * @param wrapperVersion\r\n */\r\n BrowserCacheManager.prototype.setWrapperMetadata = function (wrapperSKU, wrapperVersion) {\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_SKU, wrapperSKU);\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_VER, wrapperVersion);\r\n };\r\n /**\r\n * Returns wrapper metadata from in-memory storage\r\n */\r\n BrowserCacheManager.prototype.getWrapperMetadata = function () {\r\n var sku = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_SKU) || \"\";\r\n var version = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_VER) || \"\";\r\n return [sku, version];\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * Gets the active account\r\n */\r\n BrowserCacheManager.prototype.getActiveAccount = function () {\r\n var activeAccountIdKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n var activeAccountId = this.browserStorage.getItem(activeAccountIdKey);\r\n if (!activeAccountId) {\r\n return null;\r\n }\r\n return this.getAccountInfoByFilter({ localAccountId: activeAccountId })[0] || null;\r\n };\r\n /**\r\n * Sets the active account's localAccountId in cache\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.setActiveAccount = function (account) {\r\n var activeAccountIdKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n this.browserStorage.setItem(activeAccountIdKey, account.localAccountId);\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.browserStorage.removeItem(activeAccountIdKey);\r\n }\r\n };\r\n /**\r\n * Gets a list of accounts that match all of the filters provided\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByFilter = function (accountFilter) {\r\n var allAccounts = this.getAllAccounts();\r\n return allAccounts.filter(function (accountObj) {\r\n if (accountFilter.username && accountFilter.username.toLowerCase() !== accountObj.username.toLowerCase()) {\r\n return false;\r\n }\r\n if (accountFilter.homeAccountId && accountFilter.homeAccountId !== accountObj.homeAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.localAccountId && accountFilter.localAccountId !== accountObj.localAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.tenantId && accountFilter.tenantId !== accountObj.tenantId) {\r\n return false;\r\n }\r\n if (accountFilter.environment && accountFilter.environment !== accountObj.environment) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n var item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL.\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n // Removes all accounts and their credentials\r\n return [4 /*yield*/, this.removeAllAccounts()];\r\n case 1:\r\n // Removes all accounts and their credentials\r\n _a.sent();\r\n this.removeAppMetadata();\r\n // Removes all remaining MSAL cache items\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n // eslint-disable-next-line no-param-reassign\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, \"\", -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance, loginHint, account) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n if (account) {\r\n var ccsCredential = {\r\n credential: account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n else if (!StringUtils.isEmpty(loginHint)) {\r\n var ccsCredential = {\r\n credential: loginHint,\r\n type: CcsCredentialType.UPN\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CORRELATION_ID));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\r\n this.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || \"\");\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n this.setInteractionInProgress(false);\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n BrowserCacheManager.prototype.isInteractionInProgress = function (matchClientId) {\r\n var clientId = this.getInteractionInProgress();\r\n if (matchClientId) {\r\n return clientId === this.clientId;\r\n }\r\n else {\r\n return !!clientId;\r\n }\r\n };\r\n BrowserCacheManager.prototype.getInteractionInProgress = function () {\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n return this.getTemporaryCache(key, false);\r\n };\r\n BrowserCacheManager.prototype.setInteractionInProgress = function (inProgress) {\r\n // Ensure we don't overwrite interaction in progress for a different clientId\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n if (inProgress) {\r\n if (this.getInteractionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n else {\r\n // No interaction is in progress\r\n this.setTemporaryCache(key, this.clientId, false);\r\n }\r\n }\r\n else if (!inProgress && this.getInteractionInProgress() === this.clientId) {\r\n this.removeItem(key);\r\n }\r\n };\r\n /**\r\n * Returns username retrieved from ADAL or MSAL v1 idToken\r\n */\r\n BrowserCacheManager.prototype.getLegacyLoginHint = function () {\r\n // Only check for adal/msal token if no SSO params are being used\r\n var adalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n this.logger.verbose(\"Cached ADAL id token retrieved.\");\r\n }\r\n // Check for cached MSAL v1 id token\r\n var msalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ID_TOKEN, true);\r\n if (msalIdTokenString) {\r\n this.removeItem(this.generateCacheKey(PersistentCacheKeys.ID_TOKEN));\r\n this.logger.verbose(\"Cached MSAL.js v1 id token retrieved\");\r\n }\r\n var cachedIdTokenString = msalIdTokenString || adalIdTokenString;\r\n if (cachedIdTokenString) {\r\n var cachedIdToken = new IdToken(cachedIdTokenString, this.cryptoImpl);\r\n if (cachedIdToken.claims && cachedIdToken.claims.preferred_username) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint\");\r\n return cachedIdToken.claims.preferred_username;\r\n }\r\n else if (cachedIdToken.claims && cachedIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint\");\r\n return cachedIdToken.claims.upn;\r\n }\r\n else {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Updates a credential's cache key if the current cache key is outdated\r\n */\r\n BrowserCacheManager.prototype.updateCredentialCacheKey = function (currentCacheKey, credential) {\r\n var updatedCacheKey = credential.generateCredentialKey();\r\n if (currentCacheKey !== updatedCacheKey) {\r\n var cacheItem = this.getItem(currentCacheKey);\r\n if (cacheItem) {\r\n this.removeItem(currentCacheKey);\r\n this.setItem(updatedCacheKey, cacheItem);\r\n this.logger.verbose(\"Updated an outdated \" + credential.credentialType + \" cache key\");\r\n return updatedCacheKey;\r\n }\r\n else {\r\n this.logger.error(\"Attempted to update an outdated \" + credential.credentialType + \" cache key but no item matching the outdated key was found in storage\");\r\n }\r\n }\r\n return currentCacheKey;\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n//# sourceMappingURL=BrowserCacheManager.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"6.2.0\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils) {\r\n this.cryptoUtils = cryptoUtils;\r\n }\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqCnf;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.generateKid(request)];\r\n case 1:\r\n reqCnf = _a.sent();\r\n return [2 /*return*/, this.cryptoUtils.base64Encode(JSON.stringify(reqCnf))];\r\n }\r\n });\r\n });\r\n };\r\n PopTokenGenerator.prototype.generateKid = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kidThumbprint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _a.sent();\r\n return [2 /*return*/, {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var tokenClaims;\r\n return __generator(this, function (_b) {\r\n tokenClaims = AuthToken.extractTokenClaims(accessToken, this.cryptoUtils);\r\n if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n return [2 /*return*/, this.signPayload(accessToken, tokenClaims.cnf.kid, request)];\r\n });\r\n });\r\n };\r\n PopTokenGenerator.prototype.signPayload = function (payload, kid, request, claims) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, resourceUrlString, resourceUrlComponents;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims, shrNonce = request.shrNonce;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n return [4 /*yield*/, this.cryptoUtils.signJwt(__assign({ at: payload, ts: TimeUtils.nowSeconds(), m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(), u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort, nonce: shrNonce || this.cryptoUtils.createNewGuid(), p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath, q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined, client_claims: shrClaims || undefined }, claims), kid, request.correlationId)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n//# sourceMappingURL=PopTokenGenerator.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { AzureCloudInstance } from '../authority/AuthorityOptions.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false,\r\n proxyUrl: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n correlationId: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: Constants.EMPTY_STRING,\r\n clientAssertion: undefined\r\n};\r\nvar DEFAULT_AZURE_CLOUD_OPTIONS = {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: \"\" + Constants.DEFAULT_COMMON_TENANT\r\n};\r\nvar DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: \"\",\r\n appVersion: \"\"\r\n }\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n var loggerOptions = __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption);\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: loggerOptions,\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), telemetry),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign({ clientCapabilities: [], azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n//# sourceMappingURL=ClientConfiguration.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\nexport { StubbedNetworkModule };\n//# sourceMappingURL=INetworkModule.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || \"\";\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\nexport { FetchClient };\n//# sourceMappingURL=FetchClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\nexport { XhrClient };\n//# sourceMappingURL=XhrClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = function (contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = Constants.EMPTY_STRING;\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.origin + contentWindow.location.pathname + contentWindow.location.search);\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : \"\";\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * Returns boolean of whether or not the current window is a popup opened by msal\r\n */\r\n BrowserUtils.isInPopup = function () {\r\n return typeof window !== \"undefined\" && !!window.opener &&\r\n window.opener !== window &&\r\n typeof window.name === \"string\" &&\r\n window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (BrowserUtils.isInPopup()) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n//# sourceMappingURL=BrowserUtils.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n//# sourceMappingURL=NavigationClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.22.0\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { AccountEntity, CacheManager } from '@azure/msal-common';\nimport { EventType } from './EventType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler(logger, browserCrypto) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger;\r\n this.browserCrypto = browserCrypto;\r\n this.listeningToStorageEvents = false;\r\n this.handleAccountCacheChange = this.handleAccountCacheChange.bind(this);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n EventHandler.prototype.addEventCallback = function (callback) {\r\n if (typeof window !== \"undefined\") {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n EventHandler.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.enableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (!this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Adding account storage listener.\");\r\n this.listeningToStorageEvents = true;\r\n window.addEventListener(\"storage\", this.handleAccountCacheChange);\r\n }\r\n else {\r\n this.logger.verbose(\"Account storage listener already registered.\");\r\n }\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.disableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Removing account storage listener.\");\r\n window.removeEventListener(\"storage\", this.handleAccountCacheChange);\r\n this.listeningToStorageEvents = false;\r\n }\r\n else {\r\n this.logger.verbose(\"No account storage listener registered.\");\r\n }\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n EventHandler.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (typeof window !== \"undefined\") {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Emit account added/removed events when cached accounts are changed in a different tab or frame\r\n */\r\n EventHandler.prototype.handleAccountCacheChange = function (e) {\r\n try {\r\n var cacheValue = e.newValue || e.oldValue;\r\n if (!cacheValue) {\r\n return;\r\n }\r\n var parsedValue = JSON.parse(cacheValue);\r\n if (typeof parsedValue !== \"object\" || !AccountEntity.isAccountEntity(parsedValue)) {\r\n return;\r\n }\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n if (!e.oldValue && e.newValue) {\r\n this.logger.info(\"Account was added to cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);\r\n }\r\n else if (!e.newValue && e.oldValue) {\r\n this.logger.info(\"Account was removed from cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);\r\n }\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n };\r\n return EventHandler;\r\n}());\n\nexport { EventHandler };\n//# sourceMappingURL=EventHandler.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { ThrottlingConstants, CacheSchemaType, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n var time = throttleTime <= 0 ? 0 : throttleTime;\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, request, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: request.authority,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: homeAccountIdentifier,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n//# sourceMappingURL=ThrottlingUtils.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n//# sourceMappingURL=NetworkManager.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n var headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n break;\r\n }\r\n }\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers, proxyUrl: this.config.systemOptions.proxyUrl })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n return BaseClient;\r\n}());\n\nexport { BaseClient };\n//# sourceMappingURL=BaseClient.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n var promptValues = [];\r\n for (var value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary or duplicate query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n return eQParams;\r\n };\r\n return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n//# sourceMappingURL=RequestValidator.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n if (libraryInfo.os) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n }\r\n if (libraryInfo.cpu) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n };\r\n /**\r\n * Add client telemetry parameters\r\n * @param appTelemetry\r\n */\r\n RequestParameterBuilder.prototype.addApplicationTelemetry = function (appTelemetry) {\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appName) {\r\n this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);\r\n }\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appVersion) {\r\n this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);\r\n }\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQparams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQparams) {\r\n var _this = this;\r\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\r\n Object.keys(eQparams).forEach(function (key) {\r\n _this.parameters.set(key, eQparams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, username);\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, password);\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * add SSH JWK and key ID to query params\r\n */\r\n RequestParameterBuilder.prototype.addSshJwk = function (sshJwkString) {\r\n if (!StringUtils.isEmpty(sshJwkString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));\r\n }\r\n };\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n };\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n RequestParameterBuilder.prototype.addThrottling = function () {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n };\r\n /**\r\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\r\n */\r\n RequestParameterBuilder.prototype.addLogoutHint = function (logoutHint) {\r\n this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n//# sourceMappingURL=RequestParameterBuilder.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n//# sourceMappingURL=CacheRecord.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n//# sourceMappingURL=TokenCacheContext.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, oboAssertion, handlingRefreshTokenResponse) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n // Add keyId from request to serverTokenResponse if defined\r\n serverTokenResponse.key_id = serverTokenResponse.key_id || request.sshKid || undefined;\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenObj, oboAssertion, authCodePayload);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 5, 8]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal.\r\n */\r\n if (handlingRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n }\r\n }\r\n return [4 /*yield*/, this.cacheStorage.saveCacheRecord(cacheRecord)];\r\n case 4:\r\n _a.sent();\r\n return [3 /*break*/, 8];\r\n case 5:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 7];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 6:\r\n _a.sent();\r\n _a.label = 7;\r\n case 7: return [7 /*endfinally*/];\r\n case 8: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, serverTokenResponse.spa_code)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, request, idTokenObj, oboAssertion, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING, oboAssertion);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, oboAssertion, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(request.scopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, oboAssertion, serverTokenResponse.key_id, request.claims, request.requestedClaimsHash);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, oboAssertion);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, oboAssertion, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : Constants.EMPTY_STRING;\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : Constants.EMPTY_STRING;\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, oboAssertion, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, idToken, authority, oboAssertion, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, oboAssertion, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState, code) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, uid, tid;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n accessToken = Constants.EMPTY_STRING;\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(cacheRecord.accessToken.secret, request)];\r\n case 1:\r\n accessToken = _d.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _d.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _d.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: code\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n//# sourceMappingURL=ResponseHandler.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { PromptValue, Separators, AADServerParamKeys, AuthenticationScheme, GrantType } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfoFromHomeAccountId, buildClientInfo } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from '../request/RequestValidator.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration) {\r\n var _this = _super.call(this, configuration) || this;\r\n // Flag to indicate if client is for hybrid spa auth code redemption\r\n _this.includeRedirectUri = true;\r\n return _this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator(this, function (_a) {\r\n queryString = this.createAuthCodeUrlQueryString(request);\r\n return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.info(\"in acquireToken call\");\r\n if (!request || StringUtils.isEmpty(request.code)) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n return [4 /*yield*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign(__assign({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\r\n /**\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI.\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var thumbprint, requestBody, queryParameters, ccsCredential, clientInfo, headers, endpoint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _a.sent();\r\n queryParameters = this.createTokenQueryParameters(request);\r\n ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCredential = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n endpoint = StringUtils.isEmpty(queryParameters) ? authority.tokenEndpoint : authority.tokenEndpoint + \"?\" + queryParameters;\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, cnfString, correlationId, ccsCred, clientInfo, clientInfo;\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n /*\r\n * For hybrid spa flow, there will be a code but no verifier\r\n * In this scenario, don't include redirect uri as auth code will not be bound to redirect URI\r\n */\r\n if (!this.includeRedirectUri) {\r\n // Just validate\r\n RequestValidator.validateRedirectUri(request.redirectUri);\r\n }\r\n else {\r\n // Validate and include redirect uri\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n cnfString = _b.sent();\r\n parameterBuilder.addPopToken(cnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _b.label = 3;\r\n case 3:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCred = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n // Add hybrid spa parameters if not already provided\r\n if (request.enableSpaAuthorizationCode && (!request.tokenBodyParameters || !request.tokenBodyParameters[AADServerParamKeys.RETURN_SPA_CODE])) {\r\n parameterBuilder.addExtraQueryParameters((_a = {},\r\n _a[AADServerParamKeys.RETURN_SPA_CODE] = \"1\",\r\n _a));\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n var requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n // generate the correlationId if not set by the user and add\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n var accountSid = this.extractAccountSid(request.account);\r\n // If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n if (accountSid && request.prompt === PromptValue.NONE) {\r\n // SessionId is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.logoutHint) {\r\n parameterBuilder.addLogoutHint(request.logoutHint);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n if (account.idTokenClaims) {\r\n var tokenClaims = account.idTokenClaims;\r\n return tokenClaims.sid || null;\r\n }\r\n return null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n//# sourceMappingURL=AuthorizationCodeClient.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n//# sourceMappingURL=OpenIdConfigResponse.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n function RegionDiscovery(networkInterface) {\r\n this.networkInterface = networkInterface;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata, proxyUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n autodetectedRegionName = environmentRegion;\r\n if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n options = RegionDiscovery.IMDS_OPTIONS;\r\n if (proxyUrl) {\r\n options.proxyUrl = proxyUrl;\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];\r\n case 2:\r\n localIMDSVersionResponse = _a.sent();\r\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.getCurrentVersion(options)];\r\n case 3:\r\n currentIMDSVersion = _a.sent();\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n }\r\n return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];\r\n case 4:\r\n currentIMDSVersionResponse = _a.sent();\r\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n _a.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n _a.sent();\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n _a.label = 9;\r\n case 9:\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return [2 /*return*/, autodetectedRegionName || null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise>\r\n */\r\n RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", options, Constants.IMDS_TIMEOUT)];\r\n });\r\n });\r\n };\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.getCurrentVersion = function (options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", options)];\r\n case 1:\r\n response = _a.sent();\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n }\r\n return [2 /*return*/, null];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, null];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // Options for the IMDS endpoint request\r\n RegionDiscovery.IMDS_OPTIONS = {\r\n headers: {\r\n Metadata: \"true\",\r\n },\r\n };\r\n return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n//# sourceMappingURL=RegionDiscovery.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { AzureCloudInstance } from './AuthorityOptions.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions, proxyUrl) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface);\r\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n this.proxyUrl = proxyUrl || Constants.EMPTY_STRING;\r\n }\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n if (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS) {\r\n return AuthorityType.Adfs;\r\n }\r\n return AuthorityType.Default;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this._canonicalAuthority.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n // ROPC policies may not have end_session_endpoint set\r\n if (!this.metadata.end_session_endpoint) {\r\n throw ClientAuthError.createLogoutNotSupportedError();\r\n }\r\n var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.issuer);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return endpoint;\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs || this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _a.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _a.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, autodetectedRegionName, azureRegion;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _b.sent();\r\n if (!metadata) return [3 /*break*/, 4];\r\n if (!((_a = this.authorityOptions.azureRegionConfiguration) === null || _a === void 0 ? void 0 : _a.azureRegion)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration.environmentRegion, this.regionDiscoveryMetadata, this.proxyUrl)];\r\n case 2:\r\n autodetectedRegionName = _b.sent();\r\n azureRegion = this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG\r\n ? autodetectedRegionName\r\n : this.authorityOptions.azureRegionConfiguration.azureRegion;\r\n if (this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n }\r\n else {\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome = (this.authorityOptions.azureRegionConfiguration.azureRegion === autodetectedRegionName) ?\r\n RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\r\n RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\r\n }\r\n else {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n }\r\n }\r\n if (azureRegion) {\r\n this.regionDiscoveryMetadata.region_used = azureRegion;\r\n metadata = Authority.replaceWithRegionalInformation(metadata, azureRegion);\r\n }\r\n _b.label = 3;\r\n case 3:\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n case 4: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached authority metadata can be used for the requested authority\r\n * Protects against same domain different authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var options, response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n options = {};\r\n if (this.proxyUrl) {\r\n options.proxyUrl = this.proxyUrl;\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache and returns where the information was retrived from\r\n * @param cachedMetadata\r\n * @param newMetadata\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If The cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _a.sent();\r\n if (metadata) {\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n else {\r\n // Metadata could not be obtained from config, cache or network\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n try {\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n if (metadata) {\r\n return metadata;\r\n }\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n * @param networkInterface\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, options, match, response, metadata;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n options = {};\r\n if (this.proxyUrl) {\r\n options.proxyUrl = this.proxyUrl;\r\n }\r\n match = null;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n metadata = isCloudInstanceDiscoveryResponse(response.body) ? response.body.metadata : [];\r\n if (metadata.length === 0) {\r\n // If no metadata is returned, authority is untrusted\r\n return [2 /*return*/, null];\r\n }\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/, null];\r\n case 4:\r\n if (!match) {\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * helper function to populate the authority based on azureCloudOptions\r\n * @param authorityString\r\n * @param azureCloudOptions\r\n */\r\n Authority.generateAuthority = function (authorityString, azureCloudOptions) {\r\n var authorityAzureCloudInstance;\r\n if (azureCloudOptions && azureCloudOptions.azureCloudInstance !== AzureCloudInstance.None) {\r\n var tenant = azureCloudOptions.tenant ? azureCloudOptions.tenant : Constants.DEFAULT_COMMON_TENANT;\r\n authorityAzureCloudInstance = azureCloudOptions.azureCloudInstance + \"/\" + tenant + \"/\";\r\n }\r\n return authorityAzureCloudInstance ? authorityAzureCloudInstance : authorityString;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n Authority.isPublicCloudAuthority = function (host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n };\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n var authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n }\r\n // Include the query string portion of the url\r\n var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return url + \"?\" + queryString;\r\n return url;\r\n };\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, \"allowestsrnonmsi=true\");\r\n if (metadata.end_session_endpoint) {\r\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n }\r\n return metadata;\r\n };\r\n return Authority;\r\n}());\n\nexport { Authority };\n//# sourceMappingURL=Authority.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryResponse.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions, proxyUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenAuthority, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUri, networkClient, cacheManager, authorityOptions, proxyUrl);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions, proxyUrl) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions, proxyUrl);\r\n };\r\n return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n//# sourceMappingURL=AuthorityFactory.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n var regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n };\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n };\r\n /**\r\n * Set cache outcome\r\n */\r\n ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n//# sourceMappingURL=ServerTelemetryManager.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, Constants, AuthorizationCodeClient, Authority, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { version } from '../packageMetadata.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nvar StandardInteractionClient = /** @class */ (function (_super) {\r\n __extends(StandardInteractionClient, _super);\r\n function StandardInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, correlationId) || this;\r\n _this.navigationClient = navigationClient;\r\n return _this;\r\n }\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: \"\", codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n var validLogoutRequest = __assign({ correlationId: this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /**\r\n * Set logout_hint to be login_hint from ID Token Claims if present\r\n * and logoutHint attribute wasn't manually set in logout request\r\n */\r\n if (logoutRequest) {\r\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\r\n if (!logoutRequest.logoutHint) {\r\n if (logoutRequest.account) {\r\n var logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\r\n if (logoutHint) {\r\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\r\n validLogoutRequest.logoutHint = logoutHint;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\r\n }\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\r\n * logout_hint in end session request.\r\n * @param account\r\n */\r\n StandardInteractionClient.prototype.getLogoutHintFromIdTokenClaims = function (account) {\r\n var idTokenClaims = account.idTokenClaims;\r\n if (idTokenClaims) {\r\n if (idTokenClaims.login_hint) {\r\n return idTokenClaims.login_hint;\r\n }\r\n else {\r\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\r\n }\r\n return null;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getClientConfiguration called\");\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true\r\n },\r\n loggerOptions: {\r\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\r\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled,\r\n logLevel: this.config.system.loggerOptions.logLevel,\r\n correlationId: this.correlationId\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: \"\",\r\n os: \"\"\r\n }\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.validateAndExtractStateFromHash = function (hash, interactionType, requestCorrelationId) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hash);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\r\n return serverParams.state;\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions, userAuthority, builtAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n };\r\n userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;\r\n builtAuthority = Authority.generateAuthority(userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var redirectUri, browserState, state, validatedRequest, _a, account, legacyLoginHint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.verbose(\"initializeAuthorizationRequest called\");\r\n redirectUri = this.getRedirectUri(request.redirectUri);\r\n browserState = {\r\n interactionType: interactionType\r\n };\r\n state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);\r\n _a = [{}];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n validatedRequest = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT }]);\r\n account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\");\r\n this.logger.verbosePii(\"Setting validated request account: \" + account);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL/MSAL v1 SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\r\n legacyLoginHint = this.browserStorage.getLegacyLoginHint();\r\n if (legacyLoginHint) {\r\n validatedRequest.loginHint = legacyLoginHint;\r\n }\r\n }\r\n return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return StandardInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { StandardInteractionClient };\n//# sourceMappingURL=StandardInteractionClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator, __assign, __spread } from '../_virtual/_tslib.js';\nimport { AccountEntity, AuthenticationScheme, ClientConfigurationError, StringUtils, UrlString, ServerTelemetryManager } from '@azure/msal-common';\nimport { version } from '../packageMetadata.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BaseInteractionClient = /** @class */ (function () {\r\n function BaseInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.correlationId = correlationId || this.browserCrypto.createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n }\r\n BaseInteractionClient.prototype.clearCacheOnLogout = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!account) return [3 /*break*/, 5];\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account))];\r\n case 2:\r\n _a.sent();\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n return [3 /*break*/, 4];\r\n case 4: return [3 /*break*/, 9];\r\n case 5:\r\n _a.trys.push([5, 8, , 9]);\r\n // Clear all accounts and tokens\r\n return [4 /*yield*/, this.browserStorage.clear()];\r\n case 6:\r\n // Clear all accounts and tokens\r\n _a.sent();\r\n // Clear any stray keys from IndexedDB\r\n return [4 /*yield*/, this.browserCrypto.clearKeystore()];\r\n case 7:\r\n // Clear any stray keys from IndexedDB\r\n _a.sent();\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\");\r\n return [3 /*break*/, 9];\r\n case 8:\r\n _a.sent();\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n BaseInteractionClient.prototype.initializeBaseRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, scopes, _a, validatedRequest;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n authority = request.authority || this.config.auth.authority;\r\n scopes = __spread(((request && request.scopes) || []));\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!request.authenticationScheme) {\r\n request.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (!request.sshJwk) {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n if (!request.sshKid) {\r\n throw ClientConfigurationError.createMissingSshKidError();\r\n }\r\n }\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + request.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n if (!(request.claims && !StringUtils.isEmpty(request.claims))) return [3 /*break*/, 2];\r\n _a = request;\r\n return [4 /*yield*/, this.browserCrypto.hashString(request.claims)];\r\n case 1:\r\n _a.requestedClaimsHash = _b.sent();\r\n _b.label = 2;\r\n case 2:\r\n validatedRequest = __assign(__assign({}, request), { correlationId: this.correlationId, authority: authority,\r\n scopes: scopes });\r\n return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n BaseInteractionClient.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n BaseInteractionClient.prototype.initializeServerTelemetryManager = function (apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1]\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n return BaseInteractionClient;\r\n}());\n\nexport { BaseInteractionClient };\n//# sourceMappingURL=BaseInteractionClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { StringUtils, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupUtils = /** @class */ (function () {\r\n function PopupUtils(storageImpl, logger) {\r\n this.browserStorage = storageImpl;\r\n this.logger = logger;\r\n // Properly sets this reference for the unload event.\r\n this.unloadWindow = this.unloadWindow.bind(this);\r\n }\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @param popupWindowAttributes\r\n * @ignore\r\n * @hidden\r\n */\r\n PopupUtils.prototype.openPopup = function (urlNavigate, popupParams) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popupParams.popup) {\r\n popupWindow = popupParams.popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popupParams.popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes, this.logger);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n /**\r\n * Helper function to set popup window dimensions and position\r\n * @param urlNavigate\r\n * @param popupName\r\n * @param popupWindowAttributes\r\n * @returns\r\n */\r\n PopupUtils.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes, logger) {\r\n var _a, _b, _c, _d;\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width;\r\n var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height;\r\n var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top;\r\n var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left;\r\n if (!width || width < 0 || width > winWidth) {\r\n logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\r\n width = BrowserConstants.POPUP_WIDTH;\r\n }\r\n if (!height || height < 0 || height > winHeight) {\r\n logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\r\n height = BrowserConstants.POPUP_HEIGHT;\r\n }\r\n if (!top || top < 0 || top > winHeight) {\r\n logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\r\n top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n }\r\n if (!left || left < 0 || left > winWidth) {\r\n logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\r\n left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n }\r\n return window.open(urlNavigate, popupName, \"width=\" + width + \", height=\" + height + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupUtils.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupUtils.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n */\r\n PopupUtils.prototype.monitorPopupForSameOrigin = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var intervalId = setInterval(function () {\r\n if (popupWindow.closed) {\r\n // Window is closed\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n clearInterval(intervalId);\r\n resolve();\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupUtils.generatePopupName = function (clientId, scopes, authority, correlationId) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + scopes.join(\"-\") + \".\" + authority + \".\" + correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupUtils.generateLogoutPopupName = function (clientId, request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + homeAccountId + \".\" + request.correlationId;\r\n };\r\n return PopupUtils;\r\n}());\n\nexport { PopupUtils };\n//# sourceMappingURL=PopupUtils.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.browserRequestLogger = browserRequestLogger;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse;\r\n return __generator(this, function (_a) {\r\n this.browserRequestLogger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n return [2 /*return*/, this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule)];\r\n });\r\n });\r\n };\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse\r\n * @param state\r\n * @param authority\r\n * @param networkModule\r\n * @returns\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromServer = function (authCodeResponse, state, authority, networkModule, validateNonce) {\r\n if (validateNonce === void 0) { validateNonce = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.browserRequestLogger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n }\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname\r\n * @param authority\r\n * @param networkModule\r\n */\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n InteractionHandler.prototype.checkCcsCredentials = function () {\r\n // Look up ccs credential in temp cache\r\n var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(\"Cache credential could not be parsed: \" + cachedCcsCred);\r\n }\r\n }\r\n return null;\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n//# sourceMappingURL=InteractionHandler.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\r\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\r\n */\r\nvar PopupHandler = /** @class */ (function (_super) {\r\n __extends(PopupHandler, _super);\r\n function PopupHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);\r\n return _this;\r\n }\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n this.browserRequestLogger.infoPii(\"Navigate to: \" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.popupUtils.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - milliseconds until timeout\r\n */\r\n PopupHandler.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(function () {\r\n var contentHash = popupWindow.location.hash;\r\n BrowserUtils.clearHash(popupWindow);\r\n _this.popupUtils.cleanPopup(popupWindow);\r\n if (!contentHash) {\r\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\r\n }\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n return contentHash;\r\n }\r\n else {\r\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\r\n }\r\n });\r\n };\r\n return PopupHandler;\r\n}(InteractionHandler));\n\nexport { PopupHandler };\n//# sourceMappingURL=PopupHandler.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { OIDC_DEFAULT_SCOPES, AuthError, ThrottlingUtils, UrlString } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { PopupHandler } from '../interaction_handler/PopupHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupClient = /** @class */ (function (_super) {\r\n __extends(PopupClient, _super);\r\n function PopupClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n PopupClient.prototype.acquireToken = function (request) {\r\n try {\r\n var popupName = PopupUtils.generatePopupName(this.config.auth.clientId, request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority, this.correlationId);\r\n var popupWindowAttributes = request.popupWindowAttributes || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes, this.logger);\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes, popup);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n PopupClient.prototype.logout = function (logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n var validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n var popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest);\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n var popupWindowAttributes = (logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.popupWindowAttributes) || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, undefined, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes, this.logger);\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PopupClient.prototype.acquireTokenPopupAsync = function (request, popupName, popupWindowAttributes, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, validRequest, authCodeRequest, authClient, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, state, result, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Popup)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || \"\", validRequest.account || null);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 8, , 9]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest, this.logger);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName,\r\n popupWindowAttributes: popupWindowAttributes\r\n };\r\n popupWindow = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, interactionHandler.monitorPopupForHash(popupWindow)];\r\n case 6:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Popup, validRequest.correlationId);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n case 7:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 8:\r\n e_1 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n PopupClient.prototype.logoutPopupAsync = function (validRequest, popupName, popupWindowAttributes, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupUtils, popupWindow, e_2, navigationOptions, absoluteUrl, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 8, , 9]);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupUtils = new PopupUtils(this.browserStorage, this.logger);\r\n popupWindow = popupUtils.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup });\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n _a.label = 4;\r\n case 4:\r\n _a.trys.push([4, 6, , 7]);\r\n // Don't care if this throws an error (User Cancelled)\r\n return [4 /*yield*/, popupUtils.monitorPopupForSameOrigin(popupWindow)];\r\n case 5:\r\n // Don't care if this throws an error (User Cancelled)\r\n _a.sent();\r\n this.logger.verbose(\"Popup successfully redirected to postLogoutRedirectUri\");\r\n return [3 /*break*/, 7];\r\n case 6:\r\n e_2 = _a.sent();\r\n this.logger.verbose(\"Error occurred while monitoring popup for same origin. Session on server may remain active. Error: \" + e_2);\r\n return [3 /*break*/, 7];\r\n case 7:\r\n popupUtils.cleanPopup(popupWindow);\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecting main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 9];\r\n case 8:\r\n e_3 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n throw e_3;\r\n case 9:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PopupClient;\r\n}(StandardInteractionClient));\n\nexport { PopupClient };\n//# sourceMappingURL=PopupClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ThrottlingUtils, ClientAuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, browserCrypto) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.browserRequestLogger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to: \" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.browserRequestLogger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule, clientId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.browserRequestLogger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Remove throttle if it exists\r\n if (clientId) {\r\n ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest);\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n//# sourceMappingURL=RedirectHandler.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { UrlString, AuthError } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { TemporaryCacheKeys, ApiId, InteractionType } from '../utils/BrowserConstants.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectClient = /** @class */ (function (_super) {\r\n __extends(RedirectClient, _super);\r\n function RedirectClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n RedirectClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validRequest, serverTelemetryManager, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Redirect)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || \"\", validRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.browserCrypto);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(\"Redirect start page: \" + redirectStartPage);\r\n return [4 /*yield*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 6: \r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, _a.sent()];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n RedirectClient.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, responseHash, state, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n state = void 0;\r\n try {\r\n state = this.validateAndExtractStateFromHash(responseHash, InteractionType.Redirect);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || \"\";\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 3];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 2:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 3:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 4];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 4:\r\n if (!(!BrowserUtils.isInIframe() || this.config.system.allowRedirectInIframe)) return [3 /*break*/, 9];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 6];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 5:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 8];\r\n case 6:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 7:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n }\r\n _a.label = 9;\r\n case 9: return [2 /*return*/, null];\r\n case 10:\r\n e_2 = _a.sent();\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_2;\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n RedirectClient.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n if (isResponseHash) {\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n RedirectClient.prototype.handleHash = function (hash, state, serverTelemetryManager) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, currentAuthority, authClient, interactionHandler;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n this.logger.verbose(\"handleHash called, retrieved cached request\");\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 1:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.browserCrypto);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient, this.config.auth.clientId)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n RedirectClient.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, navigationOptions, authClient, logoutUri, navigate, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validLogoutRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 7];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 5];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5:\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 9];\r\n case 7: return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 8:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 9: return [3 /*break*/, 11];\r\n case 10:\r\n e_3 = _a.sent();\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n throw e_3;\r\n case 11:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n RedirectClient.prototype.getRedirectStartPage = function (requestStartPage) {\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n return RedirectClient;\r\n}(StandardInteractionClient));\n\nexport { RedirectClient };\n//# sourceMappingURL=RedirectClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger, navigateFrameWait) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;\r\n _this.navigateFrameWait = navigateFrameWait;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.browserRequestLogger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = this.loadFrameSync(requestUrl);\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, _a];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.browserRequestLogger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n//# sourceMappingURL=SilentHandler.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, AzureCloudInstance, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: \"\",\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: \"\",\r\n authorityMetadata: \"\",\r\n redirectUri: \"\",\r\n postLogoutRedirectUri: \"\",\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD,\r\n azureCloudOptions: {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: \"\"\r\n },\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: function () { },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false });\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), userInputSystem)\r\n };\r\n return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n//# sourceMappingURL=Configuration.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, StringUtils, PromptValue } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentIframeClient = /** @class */ (function (_super) {\r\n __extends(SilentIframeClient, _super);\r\n function SilentIframeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none\r\n * @param request\r\n */\r\n SilentIframeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n this.logger.warning(\"No user hint provided. The authorization server may need more information to complete this request.\");\r\n }\r\n // Check that prompt is set to none, throw error if it is set to anything else.\r\n if (request.prompt && request.prompt !== PromptValue.NONE) {\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: PromptValue.NONE }), InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || \"\", silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(silentRequest)];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n return [4 /*yield*/, this.silentTokenHelper(navigateUrl, authCodeRequest, authClient, this.logger)];\r\n case 6: return [2 /*return*/, _a.sent()];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentIframeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n SilentIframeClient.prototype.silentTokenHelper = function (navigateUrl, authCodeRequest, authClient, browserRequestLogger) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentHandler, msalFrame, hash, state;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, browserRequestLogger, this.config.system.navigateFrameWait);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 1:\r\n msalFrame = _a.sent();\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 2:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Silent, authCodeRequest.correlationId);\r\n // Handle response from hash string\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentIframeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentIframeClient };\n//# sourceMappingURL=SilentIframeClient.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from '../error/InteractionRequiredAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator(this, function (_a) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var refreshToken, refreshTokenRequest;\r\n return __generator(this, function (_a) {\r\n refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\r\n // no refresh Token\r\n if (!refreshToken) {\r\n throw InteractionRequiredAuthError.createNoTokensFoundError();\r\n }\r\n refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n } });\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var requestBody, queryParameters, headers, thumbprint, endpoint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _a.sent();\r\n queryParameters = this.createTokenQueryParameters(request);\r\n headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParameters);\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, correlationId, clientAssertion, popTokenGenerator, cnfString, clientInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n cnfString = _a.sent();\r\n parameterBuilder.addPopToken(cnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _a.label = 3;\r\n case 3:\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n//# sourceMappingURL=RefreshTokenClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { AuthError, RefreshTokenClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentRefreshClient = /** @class */ (function (_super) {\r\n __extends(SilentRefreshClient, _super);\r\n function SilentRefreshClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n SilentRefreshClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, _a, serverTelemetryManager, refreshTokenClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n silentRequest = __assign.apply(void 0, _a.concat([_b.sent()]));\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 2:\r\n refreshTokenClient = _b.sent();\r\n this.logger.verbose(\"Refresh token client created\");\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest).catch(function (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(_this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n throw e;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentRefreshClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentRefreshClient;\r\n}(StandardInteractionClient));\n\nexport { SilentRefreshClient };\n//# sourceMappingURL=SilentRefreshClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { Authority, IdTokenEntity, AuthToken, AccountEntity, ScopeSet, AccessTokenEntity } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Token cache manager\r\n */\r\nvar TokenCache = /** @class */ (function () {\r\n function TokenCache(configuration, storage, logger, cryptoObj) {\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n this.config = configuration;\r\n this.storage = storage;\r\n this.logger = logger;\r\n this.cryptoObj = cryptoObj;\r\n }\r\n // Move getAllAccounts here and cache utility APIs\r\n /**\r\n * API to load tokens to msal-browser cache.\r\n * @param request\r\n * @param response\r\n * @param options\r\n */\r\n TokenCache.prototype.loadExternalTokens = function (request, response, options) {\r\n this.logger.info(\"TokenCache - loadExternalTokens called\");\r\n if (!response.id_token) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes id token.\");\r\n }\r\n if (request.account) {\r\n this.loadIdToken(response.id_token, request.account.homeAccountId, request.account.environment, request.account.tenantId, options);\r\n this.loadAccessToken(request, response, request.account.homeAccountId, request.account.environment, request.account.tenantId, options);\r\n }\r\n else if (request.authority) {\r\n var authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);\r\n var authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n };\r\n var authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions);\r\n // \"clientInfo\" from options takes precedence over \"clientInfo\" in response\r\n if (options.clientInfo) {\r\n this.logger.trace(\"TokenCache - homeAccountId from options\");\r\n this.loadIdToken(response.id_token, options.clientInfo, authority.hostnameAndPort, authority.tenant, options);\r\n this.loadAccessToken(request, response, options.clientInfo, authority.hostnameAndPort, authority.tenant, options);\r\n }\r\n else if (response.client_info) {\r\n this.logger.trace(\"TokenCache - homeAccountId from response\");\r\n this.loadIdToken(response.id_token, response.client_info, authority.hostnameAndPort, authority.tenant, options);\r\n this.loadAccessToken(request, response, response.client_info, authority.hostnameAndPort, authority.tenant, options);\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide clientInfo in the response or options.\");\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide a request with an account or a request with authority.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load id tokens to msal-browser cache\r\n * @param idToken\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @param options\r\n */\r\n TokenCache.prototype.loadIdToken = function (idToken, homeAccountId, environment, tenantId, options) {\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountId, environment, idToken, this.config.auth.clientId, tenantId);\r\n var idAuthToken = new AuthToken(idToken, this.cryptoObj);\r\n var accountEntity = options.clientInfo ?\r\n AccountEntity.createAccount(options.clientInfo, homeAccountId, idAuthToken, undefined, undefined, undefined, undefined, environment) :\r\n AccountEntity.createGenericAccount(homeAccountId, idAuthToken, undefined, undefined, undefined, undefined, environment);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading id token\");\r\n this.storage.setAccount(accountEntity);\r\n this.storage.setIdTokenCredential(idTokenEntity);\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load access tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param options\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns\r\n */\r\n TokenCache.prototype.loadAccessToken = function (request, response, homeAccountId, environment, tenantId, options) {\r\n if (!response.access_token) {\r\n this.logger.verbose(\"TokenCache - No access token provided for caching\");\r\n return;\r\n }\r\n if (!response.expires_in) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes expires_in value.\");\r\n }\r\n if (!options.extendedExpiresOn) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide an extendedExpiresOn value in the options.\");\r\n }\r\n var scopes = new ScopeSet(request.scopes).printScopes();\r\n var expiresOn = response.expires_in;\r\n var extendedExpiresOn = options.extendedExpiresOn;\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, this.cryptoObj);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading access token\");\r\n this.storage.setAccessTokenCredential(accessTokenEntity);\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n return TokenCache;\r\n}());\n\nexport { TokenCache };\n//# sourceMappingURL=TokenCache.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthorizationCodeClient } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar HybridSpaAuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(HybridSpaAuthorizationCodeClient, _super);\r\n function HybridSpaAuthorizationCodeClient(config) {\r\n var _this = _super.call(this, config) || this;\r\n _this.includeRedirectUri = false;\r\n return _this;\r\n }\r\n return HybridSpaAuthorizationCodeClient;\r\n}(AuthorizationCodeClient));\n\nexport { HybridSpaAuthorizationCodeClient };\n//# sourceMappingURL=HybridSpaAuthorizationCodeClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { HybridSpaAuthorizationCodeClient } from './HybridSpaAuthorizationCodeClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentAuthCodeClient = /** @class */ (function (_super) {\r\n __extends(SilentAuthCodeClient, _super);\r\n function SilentAuthCodeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by redeeming an authorization code against the /token endpoint\r\n * @param request\r\n */\r\n SilentAuthCodeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, clientConfig, authClient, silentHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"SilentAuthCodeClient.acquireToken called\");\r\n // Auth code payload is required\r\n if (!request.code) {\r\n throw BrowserAuthError.createAuthCodeRequiredError();\r\n }\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || \"\", silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n authCodeRequest = __assign(__assign({}, silentRequest), { code: request.code });\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n clientConfig = _a.sent();\r\n authClient = new HybridSpaAuthorizationCodeClient(clientConfig);\r\n this.logger.verbose(\"Auth code client created\");\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system.navigateFrameWait);\r\n // Handle auth code parameters from request\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromServer({\r\n code: request.code,\r\n msgraph_host: request.msGraphHost,\r\n cloud_graph_host_name: request.cloudGraphHostName,\r\n cloud_instance_host_name: request.cloudInstanceHostName\r\n }, silentRequest.state, authClient.authority, this.networkClient, false)];\r\n case 4:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentAuthCodeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n return SilentAuthCodeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentAuthCodeClient };\n//# sourceMappingURL=SilentAuthCodeClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { StringUtils, Logger, DEFAULT_CRYPTO_IMPLEMENTATION, Constants, ServerError, InteractionRequiredAuthError } from '@azure/msal-common';\nimport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, TemporaryCacheKeys, ApiId, BrowserCacheLocation, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { name, version } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { EventHandler } from '../event/EventHandler.js';\nimport { PopupClient } from '../interaction_client/PopupClient.js';\nimport { RedirectClient } from '../interaction_client/RedirectClient.js';\nimport { SilentIframeClient } from '../interaction_client/SilentIframeClient.js';\nimport { SilentRefreshClient } from '../interaction_client/SilentRefreshClient.js';\nimport { TokenCache } from '../cache/TokenCache.js';\nimport { SilentAuthCodeClient } from '../interaction_client/SilentAuthCodeClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n // Initial hybrid spa map\r\n this.hybridAuthCodeResponses = new Map();\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment ? new CryptoOps(this.logger) : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n this.eventHandler = new EventHandler(this.logger, this.browserCrypto);\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment ?\r\n new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger) :\r\n DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n // Initialize the token cache\r\n this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto);\r\n }\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response, correlationId, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n correlationId = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, true) || \"\";\r\n redirectClient = new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, correlationId);\r\n response = redirectClient.handleRedirectPromise(hash)\r\n .then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n })\r\n .catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isLoggedIn, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n // Preflight request\r\n this.logger.verbose(\"acquireTokenRedirect called\");\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n redirectClient = new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, request.correlationId);\r\n return [2 /*return*/, redirectClient.acquireToken(request).catch(function (e) {\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n throw e;\r\n })];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var _this = this;\r\n try {\r\n this.logger.verbose(\"acquireTokenPopup called\", request.correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n // If logged in, emit acquire token events\r\n var loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Popup, request);\r\n }\r\n var popupClient = new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, request.correlationId);\r\n return popupClient.acquireToken(request).then(function (result) {\r\n // If logged in, emit acquire token events\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n return result;\r\n }).catch(function (e) {\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentIframeClient, silentTokenResult, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"ssoSilent called\", request.correlationId);\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, request);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n silentIframeClient = new SilentIframeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.ssoSilent, request.correlationId);\r\n return [4 /*yield*/, silentIframeClient.acquireToken(request)];\r\n case 2:\r\n silentTokenResult = _a.sent();\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, silentTokenResult);\r\n return [2 /*return*/, silentTokenResult];\r\n case 3:\r\n e_1 = _a.sent();\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e_1);\r\n throw e_1;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByCode = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.trace(\"acquireTokenByCode called\", request.correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_START, InteractionType.Silent, request);\r\n try {\r\n if (!request.code) {\r\n throw BrowserAuthError.createAuthCodeRequiredError();\r\n }\r\n response = this.hybridAuthCodeResponses.get(request.code);\r\n if (!response) {\r\n this.logger.verbose(\"Initiating new acquireTokenByCode request\", request.correlationId);\r\n response = this.acquireTokenByCodeAsync(request)\r\n .then(function (result) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS, InteractionType.Silent, result);\r\n _this.hybridAuthCodeResponses.delete(request.code);\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.hybridAuthCodeResponses.delete(request.code);\r\n throw error;\r\n });\r\n this.hybridAuthCodeResponses.set(request.code, response);\r\n }\r\n else {\r\n this.logger.verbose(\"Existing acquireTokenByCode request found\", request.correlationId);\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n catch (e) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, e);\r\n throw e;\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a SilentAuthCodeClient to redeem an authorization code.\r\n * @param request\r\n * @returns Result of the operation to redeem the authorization code\r\n */\r\n ClientApplication.prototype.acquireTokenByCodeAsync = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentAuthCodeClient, silentTokenResult;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"acquireTokenByCodeAsync called\", request.correlationId);\r\n silentAuthCodeClient = new SilentAuthCodeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenByCode, request.correlationId);\r\n return [4 /*yield*/, silentAuthCodeClient.acquireToken(request)];\r\n case 1:\r\n silentTokenResult = _a.sent();\r\n return [2 /*return*/, silentTokenResult];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use this function to obtain a token before every call to the API / resource provider\r\n *\r\n * MSAL return's a cached token when available\r\n * Or it send's a request to the STS to obtain a new token using a refresh token.\r\n *\r\n * @param {@link SilentRequest}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRefreshClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, request);\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n silentRefreshClient = new SilentRefreshClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, request.correlationId);\r\n return [2 /*return*/, silentRefreshClient.acquireToken(request).catch(function (e) {\r\n var isServerError = e instanceof ServerError;\r\n var isInteractionRequiredError = e instanceof InteractionRequiredAuthError;\r\n var isInvalidGrantError = (e.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if (isServerError && isInvalidGrantError && !isInteractionRequiredError) {\r\n _this.logger.verbose(\"Refresh token expired or invalid, attempting acquire token by iframe\", request.correlationId);\r\n var silentIframeClient = new SilentIframeClient(_this.config, _this.browserStorage, _this.browserCrypto, _this.logger, _this.eventHandler, _this.navigationClient, ApiId.acquireTokenSilent_authCode, request.correlationId);\r\n return silentIframeClient.acquireToken(request);\r\n }\r\n throw e;\r\n })];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\");\r\n return [2 /*return*/, this.logoutRedirect(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var redirectClient;\r\n return __generator(this, function (_a) {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n redirectClient = new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n return [2 /*return*/, redirectClient.logout(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n try {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n var popupClient = new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n return popupClient.logout(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param userName\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (userName) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(userName) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching username found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching username: \" + userName);\r\n return allAccounts.filter(function (accountObj) { return accountObj.username.toLowerCase() === userName.toLowerCase(); })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(homeAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.homeAccountId === homeAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(localAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.localAccountId === localAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n this.browserStorage.setActiveAccount(account);\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n return this.browserStorage.getActiveAccount();\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n * * @param interactionType\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType) {\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n if (interactionType === InteractionType.Redirect || interactionType === InteractionType.Popup) {\r\n this.preflightInteractiveRequest();\r\n }\r\n };\r\n /**\r\n * Helper to validate app environment before making a request.\r\n * @param request\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function () {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Set interaction in progress temporary cache or throw if alread set.\r\n this.browserStorage.setInteractionInProgress(true);\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n return this.eventHandler.addEventCallback(callback);\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.enableAccountStorageEvents = function () {\r\n this.eventHandler.enableAccountStorageEvents();\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.disableAccountStorageEvents = function () {\r\n this.eventHandler.disableAccountStorageEvents();\r\n };\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n ClientApplication.prototype.getTokenCache = function () {\r\n return this.tokenCache;\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n /**\r\n * Returns the configuration object\r\n */\r\n ClientApplication.prototype.getConfiguration = function () {\r\n return this.config;\r\n };\r\n return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n//# sourceMappingURL=ClientApplication.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var environment, cacheRecord;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n if (request.forceRefresh) {\r\n // Must refresh due to present force_refresh flag.\r\n (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n environment = request.authority || this.authority.getPreferredCache();\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, this.config.authOptions.clientId, request, environment);\r\n if (!cacheRecord.accessToken) {\r\n // Must refresh due to non-existent access_token.\r\n (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // Must refresh due to expired access_token.\r\n (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within \" + this.config.systemOptions.tokenRenewalOffsetSeconds + \" seconds.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n // Must refresh due to the refresh_in value.\r\n (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _e.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n//# sourceMappingURL=SilentFlowClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { SilentFlowClient } from '@azure/msal-common';\nimport { EventType } from '../event/EventType.js';\nimport { InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentCacheClient = /** @class */ (function (_super) {\r\n __extends(SilentCacheClient, _super);\r\n function SilentCacheClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n SilentCacheClient.prototype.acquireToken = function (silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, silentAuthClient, cachedToken, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 1:\r\n silentAuthClient = _a.sent();\r\n this.logger.verbose(\"Silent auth client created\");\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n error_1 = _a.sent();\r\n if (error_1 instanceof BrowserAuthError && error_1.errorCode === BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n throw error_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentCacheClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentCacheClient.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n SilentCacheClient.prototype.initializeSilentRequest = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { account: account, forceRefresh: request.forceRefresh || false }])];\r\n }\r\n });\r\n });\r\n };\r\n return SilentCacheClient;\r\n}(StandardInteractionClient));\n\nexport { SilentCacheClient };\n//# sourceMappingURL=SilentCacheClient.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_REQUEST, InteractionType } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { SilentCacheClient } from '../interaction_client/SilentCacheClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n var _this = _super.call(this, configuration) || this;\r\n _this.activeSilentTokenRequests = new Map();\r\n return _this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"loginRedirect called\");\r\n return [2 /*return*/, this.acquireTokenRedirect(request || DEFAULT_REQUEST)];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n this.logger.verbose(\"loginPopup called\");\r\n return this.acquireTokenPopup(request || DEFAULT_REQUEST);\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account, thumbprint, silentRequestKey, cachedResponse, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\", request.correlationId);\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n thumbprint = {\r\n clientId: this.config.auth.clientId,\r\n authority: request.authority || \"\",\r\n scopes: request.scopes,\r\n homeAccountIdentifier: account.homeAccountId,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n silentRequestKey = JSON.stringify(thumbprint);\r\n cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\r\n if (typeof cachedResponse === \"undefined\") {\r\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", request.correlationId);\r\n response = this.acquireTokenSilentAsync(request, account)\r\n .then(function (result) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n throw error;\r\n });\r\n this.activeSilentTokenRequests.set(silentRequestKey, response);\r\n return [2 /*return*/, response];\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", request.correlationId);\r\n return [2 /*return*/, cachedResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n * @param {@link (SilentRequest:type)}\r\n * @param {@link (AccountInfo:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilentAsync = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentCacheClient, silentRequest;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n silentCacheClient = new SilentCacheClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, request.correlationId);\r\n return [4 /*yield*/, silentCacheClient.initializeSilentRequest(request, account)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n return [2 /*return*/, silentCacheClient.acquireToken(silentRequest).catch(function () { return __awaiter(_this, void 0, void 0, function () {\r\n var tokenRenewalResult, tokenRenewalError_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireTokenByRefreshToken(silentRequest)];\r\n case 1:\r\n tokenRenewalResult = _a.sent();\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);\r\n return [2 /*return*/, tokenRenewalResult];\r\n case 2:\r\n tokenRenewalError_1 = _a.sent();\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError_1);\r\n throw tokenRenewalError_1;\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n }); })];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n//# sourceMappingURL=PublicClientApplication.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n//# sourceMappingURL=BrowserConfigurationAuthError.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"ACCOUNT_ADDED\"] = \"msal:accountAdded\";\r\n EventType[\"ACCOUNT_REMOVED\"] = \"msal:accountRemoved\";\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_START\"] = \"msal:acquireTokenByCodeStart\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_SUCCESS\"] = \"msal:acquireTokenByCodeSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_FAILURE\"] = \"msal:acquireTokenByCodeFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n//# sourceMappingURL=EventType.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n POLL_INTERVAL_MS: 50,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n TemporaryCacheKeys[\"CCS_CREDENTIAL\"] = \"ccs.credential\";\r\n TemporaryCacheKeys[\"CORRELATION_ID\"] = \"request.correlationId\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\n/**\r\n * Cache keys stored in-memory\r\n */\r\nvar InMemoryCacheKeys;\r\n(function (InMemoryCacheKeys) {\r\n InMemoryCacheKeys[\"WRAPPER_SKU\"] = \"wrapper.sku\";\r\n InMemoryCacheKeys[\"WRAPPER_VER\"] = \"wrapper.version\";\r\n})(InMemoryCacheKeys || (InMemoryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenByCode\"] = 866] = \"acquireTokenByCode\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n InteractionType[\"None\"] = \"none\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\r\n// DatabaseStorage Constants\r\nvar DB_NAME = \"msal.db\";\r\nvar DB_VERSION = 1;\r\nvar DB_TABLE_NAME = DB_NAME + \".keys\";\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, TemporaryCacheKeys, WrapperSKU };\n//# sourceMappingURL=BrowserConstants.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*! *****************************************************************************\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\nfunction __extends(d, b) {\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\nvar __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\nfunction __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\nfunction __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 (_) 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\nfunction __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}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants, Separators } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n//# sourceMappingURL=ClientInfo.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n//# sourceMappingURL=AuthorityType.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: --\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * oboAssertion: access token passed in as part of OBO request\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: --\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || Constants.EMPTY_STRING,\r\n accountInterface.tenantId || Constants.EMPTY_STRING,\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, oboAssertion, cloudGraphHostName, msGraphHost, environment) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n var env = environment || (authority && authority.getPreferredCache());\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || Constants.EMPTY_STRING;\r\n account.oboAssertion = oboAssertion;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || Constants.EMPTY_STRING;\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array. In most cases it will contain a single email.\r\n * This field should not be relied upon if a custom policy is configured to return more than 1 email.\r\n */\r\n account.username = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username) || (((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : Constants.EMPTY_STRING);\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (homeAccountId, idToken, authority, oboAssertion, cloudGraphHostName, msGraphHost, environment) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority && authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = Constants.EMPTY_STRING;\r\n account.oboAssertion = oboAssertion;\r\n var env = environment || authority && authority.getPreferredCache();\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || Constants.EMPTY_STRING;\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || Constants.EMPTY_STRING;\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || Constants.EMPTY_STRING;\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n var accountAClaims = (accountA.idTokenClaims || {});\r\n var accountBClaims = (accountB.idTokenClaims || {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n (accountAClaims.nonce === accountBClaims.nonce);\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment) &&\r\n claimsMatch;\r\n };\r\n return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n//# sourceMappingURL=AccountEntity.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n __extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || Constants.EMPTY_STRING;\r\n _this.subError = suberror || Constants.EMPTY_STRING;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.prototype.setCorrelationId = function (correlationId) {\r\n this.correlationId = correlationId;\r\n };\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n//# sourceMappingURL=AuthError.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n DeviceCodeUnknownError: {\r\n code: \"device_code_unknown_error\",\r\n desc: \"Device code stopped polling for unknown reasons.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Server response does not contain an authorization code to proceed\"\r\n },\r\n noAzureRegionDetected: {\r\n code: \"no_azure_region_detected\",\r\n desc: \"No azure region was detected and no fallback was made available\"\r\n },\r\n accessTokenEntityNullError: {\r\n code: \"access_token_entity_null\",\r\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n },\r\n bindingKeyNotRemovedError: {\r\n code: \"binding_key_not_removed\",\r\n desc: \"Could not remove the credential's binding key from storage.\"\r\n },\r\n logoutNotSupported: {\r\n code: \"end_session_endpoint_not_supported\",\r\n desc: \"Provided authority does not support logout.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n __extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\r\n */\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeUnknownError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n ClientAuthError.createBindingKeyNotRemovedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\r\n };\r\n /**\r\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\r\n */\r\n ClientAuthError.createLogoutNotSupportedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n//# sourceMappingURL=ClientAuthError.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nvar InteractionRequiredServerErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Interaction required errors defined by the SDK\r\n */\r\nvar InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No refresh token found in the cache. Please sign-in.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n InteractionRequiredAuthError.createNoTokensFoundError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(AuthError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage, InteractionRequiredServerErrorMessage };\n//# sourceMappingURL=InteractionRequiredAuthError.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () {\r\n return;\r\n };\r\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\r\n this.level = typeof (loggerOptions.logLevel) === \"number\" ? loggerOptions.logLevel : LogLevel.Info;\r\n this.correlationId = loggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n var logHeader;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n }\r\n else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n }\r\n else {\r\n logHeader = \"[\" + timestamp + \"]\";\r\n }\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages.\r\n */\r\n Logger.prototype.trace = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n Logger.prototype.tracePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n//# sourceMappingURL=Logger.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n HeaderNames[\"WWWAuthenticate\"] = \"WWW-Authenticate\";\r\n HeaderNames[\"AuthenticationInfo\"] = \"Authentication-Info\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n AADServerParamKeys[\"X_APP_NAME\"] = \"x-app-name\";\r\n AADServerParamKeys[\"X_APP_VER\"] = \"x-app-ver\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n AADServerParamKeys[\"RETURN_SPA_CODE\"] = \"return_spa_code\";\r\n AADServerParamKeys[\"LOGOUT_HINT\"] = \"logout_hint\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CacheSchemaType;\r\n(function (CacheSchemaType) {\r\n CacheSchemaType[\"ACCOUNT\"] = \"Account\";\r\n CacheSchemaType[\"CREDENTIAL\"] = \"Credential\";\r\n CacheSchemaType[\"ID_TOKEN\"] = \"IdToken\";\r\n CacheSchemaType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CacheSchemaType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n CacheSchemaType[\"APP_METADATA\"] = \"AppMetadata\";\r\n CacheSchemaType[\"TEMPORARY\"] = \"TempCache\";\r\n CacheSchemaType[\"TELEMETRY\"] = \"Telemetry\";\r\n CacheSchemaType[\"UNDEFINED\"] = \"Undefined\";\r\n CacheSchemaType[\"THROTTLING\"] = \"Throttling\";\r\n})(CacheSchemaType || (CacheSchemaType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"SSH\"] = \"ssh-cert\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n})(CacheOutcome || (CacheOutcome = {}));\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheSchemaType, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n//# sourceMappingURL=Constants.js.map\n","/*! @azure/msal-common v6.2.0 2022-04-04 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Check if a string is empty.\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n StringUtils.isEmptyObj = function (strObj) {\r\n if (strObj && !StringUtils.isEmpty(strObj)) {\r\n try {\r\n var obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n };\r\n StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = function (query) {\r\n var obj = {};\r\n var params = query.split(\"&\");\r\n var decode = function (s) { return decodeURIComponent(s.replace(/\\+/g, \" \")); };\r\n params.forEach(function (pair) {\r\n if (pair.trim()) {\r\n var _a = pair.split(/=(.+)/g, 2), key = _a[0], value = _a[1]; // Split on the first occurence of the '=' character\r\n if (key && value) {\r\n obj[decode(key)] = decode(value);\r\n }\r\n }\r\n });\r\n return obj;\r\n };\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\nexport { StringUtils };\n//# sourceMappingURL=StringUtils.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar stubbedPublicClientApplication = {\r\n acquireTokenPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenSilent: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenByCode: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n getAllAccounts: function () {\r\n return [];\r\n },\r\n getAccountByHomeId: function () {\r\n return null;\r\n },\r\n getAccountByUsername: function () {\r\n return null;\r\n },\r\n getAccountByLocalId: function () {\r\n return null;\r\n },\r\n handleRedirectPromise: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n loginPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n loginRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logout: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logoutRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logoutPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n ssoSilent: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n addEventCallback: function () {\r\n return null;\r\n },\r\n removeEventCallback: function () {\r\n return;\r\n },\r\n enableAccountStorageEvents: function () {\r\n return;\r\n },\r\n disableAccountStorageEvents: function () {\r\n return;\r\n },\r\n getTokenCache: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n },\r\n getLogger: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n },\r\n setLogger: function () {\r\n return;\r\n },\r\n setActiveAccount: function () {\r\n return;\r\n },\r\n getActiveAccount: function () {\r\n return null;\r\n },\r\n initializeWrapperLibrary: function () {\r\n return;\r\n },\r\n setNavigationClient: function () {\r\n return;\r\n },\r\n getConfiguration: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n }\r\n};\n\nexport { stubbedPublicClientApplication };\n//# sourceMappingURL=IPublicClientApplication.js.map\n","/*! @azure/msal-browser v2.22.0 2022-02-08 */\n'use strict';\nimport { EventType } from './EventType.js';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventMessageUtils = /** @class */ (function () {\r\n function EventMessageUtils() {\r\n }\r\n /**\r\n * Gets interaction status from event message\r\n * @param message\r\n * @param currentStatus\r\n */\r\n EventMessageUtils.getInteractionStatusFromEvent = function (message, currentStatus) {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_START:\r\n return InteractionStatus.Login;\r\n case EventType.SSO_SILENT_START:\r\n return InteractionStatus.SsoSilent;\r\n case EventType.ACQUIRE_TOKEN_START:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.AcquireToken;\r\n }\r\n break;\r\n case EventType.HANDLE_REDIRECT_START:\r\n return InteractionStatus.HandleRedirect;\r\n case EventType.LOGOUT_START:\r\n return InteractionStatus.Logout;\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.SSO_SILENT_FAILURE:\r\n if (currentStatus && currentStatus !== InteractionStatus.SsoSilent) {\r\n // Prevent this event from clearing any status other than ssoSilent\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGOUT_END:\r\n if (currentStatus && currentStatus !== InteractionStatus.Logout) {\r\n // Prevent this event from clearing any status other than logout\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.HANDLE_REDIRECT_END:\r\n if (currentStatus && currentStatus !== InteractionStatus.HandleRedirect) {\r\n // Prevent this event from clearing any status other than handleRedirect\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n if (currentStatus && currentStatus !== InteractionStatus.Login && currentStatus !== InteractionStatus.AcquireToken) {\r\n // Prevent this event from clearing any status other than login or acquireToken\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n }\r\n break;\r\n }\r\n return null;\r\n };\r\n return EventMessageUtils;\r\n}());\n\nexport { EventMessageUtils };\n//# sourceMappingURL=EventMessage.js.map\n","import React__default, { createContext, useEffect, useMemo, useState, useRef, useContext, useCallback } from 'react';\nimport { stubbedPublicClientApplication, InteractionStatus, Logger, WrapperSKU, EventType, EventMessageUtils, AccountEntity, AuthError, InteractionType, InteractionRequiredAuthError, OIDC_DEFAULT_SCOPES } from '@azure/msal-browser';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/*\r\n * Stubbed context implementation\r\n * Only used when there is no provider, which is an unsupported scenario\r\n */\n\nconst defaultMsalContext = {\n instance: stubbedPublicClientApplication,\n inProgress: InteractionStatus.None,\n accounts: [],\n logger: /*#__PURE__*/new Logger({})\n};\nconst MsalContext = /*#__PURE__*/createContext(defaultMsalContext);\nconst MsalConsumer = MsalContext.Consumer;\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\nfunction getChildrenOrFunction(children, args) {\n if (typeof children === \"function\") {\n return children(args);\n }\n\n return children;\n}\n/**\r\n * Helper function to determine whether 2 arrays are equal\r\n * Used to avoid unnecessary state updates\r\n * @param arrayA\r\n * @param arrayB\r\n */\n\nfunction accountArraysAreEqual(arrayA, arrayB) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n const comparisonArray = [...arrayB];\n return arrayA.every(elementA => {\n const elementB = comparisonArray.shift();\n\n if (!elementA || !elementB) {\n return false;\n }\n\n return elementA.homeAccountId === elementB.homeAccountId && elementA.localAccountId === elementB.localAccountId && elementA.username === elementB.username;\n });\n}\nfunction getAccountByIdentifiers(allAccounts, accountIdentifiers) {\n if (allAccounts.length > 0 && (accountIdentifiers.homeAccountId || accountIdentifiers.localAccountId || accountIdentifiers.username)) {\n const matchedAccounts = allAccounts.filter(accountObj => {\n if (accountIdentifiers.username && accountIdentifiers.username.toLowerCase() !== accountObj.username.toLowerCase()) {\n return false;\n }\n\n if (accountIdentifiers.homeAccountId && accountIdentifiers.homeAccountId.toLowerCase() !== accountObj.homeAccountId.toLowerCase()) {\n return false;\n }\n\n if (accountIdentifiers.localAccountId && accountIdentifiers.localAccountId.toLowerCase() !== accountObj.localAccountId.toLowerCase()) {\n return false;\n }\n\n return true;\n });\n return matchedAccounts[0] || null;\n } else {\n return null;\n }\n}\n\n/* eslint-disable header/header */\nconst name = \"@azure/msal-react\";\nconst version = \"1.3.0\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\nfunction MsalProvider({\n instance,\n children\n}) {\n useEffect(() => {\n instance.initializeWrapperLibrary(WrapperSKU.React, version);\n }, [instance]); // Create a logger instance for msal-react with the same options as PublicClientApplication\n\n const logger = useMemo(() => {\n return instance.getLogger().clone(name, version);\n }, [instance]); // State hook to store accounts\n\n const [accounts, setAccounts] = useState(() => instance.getAllAccounts()); // State hook to store in progress value\n\n const [inProgress, setInProgress] = useState(InteractionStatus.Startup); // Mutable object used in the event callback\n\n const inProgressRef = useRef(inProgress);\n useEffect(() => {\n const callbackId = instance.addEventCallback(message => {\n switch (message.eventType) {\n case EventType.ACCOUNT_ADDED:\n case EventType.ACCOUNT_REMOVED:\n case EventType.LOGIN_SUCCESS:\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.HANDLE_REDIRECT_END:\n case EventType.LOGIN_FAILURE:\n case EventType.SSO_SILENT_FAILURE:\n case EventType.LOGOUT_END:\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n const currentAccounts = instance.getAllAccounts();\n\n if (!accountArraysAreEqual(currentAccounts, accounts)) {\n logger.info(\"MsalProvider - updating account state\");\n setAccounts(currentAccounts);\n } else {\n logger.info(\"MsalProvider - no account changes\");\n }\n\n break;\n }\n });\n logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`);\n return () => {\n // Remove callback when component unmounts or accounts change\n if (callbackId) {\n logger.verbose(`MsalProvider - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, accounts, logger]);\n useEffect(() => {\n const callbackId = instance.addEventCallback(message => {\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, inProgressRef.current);\n\n if (status !== null) {\n logger.info(`MsalProvider - ${message.eventType} results in setting inProgress from ${inProgressRef.current} to ${status}`);\n inProgressRef.current = status;\n setInProgress(status);\n }\n });\n logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`);\n instance.handleRedirectPromise().catch(() => {\n // Errors should be handled by listening to the LOGIN_FAILURE event\n return;\n }).finally(() => {\n /*\r\n * If handleRedirectPromise returns a cached promise the necessary events may not be fired\r\n * This is a fallback to prevent inProgress from getting stuck in 'startup'\r\n */\n if (inProgressRef.current === InteractionStatus.Startup) {\n inProgressRef.current = InteractionStatus.None;\n setInProgress(InteractionStatus.None);\n }\n });\n return () => {\n if (callbackId) {\n logger.verbose(`MsalProvider - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, logger]);\n const contextValue = {\n instance,\n inProgress,\n accounts,\n logger\n };\n return React__default.createElement(MsalContext.Provider, {\n value: contextValue\n }, children);\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Returns Msal Context values\r\n */\n\nconst useMsal = () => useContext(MsalContext);\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n\nfunction isAuthenticated(allAccounts, matchAccount) {\n if (matchAccount && (matchAccount.username || matchAccount.homeAccountId || matchAccount.localAccountId)) {\n return !!getAccountByIdentifiers(allAccounts, matchAccount);\n }\n\n return allAccounts.length > 0;\n}\n/**\r\n * Returns whether or not a user is currently signed-in. Optionally provide 1 or more accountIdentifiers to determine if a specific user is signed-in\r\n * @param matchAccount\r\n */\n\n\nfunction useIsAuthenticated(matchAccount) {\n const {\n accounts: allAccounts\n } = useMsal();\n const [hasAuthenticated, setHasAuthenticated] = useState(() => isAuthenticated(allAccounts, matchAccount));\n useEffect(() => {\n setHasAuthenticated(isAuthenticated(allAccounts, matchAccount));\n }, [allAccounts, matchAccount]);\n return hasAuthenticated;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Renders child components if user is authenticated\r\n * @param props\r\n */\n\nfunction AuthenticatedTemplate({\n username,\n homeAccountId,\n localAccountId,\n children\n}) {\n const context = useMsal();\n const accountIdentifier = useMemo(() => {\n return {\n username,\n homeAccountId,\n localAccountId\n };\n }, [username, homeAccountId, localAccountId]);\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\n\n if (isAuthenticated && context.inProgress !== InteractionStatus.Startup) {\n return React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, context));\n }\n\n return null;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Renders child components if user is unauthenticated\r\n * @param props\r\n */\n\nfunction UnauthenticatedTemplate({\n username,\n homeAccountId,\n localAccountId,\n children\n}) {\n const context = useMsal();\n const accountIdentifier = useMemo(() => {\n return {\n username,\n homeAccountId,\n localAccountId\n };\n }, [username, homeAccountId, localAccountId]);\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\n\n if (!isAuthenticated && context.inProgress !== InteractionStatus.Startup && context.inProgress !== InteractionStatus.HandleRedirect) {\n return React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, context));\n }\n\n return null;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n\nfunction getAccount(instance, accountIdentifiers) {\n if (!accountIdentifiers || !accountIdentifiers.homeAccountId && !accountIdentifiers.localAccountId && !accountIdentifiers.username) {\n // If no account identifiers are provided, return active account\n return instance.getActiveAccount();\n }\n\n return getAccountByIdentifiers(instance.getAllAccounts(), accountIdentifiers);\n}\n/**\r\n * Given 1 or more accountIdentifiers, returns the Account object if the user is signed-in\r\n * @param accountIdentifiers\r\n */\n\n\nfunction useAccount(accountIdentifiers) {\n const {\n instance,\n inProgress,\n logger\n } = useMsal();\n const [account, setAccount] = useState(() => getAccount(instance, accountIdentifiers));\n useEffect(() => {\n setAccount(currentAccount => {\n const nextAccount = getAccount(instance, accountIdentifiers);\n\n if (!AccountEntity.accountInfoIsEqual(currentAccount, nextAccount, true)) {\n logger.info(\"useAccount - Updating account\");\n return nextAccount;\n }\n\n return currentAccount;\n });\n }, [inProgress, accountIdentifiers, instance, logger]);\n return account;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\nconst ReactAuthErrorMessage = {\n invalidInteractionType: {\n code: \"invalid_interaction_type\",\n desc: \"The provided interaction type is invalid.\"\n },\n unableToFallbackToInteraction: {\n code: \"unable_to_fallback_to_interaction\",\n desc: \"Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete.\"\n }\n};\nclass ReactAuthError extends AuthError {\n constructor(errorCode, errorMessage) {\n super(errorCode, errorMessage);\n Object.setPrototypeOf(this, ReactAuthError.prototype);\n this.name = \"ReactAuthError\";\n }\n\n static createInvalidInteractionTypeError() {\n return new ReactAuthError(ReactAuthErrorMessage.invalidInteractionType.code, ReactAuthErrorMessage.invalidInteractionType.desc);\n }\n\n static createUnableToFallbackToInteractionError() {\n return new ReactAuthError(ReactAuthErrorMessage.unableToFallbackToInteraction.code, ReactAuthErrorMessage.unableToFallbackToInteraction.desc);\n }\n\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * If a user is not currently signed in this hook invokes a login. Failed logins can be retried using the login callback returned.\r\n * If a user is currently signed in this hook attempts to acquire a token. Subsequent token requests can use the acquireToken callback returned.\r\n * Optionally provide a request object to be used in the login/acquireToken call.\r\n * Optionally provide a specific user that should be logged in.\r\n * @param interactionType\r\n * @param authenticationRequest\r\n * @param accountIdentifiers\r\n */\n\nfunction useMsalAuthentication(interactionType, authenticationRequest, accountIdentifiers) {\n const {\n instance,\n inProgress,\n logger\n } = useMsal();\n const isAuthenticated = useIsAuthenticated(accountIdentifiers);\n const account = useAccount(accountIdentifiers);\n const [[result, error], setResponse] = useState([null, null]); // Boolean used to check if interaction is in progress in acquireTokenSilent fallback. Use Ref instead of state to prevent acquireToken function from being regenerated on each change to interactionInProgress value\n\n const interactionInProgress = useRef(inProgress !== InteractionStatus.None);\n useEffect(() => {\n interactionInProgress.current = inProgress !== InteractionStatus.None;\n }, [inProgress]); // Flag used to control when the hook calls login/acquireToken\n\n const shouldAcquireToken = useRef(true);\n useEffect(() => {\n if (!!error) {\n // Errors should be handled by consuming component\n shouldAcquireToken.current = false;\n return;\n }\n\n if (!!result) {\n // Token has already been acquired, consuming component/application is responsible for renewing\n shouldAcquireToken.current = false;\n return;\n }\n }, [error, result]);\n const login = useCallback(async (callbackInteractionType, callbackRequest) => {\n const loginType = callbackInteractionType || interactionType;\n const loginRequest = callbackRequest || authenticationRequest;\n\n switch (loginType) {\n case InteractionType.Popup:\n logger.verbose(\"useMsalAuthentication - Calling loginPopup\");\n return instance.loginPopup(loginRequest);\n\n case InteractionType.Redirect:\n // This promise is not expected to resolve due to full frame redirect\n logger.verbose(\"useMsalAuthentication - Calling loginRedirect\");\n return instance.loginRedirect(loginRequest).then(null);\n\n case InteractionType.Silent:\n logger.verbose(\"useMsalAuthentication - Calling ssoSilent\");\n return instance.ssoSilent(loginRequest);\n\n default:\n throw ReactAuthError.createInvalidInteractionTypeError();\n }\n }, [instance, interactionType, authenticationRequest, logger]);\n const acquireToken = useCallback(async (callbackInteractionType, callbackRequest) => {\n const fallbackInteractionType = callbackInteractionType || interactionType;\n let tokenRequest;\n\n if (callbackRequest) {\n logger.trace(\"useMsalAuthentication - acquireToken - Using request provided in the callback\");\n tokenRequest = { ...callbackRequest\n };\n } else if (authenticationRequest) {\n logger.trace(\"useMsalAuthentication - acquireToken - Using request provided in the hook\");\n tokenRequest = { ...authenticationRequest,\n scopes: authenticationRequest.scopes || OIDC_DEFAULT_SCOPES\n };\n } else {\n logger.trace(\"useMsalAuthentication - acquireToken - No request object provided, using default request.\");\n tokenRequest = {\n scopes: OIDC_DEFAULT_SCOPES\n };\n }\n\n if (!tokenRequest.account && account) {\n logger.trace(\"useMsalAuthentication - acquireToken - Attaching account to request\");\n tokenRequest.account = account;\n }\n\n const getToken = async () => {\n logger.verbose(\"useMsalAuthentication - Calling acquireTokenSilent\");\n return instance.acquireTokenSilent(tokenRequest).catch(async e => {\n if (e instanceof InteractionRequiredAuthError) {\n if (!interactionInProgress.current) {\n logger.error(\"useMsalAuthentication - Interaction required, falling back to interaction\");\n return login(fallbackInteractionType, tokenRequest);\n } else {\n logger.error(\"useMsalAuthentication - Interaction required but is already in progress. Please try again, if needed, after interaction completes.\");\n throw ReactAuthError.createUnableToFallbackToInteractionError();\n }\n }\n\n throw e;\n });\n };\n\n return getToken().then(response => {\n setResponse([response, null]);\n return response;\n }).catch(e => {\n setResponse([null, e]);\n throw e;\n });\n }, [instance, interactionType, authenticationRequest, logger, account, login]);\n useEffect(() => {\n const callbackId = instance.addEventCallback(message => {\n switch (message.eventType) {\n case EventType.LOGIN_SUCCESS:\n case EventType.SSO_SILENT_SUCCESS:\n if (message.payload) {\n setResponse([message.payload, null]);\n }\n\n break;\n\n case EventType.LOGIN_FAILURE:\n case EventType.SSO_SILENT_FAILURE:\n if (message.error) {\n setResponse([null, message.error]);\n }\n\n break;\n }\n });\n logger.verbose(`useMsalAuthentication - Registered event callback with id: ${callbackId}`);\n return () => {\n if (callbackId) {\n logger.verbose(`useMsalAuthentication - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, logger]);\n useEffect(() => {\n if (shouldAcquireToken.current && inProgress === InteractionStatus.None) {\n shouldAcquireToken.current = false;\n\n if (!isAuthenticated) {\n logger.info(\"useMsalAuthentication - No user is authenticated, attempting to login\");\n login().catch(() => {\n // Errors are saved in state above\n return;\n });\n } else if (account) {\n logger.info(\"useMsalAuthentication - User is authenticated, attempting to acquire token\");\n acquireToken().catch(() => {\n // Errors are saved in state above\n return;\n });\n }\n }\n }, [isAuthenticated, account, inProgress, login, acquireToken, logger]);\n return {\n login,\n acquireToken,\n result,\n error\n };\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Attempts to authenticate user if not already authenticated, then renders child components\r\n * @param props\r\n */\n\nfunction MsalAuthenticationTemplate({\n interactionType,\n username,\n homeAccountId,\n localAccountId,\n authenticationRequest,\n loadingComponent: LoadingComponent,\n errorComponent: ErrorComponent,\n children\n}) {\n const accountIdentifier = useMemo(() => {\n return {\n username,\n homeAccountId,\n localAccountId\n };\n }, [username, homeAccountId, localAccountId]);\n const context = useMsal();\n const msalAuthResult = useMsalAuthentication(interactionType, authenticationRequest, accountIdentifier);\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\n\n if (msalAuthResult.error && context.inProgress === InteractionStatus.None) {\n if (!!ErrorComponent) {\n return React__default.createElement(ErrorComponent, Object.assign({}, msalAuthResult));\n }\n\n throw msalAuthResult.error;\n }\n\n if (isAuthenticated) {\n return React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, msalAuthResult));\n }\n\n if (!!LoadingComponent && context.inProgress !== InteractionStatus.None) {\n return React__default.createElement(LoadingComponent, Object.assign({}, context));\n }\n\n return null;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Higher order component wraps provided component with msal by injecting msal context values into the component's props\r\n * @param Component\r\n */\n\nconst withMsal = Component => {\n const ComponentWithMsal = props => {\n const msal = useMsal();\n return React__default.createElement(Component, Object.assign({}, props, {\n msalContext: msal\n }));\n };\n\n const componentName = Component.displayName || Component.name || \"Component\";\n ComponentWithMsal.displayName = `withMsal(${componentName})`;\n return ComponentWithMsal;\n};\n\nexport { AuthenticatedTemplate, MsalAuthenticationTemplate, MsalConsumer, MsalContext, MsalProvider, UnauthenticatedTemplate, useAccount, useIsAuthenticated, useMsal, useMsalAuthentication, version, withMsal };\n//# sourceMappingURL=msal-react.esm.js.map\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || 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}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-04d85134.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-04d85134.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import React, { memo, useMemo, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring, TransitionMotion } from 'react-motion';\nimport { textPropsByEngine, useTheme, useMotionConfig } from '@nivo/core';\nimport isNumber from 'lodash/isNumber';\nimport { timeMillisecond, utcMillisecond, timeSecond, utcSecond, timeMinute, utcMinute, timeHour, utcHour, timeDay, utcDay, timeWeek, utcWeek, timeSunday, utcSunday, timeMonday, utcMonday, timeTuesday, utcTuesday, timeWednesday, utcWednesday, timeThursday, utcThursday, timeFriday, utcFriday, timeSaturday, utcSaturday, timeMonth, utcMonth, timeYear, utcYear } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { format } from 'd3-format';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar centerScale = function centerScale(scale) {\n var bandwidth = scale.bandwidth();\n if (bandwidth === 0) return scale;\n var offset = bandwidth / 2;\n if (scale.round()) {\n offset = Math.round(offset);\n }\n return function (d) {\n return scale(d) + offset;\n };\n};\nvar timeByType = {\n millisecond: [timeMillisecond, utcMillisecond],\n second: [timeSecond, utcSecond],\n minute: [timeMinute, utcMinute],\n hour: [timeHour, utcHour],\n day: [timeDay, utcDay],\n week: [timeWeek, utcWeek],\n sunday: [timeSunday, utcSunday],\n monday: [timeMonday, utcMonday],\n tuesday: [timeTuesday, utcTuesday],\n wednesday: [timeWednesday, utcWednesday],\n thursday: [timeThursday, utcThursday],\n friday: [timeFriday, utcFriday],\n saturday: [timeSaturday, utcSaturday],\n month: [timeMonth, utcMonth],\n year: [timeYear, utcYear]\n};\nvar timeTypes = Object.keys(timeByType);\nvar timeIntervalRegexp = new RegExp(\"^every\\\\s*(\\\\d+)?\\\\s*(\".concat(timeTypes.join('|'), \")s?$\"), 'i');\nvar getScaleTicks = function getScaleTicks(scale, spec) {\n if (Array.isArray(spec)) {\n return spec;\n }\n if (scale.ticks) {\n if (spec === undefined) {\n return scale.ticks();\n }\n if (isNumber(spec)) {\n return scale.ticks(spec);\n }\n if (typeof spec === 'string') {\n var matches = spec.match(timeIntervalRegexp);\n if (matches) {\n var timeType = timeByType[matches[2]][scale.useUTC ? 1 : 0];\n if (matches[1] === undefined) {\n return scale.ticks(timeType);\n }\n return scale.ticks(timeType.every(Number(matches[1])));\n }\n throw new Error(\"Invalid tickValues: \".concat(spec));\n }\n }\n return scale.domain();\n};\nvar computeCartesianTicks = function computeCartesianTicks(_ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n tickSize = _ref.tickSize,\n tickPadding = _ref.tickPadding,\n tickRotation = _ref.tickRotation,\n _ref$engine = _ref.engine,\n engine = _ref$engine === void 0 ? 'svg' : _ref$engine;\n var values = getScaleTicks(scale, tickValues);\n var textProps = textPropsByEngine[engine];\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var line = {\n lineX: 0,\n lineY: 0\n };\n var text = {\n textX: 0,\n textY: 0\n };\n var translate;\n var textAlign = textProps.align.center;\n var textBaseline = textProps.baseline.center;\n if (axis === 'x') {\n translate = function translate(d) {\n return {\n x: position(d),\n y: 0\n };\n };\n line.lineY = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textY = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n if (ticksPosition === 'after') {\n textBaseline = textProps.baseline.top;\n } else {\n textBaseline = textProps.baseline.bottom;\n }\n if (tickRotation === 0) {\n textAlign = textProps.align.center;\n } else if (ticksPosition === 'after' && tickRotation < 0 || ticksPosition === 'before' && tickRotation > 0) {\n textAlign = textProps.align.right;\n textBaseline = textProps.baseline.center;\n } else if (ticksPosition === 'after' && tickRotation > 0 || ticksPosition === 'before' && tickRotation < 0) {\n textAlign = textProps.align.left;\n textBaseline = textProps.baseline.center;\n }\n } else {\n translate = function translate(d) {\n return {\n x: 0,\n y: position(d)\n };\n };\n line.lineX = tickSize * (ticksPosition === 'after' ? 1 : -1);\n text.textX = (tickSize + tickPadding) * (ticksPosition === 'after' ? 1 : -1);\n if (ticksPosition === 'after') {\n textAlign = textProps.align.left;\n } else {\n textAlign = textProps.align.right;\n }\n }\n var ticks = values.map(function (value) {\n return _objectSpread({\n key: value,\n value: value\n }, translate(value), line, text);\n });\n return {\n ticks: ticks,\n textAlign: textAlign,\n textBaseline: textBaseline\n };\n};\nvar getFormatter = function getFormatter(format$1, scale) {\n if (!format$1 || typeof format$1 === 'function') return format$1;\n if (scale.type === 'time') {\n var f = timeFormat(format$1);\n return function (d) {\n return f(new Date(d));\n };\n }\n return format(format$1);\n};\nvar computeGridLines = function computeGridLines(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n scale = _ref2.scale,\n axis = _ref2.axis,\n _values = _ref2.values;\n var lineValues = Array.isArray(_values) ? _values : undefined;\n var lineCount = isNumber(_values) ? _values : undefined;\n var values = lineValues || getScaleTicks(scale, lineCount);\n var position = scale.bandwidth ? centerScale(scale) : scale;\n var lines;\n if (axis === 'x') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: position(v),\n x2: position(v),\n y1: 0,\n y2: height\n };\n });\n } else if (axis === 'y') {\n lines = values.map(function (v) {\n return {\n key: \"\".concat(v),\n x1: 0,\n x2: width,\n y1: position(v),\n y2: position(v)\n };\n });\n }\n return lines;\n};\n\nvar axisPropTypes = {\n ticksPosition: PropTypes.oneOf(['before', 'after']),\n tickValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)])), PropTypes.string]),\n tickSize: PropTypes.number,\n tickPadding: PropTypes.number,\n tickRotation: PropTypes.number,\n format: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n renderTick: PropTypes.func,\n legend: PropTypes.node,\n legendPosition: PropTypes.oneOf(['start', 'middle', 'end']),\n legendOffset: PropTypes.number\n};\nvar axisPropType = PropTypes.shape(axisPropTypes);\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar AxisTick = function AxisTick(_ref) {\n var _value = _ref.value,\n x = _ref.x,\n y = _ref.y,\n opacity = _ref.opacity,\n rotate = _ref.rotate,\n format = _ref.format,\n lineX = _ref.lineX,\n lineY = _ref.lineY,\n _onClick = _ref.onClick,\n textX = _ref.textX,\n textY = _ref.textY,\n textBaseline = _ref.textBaseline,\n textAnchor = _ref.textAnchor;\n var theme = useTheme();\n var value = _value;\n if (format !== undefined) {\n value = format(value);\n }\n var gStyle = {\n opacity: opacity\n };\n if (_onClick) {\n gStyle['cursor'] = 'pointer';\n }\n return React.createElement(\"g\", _extends({\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, _onClick ? {\n onClick: function onClick(e) {\n return _onClick(e, value);\n }\n } : {}, {\n style: gStyle\n }), React.createElement(\"line\", {\n x1: 0,\n x2: lineX,\n y1: 0,\n y2: lineY,\n style: theme.axis.ticks.line\n }), React.createElement(\"text\", {\n dominantBaseline: textBaseline,\n textAnchor: textAnchor,\n transform: \"translate(\".concat(textX, \",\").concat(textY, \") rotate(\").concat(rotate, \")\"),\n style: theme.axis.ticks.text\n }, value));\n};\nAxisTick.propTypes = {\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n format: PropTypes.func,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n lineX: PropTypes.number.isRequired,\n lineY: PropTypes.number.isRequired,\n textX: PropTypes.number.isRequired,\n textY: PropTypes.number.isRequired,\n textBaseline: PropTypes.string.isRequired,\n textAnchor: PropTypes.string.isRequired,\n opacity: PropTypes.number.isRequired,\n rotate: PropTypes.number.isRequired,\n onClick: PropTypes.func\n};\nAxisTick.defaultProps = {\n opacity: 1,\n rotate: 0\n};\nvar AxisTick$1 = memo(AxisTick);\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar willEnter = function willEnter() {\n return {\n rotate: 0,\n opacity: 0,\n x: 0,\n y: 0\n };\n};\nvar willLeave = function willLeave(springConfig) {\n return function (_ref) {\n var _ref$style = _ref.style,\n x = _ref$style.x,\n y = _ref$style.y,\n rotate = _ref$style.rotate;\n return {\n rotate: rotate,\n opacity: spring(0, springConfig),\n x: spring(x.val, springConfig),\n y: spring(y.val, springConfig)\n };\n };\n};\nvar defaultTickRenderer = function defaultTickRenderer(props) {\n return React.createElement(AxisTick$1, props);\n};\nvar Axis = function Axis(_ref2) {\n var axis = _ref2.axis,\n scale = _ref2.scale,\n x = _ref2.x,\n y = _ref2.y,\n length = _ref2.length,\n ticksPosition = _ref2.ticksPosition,\n tickValues = _ref2.tickValues,\n tickSize = _ref2.tickSize,\n tickPadding = _ref2.tickPadding,\n tickRotation = _ref2.tickRotation,\n format = _ref2.format,\n renderTick = _ref2.renderTick,\n legend = _ref2.legend,\n legendPosition = _ref2.legendPosition,\n legendOffset = _ref2.legendOffset,\n onClick = _ref2.onClick;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var formatValue = useMemo(function () {\n return getFormatter(format, scale);\n }, [format, scale]);\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n var legendNode = null;\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var textAnchor;\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n }\n } else {\n legendY = legendOffset;\n if (legendPosition === 'start') {\n textAnchor = 'start';\n } else if (legendPosition === 'middle') {\n textAnchor = 'middle';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n textAnchor = 'end';\n legendX = length;\n }\n }\n legendNode = React.createElement(\"text\", {\n transform: \"translate(\".concat(legendX, \", \").concat(legendY, \") rotate(\").concat(legendRotation, \")\"),\n textAnchor: textAnchor,\n style: _objectSpread$1({\n dominantBaseline: 'central'\n }, theme.axis.legend.text)\n }, legend);\n }\n if (animate !== true) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, ticks.map(function (tick, tickIndex) {\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n rotate: tickRotation,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, onClick ? {\n onClick: onClick\n } : {}));\n }), React.createElement(\"line\", {\n style: theme.axis.domain.line,\n x1: 0,\n x2: axis === 'x' ? length : 0,\n y1: 0,\n y2: axis === 'x' ? 0 : length\n }), legendNode);\n }\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig)\n }\n }, function (xy) {\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(xy.x, \",\").concat(xy.y, \")\")\n }, React.createElement(TransitionMotion, {\n willEnter: willEnter,\n willLeave: willLeave(springConfig),\n styles: ticks.map(function (tick) {\n return {\n key: \"\".concat(tick.key),\n data: tick,\n style: {\n opacity: spring(1, springConfig),\n x: spring(tick.x, springConfig),\n y: spring(tick.y, springConfig),\n rotate: spring(tickRotation, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(Fragment, null, interpolatedStyles.map(function (_ref3, tickIndex) {\n var style = _ref3.style,\n tick = _ref3.data;\n return React.createElement(renderTick, _objectSpread$1({\n tickIndex: tickIndex,\n format: formatValue,\n textBaseline: textBaseline,\n textAnchor: textAlign\n }, tick, style, onClick ? {\n onClick: onClick\n } : {}));\n }));\n }), React.createElement(Motion, {\n style: {\n x2: spring(axis === 'x' ? length : 0, springConfig),\n y2: spring(axis === 'x' ? 0 : length, springConfig)\n }\n }, function (values) {\n return React.createElement(\"line\", _extends$1({\n style: theme.axis.domain.line,\n x1: 0,\n y1: 0\n }, values));\n }), legendNode);\n });\n};\nAxis.propTypes = {\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n scale: PropTypes.func.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n length: PropTypes.number.isRequired,\n ticksPosition: PropTypes.oneOf(['before', 'after']).isRequired,\n tickValues: axisPropTypes.tickValues,\n tickSize: PropTypes.number.isRequired,\n tickPadding: PropTypes.number.isRequired,\n tickRotation: PropTypes.number.isRequired,\n format: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n renderTick: PropTypes.func.isRequired,\n legend: PropTypes.node,\n legendPosition: PropTypes.oneOf(['start', 'middle', 'end']).isRequired,\n legendOffset: PropTypes.number.isRequired,\n onClick: PropTypes.func\n};\nAxis.defaultProps = {\n x: 0,\n y: 0,\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n renderTick: defaultTickRenderer,\n legendPosition: 'end',\n legendOffset: 0\n};\nvar Axis$1 = memo(Axis);\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\nvar positions = ['top', 'right', 'bottom', 'left'];\nvar Axes = function Axes(_ref) {\n var xScale = _ref.xScale,\n yScale = _ref.yScale,\n width = _ref.width,\n height = _ref.height,\n top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n return positions.map(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n return React.createElement(Axis$1, _extends$2({\n key: position\n }, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: isXAxis ? xScale : yScale,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition\n }));\n });\n};\nAxes.propTypes = {\n xScale: PropTypes.func,\n yScale: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n top: axisPropType,\n right: axisPropType,\n bottom: axisPropType,\n left: axisPropType\n};\nvar Axes$1 = memo(Axes);\n\nvar GridLine = function GridLine(props) {\n return React.createElement(\"line\", props);\n};\nGridLine.propTypes = {\n x1: PropTypes.number.isRequired,\n x2: PropTypes.number.isRequired,\n y1: PropTypes.number.isRequired,\n y2: PropTypes.number.isRequired\n};\nGridLine.defaultProps = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n};\nvar GridLine$1 = memo(GridLine);\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar GridLines = function GridLines(_ref) {\n var type = _ref.type,\n lines = _ref.lines;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var lineWillEnter = useMemo(function () {\n return function (_ref2) {\n var style = _ref2.style;\n return {\n opacity: 0,\n x1: type === 'x' ? 0 : style.x1.val,\n x2: type === 'x' ? 0 : style.x2.val,\n y1: type === 'y' ? 0 : style.y1.val,\n y2: type === 'y' ? 0 : style.y2.val\n };\n };\n }, [type]);\n var lineWillLeave = useMemo(function () {\n return function (_ref3) {\n var style = _ref3.style;\n return {\n opacity: spring(0, springConfig),\n x1: spring(style.x1.val, springConfig),\n x2: spring(style.x2.val, springConfig),\n y1: spring(style.y1.val, springConfig),\n y2: spring(style.y2.val, springConfig)\n };\n };\n }, [springConfig]);\n if (!animate) {\n return React.createElement(\"g\", null, lines.map(function (line) {\n return React.createElement(GridLine$1, _extends$3({\n key: line.key\n }, line, theme.grid.line));\n }));\n }\n return React.createElement(TransitionMotion, {\n willEnter: lineWillEnter,\n willLeave: lineWillLeave,\n styles: lines.map(function (line) {\n return {\n key: line.key,\n style: {\n opacity: spring(1, springConfig),\n x1: spring(line.x1 || 0, springConfig),\n x2: spring(line.x2 || 0, springConfig),\n y1: spring(line.y1 || 0, springConfig),\n y2: spring(line.y2 || 0, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (interpolatedStyle) {\n var key = interpolatedStyle.key,\n style = interpolatedStyle.style;\n return React.createElement(GridLine$1, _extends$3({\n key: key\n }, theme.grid.line, style));\n }));\n });\n};\nGridLines.propTypes = {\n type: PropTypes.oneOf(['x', 'y']).isRequired,\n lines: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string.isRequired,\n x1: PropTypes.number,\n x2: PropTypes.number,\n y1: PropTypes.number,\n y2: PropTypes.number\n })).isRequired\n};\nvar GridLines$1 = memo(GridLines);\n\nvar Grid = function Grid(_ref) {\n var width = _ref.width,\n height = _ref.height,\n xScale = _ref.xScale,\n yScale = _ref.yScale,\n xValues = _ref.xValues,\n yValues = _ref.yValues;\n var xLines = useMemo(function () {\n if (!xScale) return false;\n return computeGridLines({\n width: width,\n height: height,\n scale: xScale,\n axis: 'x',\n values: xValues\n });\n }, [xScale, xValues]);\n var yLines = yScale ? computeGridLines({\n width: width,\n height: height,\n scale: yScale,\n axis: 'y',\n values: yValues\n }) : false;\n return React.createElement(React.Fragment, null, xLines && React.createElement(GridLines$1, {\n type: \"x\",\n lines: xLines\n }), yLines && React.createElement(GridLines$1, {\n type: \"y\",\n lines: yLines\n }));\n};\nGrid.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n xScale: PropTypes.func,\n yScale: PropTypes.func,\n xValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))]),\n yValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))])\n};\nvar Grid$1 = memo(Grid);\n\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(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; }\nvar renderAxisToCanvas = function renderAxisToCanvas(ctx, _ref) {\n var axis = _ref.axis,\n scale = _ref.scale,\n _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n length = _ref.length,\n ticksPosition = _ref.ticksPosition,\n tickValues = _ref.tickValues,\n _ref$tickSize = _ref.tickSize,\n tickSize = _ref$tickSize === void 0 ? 5 : _ref$tickSize,\n _ref$tickPadding = _ref.tickPadding,\n tickPadding = _ref$tickPadding === void 0 ? 5 : _ref$tickPadding,\n _ref$tickRotation = _ref.tickRotation,\n tickRotation = _ref$tickRotation === void 0 ? 0 : _ref$tickRotation,\n format = _ref.format,\n legend = _ref.legend,\n _ref$legendPosition = _ref.legendPosition,\n legendPosition = _ref$legendPosition === void 0 ? 'end' : _ref$legendPosition,\n _ref$legendOffset = _ref.legendOffset,\n legendOffset = _ref$legendOffset === void 0 ? 0 : _ref$legendOffset,\n theme = _ref.theme;\n var _computeCartesianTick = computeCartesianTicks({\n axis: axis,\n scale: scale,\n ticksPosition: ticksPosition,\n tickValues: tickValues,\n tickSize: tickSize,\n tickPadding: tickPadding,\n tickRotation: tickRotation,\n engine: 'canvas'\n }),\n ticks = _computeCartesianTick.ticks,\n textAlign = _computeCartesianTick.textAlign,\n textBaseline = _computeCartesianTick.textBaseline;\n ctx.save();\n ctx.translate(x, y);\n ctx.textAlign = textAlign;\n ctx.textBaseline = textBaseline;\n ctx.font = \"\".concat(theme.axis.ticks.text.fontSize, \"px \").concat(theme.axis.ticks.text.fontFamily);\n if (theme.axis.domain.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.domain.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.domain.line.stroke;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(axis === 'x' ? length : 0, axis === 'x' ? 0 : length);\n ctx.stroke();\n }\n ticks.forEach(function (tick) {\n if (theme.axis.ticks.line.strokeWidth > 0) {\n ctx.lineWidth = theme.axis.ticks.line.strokeWidth;\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.axis.ticks.line.stroke;\n ctx.beginPath();\n ctx.moveTo(tick.x, tick.y);\n ctx.lineTo(tick.x + tick.lineX, tick.y + tick.lineY);\n ctx.stroke();\n }\n var value = format !== undefined ? format(tick.value) : tick.value;\n ctx.save();\n ctx.translate(tick.x + tick.textX, tick.y + tick.textY);\n ctx.rotate(degreesToRadians(tickRotation));\n ctx.fillStyle = theme.axis.ticks.text.fill;\n ctx.fillText(value, 0, 0);\n ctx.restore();\n });\n if (legend !== undefined) {\n var legendX = 0;\n var legendY = 0;\n var legendRotation = 0;\n var _textAlign;\n if (axis === 'y') {\n legendRotation = -90;\n legendX = legendOffset;\n if (legendPosition === 'start') {\n _textAlign = 'start';\n legendY = length;\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendY = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n }\n } else {\n legendY = legendOffset;\n if (legendPosition === 'start') {\n _textAlign = 'start';\n } else if (legendPosition === 'middle') {\n _textAlign = 'center';\n legendX = length / 2;\n } else if (legendPosition === 'end') {\n _textAlign = 'end';\n legendX = length;\n }\n }\n ctx.translate(legendX, legendY);\n ctx.rotate(degreesToRadians(legendRotation));\n ctx.font = \"\".concat(theme.axis.legend.text.fontWeight ? \"\".concat(theme.axis.legend.text.fontWeight, \" \") : '').concat(theme.axis.legend.text.fontSize, \"px \").concat(theme.axis.legend.text.fontFamily);\n ctx.fillStyle = theme.axis.legend.text.fill;\n ctx.textAlign = _textAlign;\n ctx.textBaseline = 'middle';\n ctx.fillText(legend, 0, 0);\n }\n ctx.restore();\n};\nvar positions$1 = ['top', 'right', 'bottom', 'left'];\nvar renderAxesToCanvas = function renderAxesToCanvas(ctx, _ref2) {\n var xScale = _ref2.xScale,\n yScale = _ref2.yScale,\n width = _ref2.width,\n height = _ref2.height,\n top = _ref2.top,\n right = _ref2.right,\n bottom = _ref2.bottom,\n left = _ref2.left,\n theme = _ref2.theme;\n var axes = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n positions$1.forEach(function (position) {\n var axis = axes[position];\n if (!axis) return null;\n var isXAxis = position === 'top' || position === 'bottom';\n var ticksPosition = position === 'top' || position === 'left' ? 'before' : 'after';\n var scale = isXAxis ? xScale : yScale;\n var format = getFormatter(axis.format, scale);\n renderAxisToCanvas(ctx, _objectSpread$2({}, axis, {\n axis: isXAxis ? 'x' : 'y',\n x: position === 'right' ? width : 0,\n y: position === 'bottom' ? height : 0,\n scale: scale,\n format: format,\n length: isXAxis ? width : height,\n ticksPosition: ticksPosition,\n theme: theme\n }));\n });\n};\nvar renderGridLinesToCanvas = function renderGridLinesToCanvas(ctx, _ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n scale = _ref3.scale,\n axis = _ref3.axis,\n values = _ref3.values;\n var lines = computeGridLines({\n width: width,\n height: height,\n scale: scale,\n axis: axis,\n values: values\n });\n lines.forEach(function (line) {\n ctx.beginPath();\n ctx.moveTo(line.x1, line.y1);\n ctx.lineTo(line.x2, line.y2);\n ctx.stroke();\n });\n};\n\nexport { Axes$1 as Axes, Axis$1 as Axis, Grid$1 as Grid, axisPropType, axisPropTypes, renderAxesToCanvas, renderAxisToCanvas, renderGridLinesToCanvas };\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import React, { useMemo, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { Motion, spring } from 'react-motion';\nimport { absoluteAngleDegrees, radiansToDegrees, positionFromAngle, degreesToRadians, useTheme, useMotionConfig, SmartMotion } from '@nivo/core';\nimport isPlainObject from 'lodash/isPlainObject';\nimport filter from 'lodash/filter';\nimport omit from 'lodash/omit';\n\nvar annotationSpecPropType = PropTypes.shape({\n match: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n type: PropTypes.oneOf(['circle', 'rect', 'dot']).isRequired,\n noteX: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n abs: PropTypes.number.isRequired\n })]).isRequired,\n noteY: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n abs: PropTypes.number.isRequired\n })]).isRequired,\n noteWidth: PropTypes.number,\n noteTextOffset: PropTypes.number,\n note: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n offset: PropTypes.number\n});\nvar defaultProps = {\n noteWidth: 120,\n noteTextOffset: 8,\n animate: true,\n motionStiffness: 90,\n motionDamping: 13\n};\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar defaultPositionAccessor = function defaultPositionAccessor(item) {\n return {\n x: item.x,\n y: item.y\n };\n};\nvar bindAnnotations = function bindAnnotations(_ref) {\n var items = _ref.items,\n annotations = _ref.annotations,\n _ref$getPosition = _ref.getPosition,\n getPosition = _ref$getPosition === void 0 ? defaultPositionAccessor : _ref$getPosition,\n getDimensions = _ref.getDimensions;\n return annotations.reduce(function (acc, annotation) {\n filter(items, annotation.match).forEach(function (item) {\n var position = getPosition(item);\n var dimensions = getDimensions(item, annotation.offset || 0);\n acc.push(_objectSpread({}, omit(annotation, ['match', 'offset']), position, dimensions, {\n datum: item,\n size: annotation.size || dimensions.size\n }));\n });\n return acc;\n }, []);\n};\nvar getLinkAngle = function getLinkAngle(sourceX, sourceY, targetX, targetY) {\n var angle = Math.atan2(targetY - sourceY, targetX - sourceX);\n return absoluteAngleDegrees(radiansToDegrees(angle));\n};\nvar computeAnnotation = function computeAnnotation(_ref2) {\n var type = _ref2.type,\n x = _ref2.x,\n y = _ref2.y,\n size = _ref2.size,\n width = _ref2.width,\n height = _ref2.height,\n noteX = _ref2.noteX,\n noteY = _ref2.noteY,\n _ref2$noteWidth = _ref2.noteWidth,\n noteWidth = _ref2$noteWidth === void 0 ? defaultProps.noteWidth : _ref2$noteWidth,\n _ref2$noteTextOffset = _ref2.noteTextOffset,\n noteTextOffset = _ref2$noteTextOffset === void 0 ? defaultProps.noteTextOffset : _ref2$noteTextOffset;\n var computedNoteX;\n var computedNoteY;\n if (isPlainObject(noteX)) {\n if (noteX.abs !== undefined) {\n computedNoteX = noteX.abs;\n }\n } else {\n computedNoteX = x + noteX;\n }\n if (isPlainObject(noteY)) {\n if (noteY.abs !== undefined) {\n computedNoteY = noteY.abs;\n }\n } else {\n computedNoteY = y + noteY;\n }\n var computedX = x;\n var computedY = y;\n var angle = getLinkAngle(x, y, computedNoteX, computedNoteY);\n if (type === 'circle') {\n var position = positionFromAngle(degreesToRadians(angle), size / 2);\n computedX += position.x;\n computedY += position.y;\n }\n if (type === 'rect') {\n var eighth = Math.round((angle + 90) / 45) % 8;\n if (eighth === 0) {\n computedY -= height / 2;\n }\n if (eighth === 1) {\n computedX += width / 2;\n computedY -= height / 2;\n }\n if (eighth === 2) {\n computedX += width / 2;\n }\n if (eighth === 3) {\n computedX += width / 2;\n computedY += height / 2;\n }\n if (eighth === 4) {\n computedY += height / 2;\n }\n if (eighth === 5) {\n computedX -= width / 2;\n computedY += height / 2;\n }\n if (eighth === 6) {\n computedX -= width / 2;\n }\n if (eighth === 7) {\n computedX -= width / 2;\n computedY -= height / 2;\n }\n }\n var textX = computedNoteX;\n var textY = computedNoteY - noteTextOffset;\n var noteLineX = computedNoteX;\n var noteLineY = computedNoteY;\n if ((angle + 90) % 360 > 180) {\n textX -= noteWidth;\n noteLineX -= noteWidth;\n } else {\n noteLineX += noteWidth;\n }\n return {\n points: [[computedX, computedY], [computedNoteX, computedNoteY], [noteLineX, noteLineY]],\n text: [textX, textY],\n angle: angle + 90\n };\n};\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar useAnnotations = function useAnnotations(_ref) {\n var items = _ref.items,\n annotations = _ref.annotations,\n getPosition = _ref.getPosition,\n getDimensions = _ref.getDimensions;\n return useMemo(function () {\n return bindAnnotations({\n items: items,\n annotations: annotations,\n getPosition: getPosition,\n getDimensions: getDimensions\n });\n }, [items, annotations, getPosition, getDimensions]);\n};\nvar useComputedAnnotations = function useComputedAnnotations(_ref2) {\n var annotations = _ref2.annotations,\n containerWidth = _ref2.containerWidth,\n containerHeight = _ref2.containerHeight;\n return useMemo(function () {\n return annotations.map(function (annotation) {\n return _objectSpread$1({}, annotation, {\n computed: computeAnnotation(_objectSpread$1({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n }, annotation))\n });\n });\n }, [annotations, containerWidth, containerHeight]);\n};\nvar useComputedAnnotation = function useComputedAnnotation(_ref3) {\n var type = _ref3.type,\n containerWidth = _ref3.containerWidth,\n containerHeight = _ref3.containerHeight,\n x = _ref3.x,\n y = _ref3.y,\n size = _ref3.size,\n width = _ref3.width,\n height = _ref3.height,\n noteX = _ref3.noteX,\n noteY = _ref3.noteY,\n noteWidth = _ref3.noteWidth,\n noteTextOffset = _ref3.noteTextOffset;\n return useMemo(function () {\n return computeAnnotation({\n type: type,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n x: x,\n y: y,\n size: size,\n width: width,\n height: height,\n noteX: noteX,\n noteY: noteY,\n noteWidth: noteWidth,\n noteTextOffset: noteTextOffset\n });\n }, [type, containerWidth, containerHeight, x, y, size, width, height, noteX, noteY, noteWidth, noteTextOffset]);\n};\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(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; }\nvar AnnotationNote = memo(function (_ref) {\n var datum = _ref.datum,\n x = _ref.x,\n y = _ref.y,\n note = _ref.note;\n var theme = useTheme();\n if (typeof note === 'function') {\n return note({\n x: x,\n y: y,\n datum: datum\n });\n }\n return React.createElement(React.Fragment, null, theme.annotations.text.outlineWidth > 0 && React.createElement(\"text\", {\n x: x,\n y: y,\n style: _objectSpread$2({}, theme.annotations.text, {\n strokeLinejoin: 'round',\n strokeWidth: theme.annotations.text.outlineWidth * 2,\n stroke: theme.annotations.text.outlineColor\n })\n }, note), React.createElement(\"text\", {\n x: x,\n y: y,\n style: omit(theme.annotations.text, ['outlineWidth', 'outlineColor'])\n }, note));\n});\nAnnotationNote.displayName = 'AnnotationNote';\nAnnotationNote.propTypes = {\n datum: PropTypes.object.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n note: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired\n};\nAnnotationNote.defaultProps = {};\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(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; }\nvar AnnotationLink = memo(function (_ref) {\n var points = _ref.points,\n isOutline = _ref.isOutline;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (isOutline && theme.annotations.link.outlineWidth <= 0) {\n return null;\n }\n var style = _objectSpread$3({}, theme.annotations.link);\n if (isOutline) {\n style.strokeLinecap = 'square';\n style.strokeWidth = theme.annotations.link.strokeWidth + theme.annotations.link.outlineWidth * 2;\n style.stroke = theme.annotations.link.outlineColor;\n }\n var path = \"M\".concat(points[0][0], \",\").concat(points[0][1]);\n points.slice(1).forEach(function (point) {\n path = \"\".concat(path, \" L\").concat(point[0], \",\").concat(point[1]);\n });\n if (!animate) {\n return React.createElement(\"path\", {\n fill: \"none\",\n d: path,\n style: style\n });\n }\n return React.createElement(SmartMotion, {\n style: function style(spring) {\n return {\n d: spring(path, springConfig)\n };\n }\n }, function (interpolated) {\n return React.createElement(\"path\", {\n fill: \"none\",\n d: interpolated.d,\n style: style\n });\n });\n});\nAnnotationLink.displayName = 'AnnotationLink';\nAnnotationLink.propTypes = {\n points: PropTypes.arrayOf(PropTypes.array).isRequired,\n isOutline: PropTypes.bool.isRequired\n};\nAnnotationLink.defaultProps = {\n isOutline: false\n};\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$4(target, key, source[key]); }); } return target; }\nfunction _defineProperty$4(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; }\nvar CircleAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (!animate) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: _objectSpread$4({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: theme.annotations.outline\n }));\n }\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig),\n size: spring(size, springConfig)\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: _objectSpread$4({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: theme.annotations.outline\n }));\n });\n});\nCircleAnnotationOutline.displayName = 'CircleAnnotationOutline';\nCircleAnnotationOutline.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired\n};\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$5(target, key, source[key]); }); } return target; }\nfunction _defineProperty$5(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; }\nvar DotAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (!animate) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: _objectSpread$5({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: x,\n cy: y,\n r: size / 2,\n style: theme.annotations.symbol\n }));\n }\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig),\n size: spring(size, springConfig)\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: _objectSpread$5({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"circle\", {\n cx: interpolated.x,\n cy: interpolated.y,\n r: interpolated.size / 2,\n style: theme.annotations.symbol\n }));\n });\n});\nDotAnnotationOutline.displayName = 'DotAnnotationOutline';\nDotAnnotationOutline.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired\n};\nDotAnnotationOutline.defaultProps = {\n size: 4\n};\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$6(target, key, source[key]); }); } return target; }\nfunction _defineProperty$6(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; }\nvar RectAnnotationOutline = memo(function (_ref) {\n var x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (!animate) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"rect\", {\n x: x - width / 2,\n y: y - height / 2,\n width: width,\n height: height,\n style: _objectSpread$6({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"rect\", {\n x: x - width / 2,\n y: y - height / 2,\n width: width,\n height: height,\n style: theme.annotations.outline\n }));\n }\n return React.createElement(Motion, {\n style: {\n x: spring(x - width / 2, springConfig),\n y: spring(y - height / 2, springConfig),\n width: spring(width, springConfig),\n height: spring(height, springConfig)\n }\n }, function (interpolated) {\n return React.createElement(React.Fragment, null, theme.annotations.outline.outlineWidth > 0 && React.createElement(\"rect\", {\n x: interpolated.x,\n y: interpolated.y,\n width: interpolated.width,\n height: interpolated.height,\n style: _objectSpread$6({}, theme.annotations.outline, {\n fill: 'none',\n strokeWidth: theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2,\n stroke: theme.annotations.outline.outlineColor\n })\n }), React.createElement(\"rect\", {\n x: interpolated.x,\n y: interpolated.y,\n width: interpolated.width,\n height: interpolated.height,\n style: theme.annotations.outline\n }));\n });\n});\nRectAnnotationOutline.displayName = 'RectAnnotationOutline';\nRectAnnotationOutline.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n};\n\nvar Annotation = memo(function (_ref) {\n var datum = _ref.datum,\n type = _ref.type,\n containerWidth = _ref.containerWidth,\n containerHeight = _ref.containerHeight,\n x = _ref.x,\n y = _ref.y,\n size = _ref.size,\n width = _ref.width,\n height = _ref.height,\n noteX = _ref.noteX,\n noteY = _ref.noteY,\n noteWidth = _ref.noteWidth,\n noteTextOffset = _ref.noteTextOffset,\n note = _ref.note;\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var computed = useComputedAnnotation({\n type: type,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n x: x,\n y: y,\n size: size,\n width: width,\n height: height,\n noteX: noteX,\n noteY: noteY,\n noteWidth: noteWidth,\n noteTextOffset: noteTextOffset\n });\n return React.createElement(React.Fragment, null, React.createElement(AnnotationLink, {\n points: computed.points,\n isOutline: true\n }), type === 'circle' && React.createElement(CircleAnnotationOutline, {\n x: x,\n y: y,\n size: size\n }), type === 'dot' && React.createElement(DotAnnotationOutline, {\n x: x,\n y: y,\n size: size\n }), type === 'rect' && React.createElement(RectAnnotationOutline, {\n x: x,\n y: y,\n width: width,\n height: height\n }), React.createElement(AnnotationLink, {\n points: computed.points\n }), !animate && React.createElement(AnnotationNote, {\n x: computed.text[0],\n y: computed.text[1],\n note: note\n }), animate && React.createElement(Motion, {\n style: {\n x: spring(computed.text[0], springConfig),\n y: spring(computed.text[1], springConfig)\n }\n }, function (interpolated) {\n return React.createElement(AnnotationNote, {\n datum: datum,\n x: interpolated.x,\n y: interpolated.y,\n note: note\n });\n }));\n});\nAnnotation.displayName = 'Annotation';\nAnnotation.propTypes = {\n datum: PropTypes.object.isRequired,\n type: PropTypes.oneOf(['circle', 'rect', 'dot']).isRequired,\n containerWidth: PropTypes.number.isRequired,\n containerHeight: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n noteX: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n abs: PropTypes.number.isRequired\n })]).isRequired,\n noteY: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n abs: PropTypes.number.isRequired\n })]).isRequired,\n noteWidth: PropTypes.number.isRequired,\n noteTextOffset: PropTypes.number.isRequired,\n note: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired\n};\nAnnotation.defaultProps = {\n noteWidth: defaultProps.noteWidth,\n noteTextOffset: defaultProps.noteTextOffset\n};\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 drawPoints = function drawPoints(ctx, points) {\n points.forEach(function (_ref, index) {\n var _ref2 = _slicedToArray(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n if (index === 0) {\n ctx.moveTo(x, y);\n } else {\n ctx.lineTo(x, y);\n }\n });\n};\nvar renderAnnotationsToCanvas = function renderAnnotationsToCanvas(ctx, _ref3) {\n var annotations = _ref3.annotations,\n theme = _ref3.theme;\n if (annotations.length === 0) return;\n ctx.save();\n annotations.forEach(function (annotation) {\n if (theme.annotations.link.outlineWidth > 0) {\n ctx.lineCap = 'square';\n ctx.strokeStyle = theme.annotations.link.outlineColor;\n ctx.lineWidth = theme.annotations.link.strokeWidth + theme.annotations.link.outlineWidth * 2;\n ctx.beginPath();\n drawPoints(ctx, annotation.computed.points);\n ctx.stroke();\n ctx.lineCap = 'butt';\n }\n if (annotation.type === 'circle' && theme.annotations.outline.outlineWidth > 0) {\n ctx.strokeStyle = theme.annotations.outline.outlineColor;\n ctx.lineWidth = theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.stroke();\n }\n if (annotation.type === 'dot' && theme.annotations.symbol.outlineWidth > 0) {\n ctx.strokeStyle = theme.annotations.symbol.outlineColor;\n ctx.lineWidth = theme.annotations.symbol.outlineWidth * 2;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.stroke();\n }\n if (annotation.type === 'rect' && theme.annotations.outline.outlineWidth > 0) {\n ctx.strokeStyle = theme.annotations.outline.outlineColor;\n ctx.lineWidth = theme.annotations.outline.strokeWidth + theme.annotations.outline.outlineWidth * 2;\n ctx.beginPath();\n ctx.rect(annotation.x - annotation.width / 2, annotation.y - annotation.height / 2, annotation.width, annotation.height);\n ctx.stroke();\n }\n ctx.strokeStyle = theme.annotations.link.stroke;\n ctx.lineWidth = theme.annotations.link.strokeWidth;\n ctx.beginPath();\n drawPoints(ctx, annotation.computed.points);\n ctx.stroke();\n if (annotation.type === 'circle') {\n ctx.strokeStyle = theme.annotations.outline.stroke;\n ctx.lineWidth = theme.annotations.outline.strokeWidth;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.stroke();\n }\n if (annotation.type === 'dot') {\n ctx.fillStyle = theme.annotations.symbol.fill;\n ctx.beginPath();\n ctx.arc(annotation.x, annotation.y, annotation.size / 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n if (annotation.type === 'rect') {\n ctx.strokeStyle = theme.annotations.outline.stroke;\n ctx.lineWidth = theme.annotations.outline.strokeWidth;\n ctx.beginPath();\n ctx.rect(annotation.x - annotation.width / 2, annotation.y - annotation.height / 2, annotation.width, annotation.height);\n ctx.stroke();\n }\n if (typeof annotation.note === 'function') {\n annotation.note(ctx, {\n datum: annotation.datum,\n x: annotation.computed.text[0],\n y: annotation.computed.text[1],\n theme: theme\n });\n } else {\n ctx.font = \"\".concat(theme.annotations.text.fontSize, \"px \").concat(theme.annotations.text.fontFamily);\n ctx.fillStyle = theme.annotations.text.fill;\n ctx.strokeStyle = theme.annotations.text.outlineColor;\n ctx.lineWidth = theme.annotations.text.outlineWidth * 2;\n if (theme.annotations.text.outlineWidth > 0) {\n ctx.lineJoin = 'round';\n ctx.strokeText(annotation.note, annotation.computed.text[0], annotation.computed.text[1]);\n ctx.lineJoin = 'miter';\n }\n ctx.fillText(annotation.note, annotation.computed.text[0], annotation.computed.text[1]);\n }\n });\n ctx.restore();\n};\n\nexport { Annotation, annotationSpecPropType, bindAnnotations, computeAnnotation, defaultProps, getLinkAngle, renderAnnotationsToCanvas, useAnnotations, useComputedAnnotation, useComputedAnnotations };\n","import React, { Fragment, Component } from 'react';\nimport { TransitionMotion, spring } from 'react-motion';\nimport { defsPropTypes, noop, withTheme, withDimensions, withMotion, getAccessorFor, getLabelGenerator, bindDefs, Container, CartesianMarkers, SvgWrapper, getRelativeCursor, isCursorInRect, ResponsiveWrapper } from '@nivo/core';\nimport { axisPropType, Grid, Axes, renderGridLinesToCanvas, renderAxesToCanvas } from '@nivo/axes';\nimport { LegendPropShape, BoxLegendSvg, renderLegendToCanvas } from '@nivo/legends';\nimport min from 'lodash/min';\nimport max from 'lodash/max';\nimport range from 'lodash/range';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport flattenDepth from 'lodash/flattenDepth';\nimport { stack, stackOffsetDiverging } from 'd3-shape';\nimport _uniqBy from 'lodash/uniqBy';\nimport setDisplayName from 'recompose/setDisplayName';\nimport compose from 'recompose/compose';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport pure from 'recompose/pure';\nimport { inheritedColorPropType, ordinalColorsPropType, colorPropertyAccessorPropType, getOrdinalColorScale, getInheritedColorGenerator } from '@nivo/colors';\nimport PropTypes from 'prop-types';\nimport { BasicTooltip } from '@nivo/tooltip';\nimport { useAnnotations, Annotation } from '@nivo/annotations';\n\nvar getIndexedScale = function getIndexedScale(data, getIndex, range, padding) {\n return scaleBand().rangeRound(range).domain(data.map(getIndex)).padding(padding);\n};\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nvar getGroupedScale = function getGroupedScale(data, keys, _minValue, _maxValue, range) {\n var allValues = data.reduce(function (acc, entry) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(keys.map(function (k) {\n return entry[k];\n })));\n }, []);\n var maxValue = _maxValue;\n if (maxValue === 'auto') {\n maxValue = max(allValues);\n }\n var minValue = _minValue;\n if (minValue === 'auto') {\n minValue = min(allValues);\n if (minValue > 0) minValue = 0;\n }\n return scaleLinear().rangeRound(range).domain([minValue, maxValue]);\n};\nvar generateVerticalGroupedBars = function generateVerticalGroupedBars(_ref) {\n var data = _ref.data,\n getIndex = _ref.getIndex,\n keys = _ref.keys,\n minValue = _ref.minValue,\n maxValue = _ref.maxValue,\n reverse = _ref.reverse,\n width = _ref.width,\n height = _ref.height,\n getColor = _ref.getColor,\n _ref$padding = _ref.padding,\n padding = _ref$padding === void 0 ? 0 : _ref$padding,\n _ref$innerPadding = _ref.innerPadding,\n innerPadding = _ref$innerPadding === void 0 ? 0 : _ref$innerPadding;\n var xScale = getIndexedScale(data, getIndex, [0, width], padding);\n var yRange = reverse ? [0, height] : [height, 0];\n var yScale = getGroupedScale(data, keys, minValue, maxValue, yRange);\n var barWidth = (xScale.bandwidth() - innerPadding * (keys.length - 1)) / keys.length;\n var yRef = yScale(0);\n var getY = function getY(d) {\n return d > 0 ? yScale(d) : yRef;\n };\n var getHeight = function getHeight(d, y) {\n return d > 0 ? yRef - y : yScale(d) - yRef;\n };\n if (reverse) {\n getY = function getY(d) {\n return d < 0 ? yScale(d) : yRef;\n };\n getHeight = function getHeight(d, y) {\n return d < 0 ? yRef - y : yScale(d) - yRef;\n };\n }\n var bars = [];\n if (barWidth > 0) {\n keys.forEach(function (key, i) {\n range(xScale.domain().length).forEach(function (index) {\n var x = xScale(getIndex(data[index])) + barWidth * i + innerPadding * i;\n var y = getY(data[index][key]);\n var barHeight = getHeight(data[index][key], y);\n if (barWidth > 0 && barHeight > 0) {\n var barData = {\n id: key,\n value: data[index][key],\n index: index,\n indexValue: getIndex(data[index]),\n data: data[index]\n };\n bars.push({\n key: \"\".concat(key, \".\").concat(barData.indexValue),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\nvar generateHorizontalGroupedBars = function generateHorizontalGroupedBars(_ref2) {\n var data = _ref2.data,\n getIndex = _ref2.getIndex,\n keys = _ref2.keys,\n minValue = _ref2.minValue,\n maxValue = _ref2.maxValue,\n reverse = _ref2.reverse,\n width = _ref2.width,\n height = _ref2.height,\n getColor = _ref2.getColor,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? 0 : _ref2$padding,\n _ref2$innerPadding = _ref2.innerPadding,\n innerPadding = _ref2$innerPadding === void 0 ? 0 : _ref2$innerPadding;\n var xRange = reverse ? [width, 0] : [0, width];\n var xScale = getGroupedScale(data, keys, minValue, maxValue, xRange);\n var yScale = getIndexedScale(data, getIndex, [height, 0], padding);\n var barHeight = (yScale.bandwidth() - innerPadding * (keys.length - 1)) / keys.length;\n var xRef = xScale(0);\n var getX = function getX(d) {\n return d > 0 ? xRef : xScale(d);\n };\n var getWidth = function getWidth(d, x) {\n return d > 0 ? xScale(d) - xRef : xRef - x;\n };\n if (reverse) {\n getX = function getX(d) {\n return d < 0 ? xRef : xScale(d);\n };\n getWidth = function getWidth(d, x) {\n return d < 0 ? xScale(d) - xRef : xRef - x;\n };\n }\n var bars = [];\n if (barHeight > 0) {\n keys.forEach(function (key, i) {\n range(yScale.domain().length).forEach(function (index) {\n var x = getX(data[index][key]);\n var y = yScale(getIndex(data[index])) + barHeight * i + innerPadding * i;\n var barWidth = getWidth(data[index][key], x);\n if (barWidth > 0) {\n var barData = {\n id: key,\n value: data[index][key],\n index: index,\n indexValue: getIndex(data[index]),\n data: data[index]\n };\n bars.push({\n key: \"\".concat(key, \".\").concat(barData.indexValue),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\nvar generateGroupedBars = function generateGroupedBars(options) {\n return options.layout === 'vertical' ? generateVerticalGroupedBars(options) : generateHorizontalGroupedBars(options);\n};\n\nvar getStackedScale = function getStackedScale(data, _minValue, _maxValue, range) {\n var allValues = flattenDepth(data, 2);\n var minValue = _minValue;\n if (minValue === 'auto') {\n minValue = min(allValues);\n }\n var maxValue = _maxValue;\n if (maxValue === 'auto') {\n maxValue = max(allValues);\n }\n return scaleLinear().rangeRound(range).domain([minValue, maxValue]);\n};\nvar generateVerticalStackedBars = function generateVerticalStackedBars(_ref) {\n var data = _ref.data,\n getIndex = _ref.getIndex,\n keys = _ref.keys,\n minValue = _ref.minValue,\n maxValue = _ref.maxValue,\n reverse = _ref.reverse,\n width = _ref.width,\n height = _ref.height,\n getColor = _ref.getColor,\n _ref$padding = _ref.padding,\n padding = _ref$padding === void 0 ? 0 : _ref$padding,\n _ref$innerPadding = _ref.innerPadding,\n innerPadding = _ref$innerPadding === void 0 ? 0 : _ref$innerPadding;\n var stackedData = stack().keys(keys).offset(stackOffsetDiverging)(data);\n var xScale = getIndexedScale(data, getIndex, [0, width], padding);\n var yRange = reverse ? [0, height] : [height, 0];\n var yScale = getStackedScale(stackedData, minValue, maxValue, yRange);\n var bars = [];\n var barWidth = xScale.bandwidth();\n var getY = function getY(d) {\n return yScale(d[1]);\n };\n var getHeight = function getHeight(d, y) {\n return yScale(d[0]) - y;\n };\n if (reverse) {\n getY = function getY(d) {\n return yScale(d[0]);\n };\n getHeight = function getHeight(d, y) {\n return yScale(d[1]) - y;\n };\n }\n if (barWidth > 0) {\n stackedData.forEach(function (stackedDataItem) {\n xScale.domain().forEach(function (index, i) {\n var d = stackedDataItem[i];\n var x = xScale(getIndex(d.data));\n var y = getY(d);\n var barHeight = getHeight(d, y);\n if (innerPadding > 0) {\n y += innerPadding * 0.5;\n barHeight -= innerPadding;\n }\n if (barHeight > 0) {\n var barData = {\n id: stackedDataItem.key,\n value: d.data[stackedDataItem.key],\n index: i,\n indexValue: index,\n data: d.data\n };\n bars.push({\n key: \"\".concat(stackedDataItem.key, \".\").concat(index),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\nvar generateHorizontalStackedBars = function generateHorizontalStackedBars(_ref2) {\n var data = _ref2.data,\n getIndex = _ref2.getIndex,\n keys = _ref2.keys,\n minValue = _ref2.minValue,\n maxValue = _ref2.maxValue,\n reverse = _ref2.reverse,\n width = _ref2.width,\n height = _ref2.height,\n getColor = _ref2.getColor,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? 0 : _ref2$padding,\n _ref2$innerPadding = _ref2.innerPadding,\n innerPadding = _ref2$innerPadding === void 0 ? 0 : _ref2$innerPadding;\n var stackedData = stack().keys(keys).offset(stackOffsetDiverging)(data);\n var xRange = reverse ? [width, 0] : [0, width];\n var xScale = getStackedScale(stackedData, minValue, maxValue, xRange);\n var yScale = getIndexedScale(data, getIndex, [height, 0], padding);\n var bars = [];\n var barHeight = yScale.bandwidth();\n var getX = function getX(d) {\n return xScale(d[0]);\n };\n var getWidth = function getWidth(d, x) {\n return xScale(d[1]) - x;\n };\n if (reverse) {\n getX = function getX(d) {\n return xScale(d[1]);\n };\n getWidth = function getWidth(d, y) {\n return xScale(d[0]) - y;\n };\n }\n if (barHeight > 0) {\n stackedData.forEach(function (stackedDataItem) {\n yScale.domain().forEach(function (index, i) {\n var d = stackedDataItem[i];\n var y = yScale(getIndex(d.data));\n var barData = {\n id: stackedDataItem.key,\n value: d.data[stackedDataItem.key],\n index: i,\n indexValue: index,\n data: d.data\n };\n var x = getX(d);\n var barWidth = getWidth(d, x);\n if (innerPadding > 0) {\n x += innerPadding * 0.5;\n barWidth -= innerPadding;\n }\n if (barWidth > 0) {\n bars.push({\n key: \"\".concat(stackedDataItem.key, \".\").concat(index),\n data: barData,\n x: x,\n y: y,\n width: barWidth,\n height: barHeight,\n color: getColor(barData)\n });\n }\n });\n });\n }\n return {\n xScale: xScale,\n yScale: yScale,\n bars: bars\n };\n};\nvar generateStackedBars = function generateStackedBars(options) {\n return options.layout === 'vertical' ? generateVerticalStackedBars(options) : generateHorizontalStackedBars(options);\n};\n\nvar getLegendDataForKeys = function getLegendDataForKeys(bars, layout, groupMode, reverse) {\n var data = _uniqBy(bars.map(function (bar) {\n return {\n id: bar.data.id,\n label: bar.data.id,\n color: bar.color,\n fill: bar.data.fill\n };\n }), function (_ref) {\n var id = _ref.id;\n return id;\n });\n if (layout === 'vertical' && groupMode === 'stacked' && reverse !== true || layout === 'horizontal' && groupMode === 'stacked' && reverse === true) {\n data.reverse();\n }\n return data;\n};\nvar getLegendDataForIndexes = function getLegendDataForIndexes(bars) {\n return _uniqBy(bars.map(function (bar) {\n return {\n id: bar.data.indexValue,\n label: bar.data.indexValue,\n color: bar.color,\n fill: bar.data.fill\n };\n }), function (_ref2) {\n var id = _ref2.id;\n return id;\n });\n};\nvar getLegendData = function getLegendData(_ref3) {\n var from = _ref3.from,\n bars = _ref3.bars,\n layout = _ref3.layout,\n groupMode = _ref3.groupMode,\n reverse = _ref3.reverse;\n if (from === 'indexes') {\n return getLegendDataForIndexes(bars);\n }\n return getLegendDataForKeys(bars, layout, groupMode, reverse);\n};\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar BarItem = function BarItem(_ref) {\n var data = _ref.data,\n x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n borderRadius = _ref.borderRadius,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor,\n label = _ref.label,\n shouldRenderLabel = _ref.shouldRenderLabel,\n labelColor = _ref.labelColor,\n showTooltip = _ref.showTooltip,\n hideTooltip = _ref.hideTooltip,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n tooltip = _ref.tooltip,\n theme = _ref.theme;\n var handleTooltip = function handleTooltip(e) {\n return showTooltip(tooltip, e);\n };\n var handleMouseEnter = function handleMouseEnter(e) {\n onMouseEnter(data, e);\n showTooltip(tooltip, e);\n };\n var handleMouseLeave = function handleMouseLeave(e) {\n onMouseLeave(data, e);\n hideTooltip(e);\n };\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\")\n }, React.createElement(\"rect\", {\n width: width,\n height: height,\n rx: borderRadius,\n ry: borderRadius,\n fill: data.fill ? data.fill : color,\n strokeWidth: borderWidth,\n stroke: borderColor,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleTooltip,\n onMouseLeave: handleMouseLeave,\n onClick: onClick\n }), shouldRenderLabel && React.createElement(\"text\", {\n x: width / 2,\n y: height / 2,\n textAnchor: \"middle\",\n dominantBaseline: \"central\",\n style: _objectSpread({}, theme.labels.text, {\n pointerEvents: 'none',\n fill: labelColor\n })\n }, label));\n};\nBarItem.propTypes = {\n data: PropTypes.shape({\n id: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired,\n indexValue: PropTypes.string.isRequired,\n fill: PropTypes.string\n }).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n borderRadius: PropTypes.number.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired,\n label: PropTypes.node.isRequired,\n shouldRenderLabel: PropTypes.bool.isRequired,\n labelColor: PropTypes.string.isRequired,\n showTooltip: PropTypes.func.isRequired,\n hideTooltip: PropTypes.func.isRequired,\n getTooltipLabel: PropTypes.func.isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n onClick: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n tooltip: PropTypes.element.isRequired,\n theme: PropTypes.shape({\n tooltip: PropTypes.shape({}).isRequired,\n labels: PropTypes.shape({\n text: PropTypes.object.isRequired\n }).isRequired\n }).isRequired\n};\nvar enhance = compose(withPropsOnChange(['data', 'color', 'onClick'], function (_ref2) {\n var data = _ref2.data,\n color = _ref2.color,\n _onClick = _ref2.onClick;\n return {\n onClick: function onClick(event) {\n return _onClick(_objectSpread({\n color: color\n }, data), event);\n }\n };\n}), withPropsOnChange(['data', 'color', 'theme', 'tooltip', 'getTooltipLabel', 'tooltipFormat'], function (_ref3) {\n var data = _ref3.data,\n color = _ref3.color,\n theme = _ref3.theme,\n tooltip = _ref3.tooltip,\n getTooltipLabel = _ref3.getTooltipLabel,\n tooltipFormat = _ref3.tooltipFormat;\n return {\n tooltip: React.createElement(BasicTooltip, {\n id: getTooltipLabel(data),\n value: data.value,\n enableChip: true,\n color: color,\n theme: theme,\n format: tooltipFormat,\n renderContent: typeof tooltip === 'function' ? tooltip.bind(null, _objectSpread({\n color: color,\n theme: theme\n }, data)) : null\n })\n };\n}), pure);\nvar BarItem$1 = enhance(BarItem);\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar BarPropTypes = _objectSpread$1({\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n indexBy: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n getIndex: PropTypes.func.isRequired,\n keys: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])).isRequired,\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['grid', 'axes', 'bars', 'markers', 'legends', 'annotations']), PropTypes.func])).isRequired,\n groupMode: PropTypes.oneOf(['stacked', 'grouped']).isRequired,\n layout: PropTypes.oneOf(['horizontal', 'vertical']).isRequired,\n reverse: PropTypes.bool.isRequired,\n minValue: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]).isRequired,\n maxValue: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])]).isRequired,\n padding: PropTypes.number.isRequired,\n innerPadding: PropTypes.number.isRequired,\n axisTop: axisPropType,\n axisRight: axisPropType,\n axisBottom: axisPropType,\n axisLeft: axisPropType,\n enableGridX: PropTypes.bool.isRequired,\n enableGridY: PropTypes.bool.isRequired,\n gridXValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n gridYValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]),\n barComponent: PropTypes.func.isRequired,\n enableLabel: PropTypes.bool.isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n labelFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n getLabel: PropTypes.func.isRequired,\n labelSkipWidth: PropTypes.number.isRequired,\n labelSkipHeight: PropTypes.number.isRequired,\n labelTextColor: inheritedColorPropType.isRequired,\n getLabelTextColor: PropTypes.func.isRequired,\n labelLinkColor: inheritedColorPropType.isRequired,\n getLabelLinkColor: PropTypes.func.isRequired,\n colors: ordinalColorsPropType.isRequired,\n colorBy: colorPropertyAccessorPropType.isRequired,\n borderRadius: PropTypes.number.isRequired,\n getColor: PropTypes.func.isRequired\n}, defsPropTypes, {\n borderWidth: PropTypes.number.isRequired,\n borderColor: inheritedColorPropType.isRequired,\n getBorderColor: PropTypes.func.isRequired,\n isInteractive: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func.isRequired,\n onMouseLeave: PropTypes.func.isRequired,\n tooltipLabel: PropTypes.func,\n getTooltipLabel: PropTypes.func.isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n tooltip: PropTypes.func,\n legends: PropTypes.arrayOf(PropTypes.shape(_objectSpread$1({\n dataFrom: PropTypes.oneOf(['indexes', 'keys']).isRequired\n }, LegendPropShape))).isRequired,\n pixelRatio: PropTypes.number.isRequired\n});\nvar BarDefaultProps = {\n indexBy: 'id',\n keys: ['value'],\n layers: ['grid', 'axes', 'bars', 'markers', 'legends', 'annotations'],\n groupMode: 'stacked',\n layout: 'vertical',\n reverse: false,\n minValue: 'auto',\n maxValue: 'auto',\n padding: 0.1,\n innerPadding: 0,\n axisBottom: {},\n axisLeft: {},\n enableGridX: false,\n enableGridY: true,\n barComponent: BarItem$1,\n enableLabel: true,\n label: 'value',\n labelSkipWidth: 0,\n labelSkipHeight: 0,\n labelLinkColor: 'theme',\n labelTextColor: 'theme',\n colors: {\n scheme: 'nivo'\n },\n colorBy: 'id',\n defs: [],\n fill: [],\n borderRadius: 0,\n borderWidth: 0,\n borderColor: {\n from: 'color'\n },\n isInteractive: true,\n onClick: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n legends: [],\n annotations: [],\n pixelRatio: global.window && global.window.devicePixelRatio ? global.window.devicePixelRatio : 1\n};\n\nvar enhance$1 = (function (Component) {\n return compose(defaultProps(BarDefaultProps), withTheme(), withDimensions(), withMotion(), withPropsOnChange(['colors', 'colorBy'], function (_ref) {\n var colors = _ref.colors,\n colorBy = _ref.colorBy;\n return {\n getColor: getOrdinalColorScale(colors, colorBy)\n };\n }), withPropsOnChange(['indexBy'], function (_ref2) {\n var indexBy = _ref2.indexBy;\n return {\n getIndex: getAccessorFor(indexBy)\n };\n }), withPropsOnChange(['labelTextColor', 'theme'], function (_ref3) {\n var labelTextColor = _ref3.labelTextColor,\n theme = _ref3.theme;\n return {\n getLabelTextColor: getInheritedColorGenerator(labelTextColor, theme)\n };\n }), withPropsOnChange(['labelLinkColor', 'theme'], function (_ref4) {\n var labelLinkColor = _ref4.labelLinkColor,\n theme = _ref4.theme;\n return {\n getLabelLinkColor: getInheritedColorGenerator(labelLinkColor, theme)\n };\n }), withPropsOnChange(['label', 'labelFormat'], function (_ref5) {\n var label = _ref5.label,\n labelFormat = _ref5.labelFormat;\n return {\n getLabel: getLabelGenerator(label, labelFormat)\n };\n }), withPropsOnChange(['borderColor', 'theme'], function (_ref6) {\n var borderColor = _ref6.borderColor,\n theme = _ref6.theme;\n return {\n getBorderColor: getInheritedColorGenerator(borderColor, theme)\n };\n }), withPropsOnChange(['tooltipLabel'], function (_ref7) {\n var tooltipLabel = _ref7.tooltipLabel;\n var getTooltipLabel = function getTooltipLabel(d) {\n return \"\".concat(d.id, \" - \").concat(d.indexValue);\n };\n if (typeof tooltipLabel === 'function') {\n getTooltipLabel = tooltipLabel;\n }\n return {\n getTooltipLabel: getTooltipLabel\n };\n }), pure)(Component);\n});\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar BarAnnotations = function BarAnnotations(_ref) {\n var bars = _ref.bars,\n annotations = _ref.annotations,\n animate = _ref.animate,\n motionStiffness = _ref.motionStiffness,\n motionDamping = _ref.motionDamping;\n var boundAnnotations = useAnnotations({\n items: bars,\n annotations: annotations,\n getPosition: function getPosition(bar) {\n return {\n x: bar.x + bar.width / 2,\n y: bar.y + bar.height / 2\n };\n },\n getDimensions: function getDimensions(bar, offset) {\n var width = bar.width + offset * 2;\n var height = bar.height + offset * 2;\n return {\n width: width,\n height: height,\n size: Math.max(width, height)\n };\n }\n });\n return boundAnnotations.map(function (annotation, i) {\n return React.createElement(Annotation, _extends({\n key: i\n }, annotation, {\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n animate: animate,\n motionStiffness: motionStiffness,\n motionDamping: motionDamping\n }));\n });\n};\nBarAnnotations.propTypes = {};\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(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; }\nvar barWillEnterHorizontal = function barWillEnterHorizontal(_ref) {\n var style = _ref.style;\n return {\n x: style.x.val,\n y: style.y.val,\n width: 0,\n height: style.height.val\n };\n};\nvar barWillEnterVertical = function barWillEnterVertical(_ref2) {\n var style = _ref2.style;\n return {\n x: style.x.val,\n y: style.y.val + style.height.val,\n width: style.width.val,\n height: 0\n };\n};\nvar barWillLeaveHorizontal = function barWillLeaveHorizontal(springConfig) {\n return function (_ref3) {\n var style = _ref3.style;\n return {\n x: style.x,\n y: style.y,\n width: spring(0, springConfig),\n height: style.height\n };\n };\n};\nvar barWillLeaveVertical = function barWillLeaveVertical(springConfig) {\n return function (_ref4) {\n var style = _ref4.style;\n return {\n x: style.x,\n y: spring(style.y.val + style.height.val, springConfig),\n width: style.width,\n height: spring(0, springConfig)\n };\n };\n};\nvar Bar = function Bar(props) {\n var data = props.data,\n getIndex = props.getIndex,\n keys = props.keys,\n groupMode = props.groupMode,\n layout = props.layout,\n reverse = props.reverse,\n minValue = props.minValue,\n maxValue = props.maxValue,\n margin = props.margin,\n width = props.width,\n height = props.height,\n outerWidth = props.outerWidth,\n outerHeight = props.outerHeight,\n padding = props.padding,\n innerPadding = props.innerPadding,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n enableGridX = props.enableGridX,\n enableGridY = props.enableGridY,\n gridXValues = props.gridXValues,\n gridYValues = props.gridYValues,\n layers = props.layers,\n barComponent = props.barComponent,\n enableLabel = props.enableLabel,\n getLabel = props.getLabel,\n labelSkipWidth = props.labelSkipWidth,\n labelSkipHeight = props.labelSkipHeight,\n getLabelTextColor = props.getLabelTextColor,\n markers = props.markers,\n theme = props.theme,\n getColor = props.getColor,\n defs = props.defs,\n fill = props.fill,\n borderRadius = props.borderRadius,\n borderWidth = props.borderWidth,\n getBorderColor = props.getBorderColor,\n annotations = props.annotations,\n isInteractive = props.isInteractive,\n getTooltipLabel = props.getTooltipLabel,\n tooltipFormat = props.tooltipFormat,\n tooltip = props.tooltip,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n legends = props.legends,\n animate = props.animate,\n motionStiffness = props.motionStiffness,\n motionDamping = props.motionDamping;\n var options = {\n layout: layout,\n reverse: reverse,\n data: data,\n getIndex: getIndex,\n keys: keys,\n minValue: minValue,\n maxValue: maxValue,\n width: width,\n height: height,\n getColor: getColor,\n padding: padding,\n innerPadding: innerPadding\n };\n var result = groupMode === 'grouped' ? generateGroupedBars(options) : generateStackedBars(options);\n var motionProps = {\n animate: animate,\n motionDamping: motionDamping,\n motionStiffness: motionStiffness\n };\n var springConfig = {\n damping: motionDamping,\n stiffness: motionStiffness\n };\n var willEnter = layout === 'vertical' ? barWillEnterVertical : barWillEnterHorizontal;\n var willLeave = layout === 'vertical' ? barWillLeaveVertical(springConfig) : barWillLeaveHorizontal(springConfig);\n var shouldRenderLabel = function shouldRenderLabel(_ref5) {\n var width = _ref5.width,\n height = _ref5.height;\n if (!enableLabel) return false;\n if (labelSkipWidth > 0 && width < labelSkipWidth) return false;\n if (labelSkipHeight > 0 && height < labelSkipHeight) return false;\n return true;\n };\n var boundDefs = bindDefs(defs, result.bars, fill, {\n dataKey: 'data',\n targetKey: 'data.fill'\n });\n return React.createElement(Container, {\n isInteractive: isInteractive,\n theme: theme,\n animate: animate,\n motionStiffness: motionStiffness,\n motionDamping: motionDamping\n }, function (_ref6) {\n var showTooltip = _ref6.showTooltip,\n hideTooltip = _ref6.hideTooltip;\n var commonProps = {\n borderRadius: borderRadius,\n borderWidth: borderWidth,\n enableLabel: enableLabel,\n labelSkipWidth: labelSkipWidth,\n labelSkipHeight: labelSkipHeight,\n showTooltip: showTooltip,\n hideTooltip: hideTooltip,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n theme: theme,\n getTooltipLabel: getTooltipLabel,\n tooltipFormat: tooltipFormat,\n tooltip: tooltip\n };\n var bars;\n if (animate === true) {\n bars = React.createElement(TransitionMotion, {\n key: \"bars\",\n willEnter: willEnter,\n willLeave: willLeave,\n styles: result.bars.map(function (bar) {\n return {\n key: bar.key,\n data: bar,\n style: {\n x: spring(bar.x, springConfig),\n y: spring(bar.y, springConfig),\n width: spring(bar.width, springConfig),\n height: spring(bar.height, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (_ref7) {\n var key = _ref7.key,\n style = _ref7.style,\n bar = _ref7.data;\n var baseProps = _objectSpread$2({}, bar, style);\n return React.createElement(barComponent, _objectSpread$2({\n key: key\n }, baseProps, commonProps, {\n shouldRenderLabel: shouldRenderLabel(baseProps),\n width: Math.max(style.width, 0),\n height: Math.max(style.height, 0),\n label: getLabel(bar.data),\n labelColor: getLabelTextColor(baseProps, theme),\n borderColor: getBorderColor(baseProps),\n theme: theme\n }));\n }));\n });\n } else {\n bars = result.bars.map(function (d) {\n return React.createElement(barComponent, _objectSpread$2({\n key: d.key\n }, d, commonProps, {\n label: getLabel(d.data),\n shouldRenderLabel: shouldRenderLabel(d),\n labelColor: getLabelTextColor(d, theme),\n borderColor: getBorderColor(d),\n theme: theme\n }));\n });\n }\n var layerById = {\n grid: React.createElement(Grid, {\n key: \"grid\",\n width: width,\n height: height,\n xScale: enableGridX ? result.xScale : null,\n yScale: enableGridY ? result.yScale : null,\n xValues: gridXValues,\n yValues: gridYValues\n }),\n axes: React.createElement(Axes, {\n key: \"axes\",\n xScale: result.xScale,\n yScale: result.yScale,\n width: width,\n height: height,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft\n }),\n bars: bars,\n markers: React.createElement(CartesianMarkers, {\n key: \"markers\",\n markers: markers,\n width: width,\n height: height,\n xScale: result.xScale,\n yScale: result.yScale,\n theme: theme\n }),\n legends: legends.map(function (legend, i) {\n var legendData = getLegendData({\n from: legend.dataFrom,\n bars: result.bars,\n layout: layout,\n groupMode: groupMode,\n reverse: reverse\n });\n if (legendData === undefined) return null;\n return React.createElement(BoxLegendSvg, _extends$1({\n key: i\n }, legend, {\n containerWidth: width,\n containerHeight: height,\n data: legendData,\n theme: theme\n }));\n }),\n annotations: React.createElement(BarAnnotations, _extends$1({\n key: \"annotations\",\n innerWidth: width,\n innerHeight: height,\n bars: result.bars,\n annotations: annotations\n }, motionProps))\n };\n return React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin,\n defs: boundDefs,\n theme: theme\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(_objectSpread$2({}, props, result)));\n }\n return layerById[layer];\n }));\n });\n};\nBar.propTypes = BarPropTypes;\nvar Bar$1 = setDisplayName('Bar')(enhance$1(Bar));\n\nfunction _typeof(obj) { 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); }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 _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, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty$3(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; }\nvar findNodeUnderCursor = function findNodeUnderCursor(nodes, margin, x, y) {\n return nodes.find(function (node) {\n return isCursorInRect(node.x + margin.left, node.y + margin.top, node.width, node.height, x, y);\n });\n};\nvar BarCanvas =\nfunction (_Component) {\n _inherits(BarCanvas, _Component);\n function BarCanvas() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, BarCanvas);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(BarCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty$3(_assertThisInitialized(_this), \"handleMouseHover\", function (showTooltip, hideTooltip) {\n return function (event) {\n if (!_this.bars) return;\n var _this$props = _this.props,\n margin = _this$props.margin,\n theme = _this$props.theme,\n tooltip = _this$props.tooltip,\n getTooltipLabel = _this$props.getTooltipLabel,\n tooltipFormat = _this$props.tooltipFormat;\n var _getRelativeCursor = getRelativeCursor(_this.surface, event),\n _getRelativeCursor2 = _slicedToArray(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n var bar = findNodeUnderCursor(_this.bars, margin, x, y);\n if (bar !== undefined) {\n showTooltip(React.createElement(BasicTooltip, {\n id: getTooltipLabel(bar.data),\n value: bar.data.value,\n enableChip: true,\n color: bar.color,\n theme: theme,\n format: tooltipFormat,\n renderContent: typeof tooltip === 'function' ? tooltip.bind(null, _objectSpread$3({\n color: bar.color\n }, bar.data)) : null\n }), event);\n } else {\n hideTooltip();\n }\n };\n });\n _defineProperty$3(_assertThisInitialized(_this), \"handleMouseLeave\", function (hideTooltip) {\n return function () {\n hideTooltip();\n };\n });\n _defineProperty$3(_assertThisInitialized(_this), \"handleClick\", function (event) {\n if (!_this.bars) return;\n var _this$props2 = _this.props,\n margin = _this$props2.margin,\n onClick = _this$props2.onClick;\n var _getRelativeCursor3 = getRelativeCursor(_this.surface, event),\n _getRelativeCursor4 = _slicedToArray(_getRelativeCursor3, 2),\n x = _getRelativeCursor4[0],\n y = _getRelativeCursor4[1];\n var node = findNodeUnderCursor(_this.bars, margin, x, y);\n if (node !== undefined) onClick(node.data, event);\n });\n return _this;\n }\n _createClass(BarCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ctx = this.surface.getContext('2d');\n this.draw(this.props);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(props) {\n if (this.props.outerWidth !== props.outerWidth || this.props.outerHeight !== props.outerHeight || this.props.isInteractive !== props.isInteractive || this.props.theme !== props.theme) {\n return true;\n } else {\n this.draw(props);\n return false;\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ctx = this.surface.getContext('2d');\n this.draw(this.props);\n }\n }, {\n key: \"draw\",\n value: function draw(props) {\n var _this2 = this;\n var data = props.data,\n keys = props.keys,\n getIndex = props.getIndex,\n minValue = props.minValue,\n maxValue = props.maxValue,\n width = props.width,\n height = props.height,\n outerWidth = props.outerWidth,\n outerHeight = props.outerHeight,\n pixelRatio = props.pixelRatio,\n margin = props.margin,\n layout = props.layout,\n reverse = props.reverse,\n groupMode = props.groupMode,\n padding = props.padding,\n innerPadding = props.innerPadding,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n theme = props.theme,\n getColor = props.getColor,\n borderWidth = props.borderWidth,\n getBorderColor = props.getBorderColor,\n legends = props.legends,\n enableGridX = props.enableGridX,\n gridXValues = props.gridXValues,\n enableGridY = props.enableGridY,\n gridYValues = props.gridYValues;\n this.surface.width = outerWidth * pixelRatio;\n this.surface.height = outerHeight * pixelRatio;\n this.ctx.scale(pixelRatio, pixelRatio);\n var options = {\n layout: layout,\n reverse: reverse,\n data: data,\n getIndex: getIndex,\n keys: keys,\n minValue: minValue,\n maxValue: maxValue,\n width: width,\n height: height,\n getColor: getColor,\n padding: padding,\n innerPadding: innerPadding\n };\n var result = groupMode === 'grouped' ? generateGroupedBars(options) : generateStackedBars(options);\n this.bars = result.bars;\n this.ctx.fillStyle = theme.background;\n this.ctx.fillRect(0, 0, outerWidth, outerHeight);\n this.ctx.translate(margin.left, margin.top);\n if (theme.grid.line.strokeWidth > 0) {\n this.ctx.lineWidth = theme.grid.line.strokeWidth;\n this.ctx.strokeStyle = theme.grid.line.stroke;\n enableGridX && renderGridLinesToCanvas(this.ctx, {\n width: width,\n height: height,\n scale: result.xScale,\n axis: 'x',\n values: gridXValues\n });\n enableGridY && renderGridLinesToCanvas(this.ctx, {\n width: width,\n height: height,\n scale: result.yScale,\n axis: 'y',\n values: gridYValues\n });\n }\n this.ctx.strokeStyle = '#dddddd';\n var legendDataForKeys = _uniqBy(result.bars.map(function (bar) {\n return {\n id: bar.data.id,\n label: bar.data.id,\n color: bar.color,\n fill: bar.data.fill\n };\n }).reverse(), function (_ref) {\n var id = _ref.id;\n return id;\n });\n var legendDataForIndexes = _uniqBy(result.bars.map(function (bar) {\n return {\n id: bar.data.indexValue,\n label: bar.data.indexValue,\n color: bar.color,\n fill: bar.data.fill\n };\n }), function (_ref2) {\n var id = _ref2.id;\n return id;\n });\n legends.forEach(function (legend) {\n var legendData;\n if (legend.dataFrom === 'keys') {\n legendData = legendDataForKeys;\n } else if (legend.dataFrom === 'indexes') {\n legendData = legendDataForIndexes;\n }\n if (legendData === undefined) return null;\n renderLegendToCanvas(_this2.ctx, _objectSpread$3({}, legend, {\n data: legendData,\n containerWidth: width,\n containerHeight: height,\n itemTextColor: '#999',\n symbolSize: 16,\n theme: theme\n }));\n });\n renderAxesToCanvas(this.ctx, {\n xScale: result.xScale,\n yScale: result.yScale,\n width: width,\n height: height,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft,\n theme: theme\n });\n result.bars.forEach(function (bar) {\n var x = bar.x,\n y = bar.y,\n color = bar.color,\n width = bar.width,\n height = bar.height;\n _this2.ctx.fillStyle = color;\n if (borderWidth > 0) {\n _this2.ctx.strokeStyle = getBorderColor(bar);\n _this2.ctx.lineWidth = borderWidth;\n }\n _this2.ctx.beginPath();\n _this2.ctx.rect(x, y, width, height);\n _this2.ctx.fill();\n if (borderWidth > 0) {\n _this2.ctx.stroke();\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props3 = this.props,\n outerWidth = _this$props3.outerWidth,\n outerHeight = _this$props3.outerHeight,\n pixelRatio = _this$props3.pixelRatio,\n isInteractive = _this$props3.isInteractive,\n theme = _this$props3.theme;\n return React.createElement(Container, {\n isInteractive: isInteractive,\n theme: theme,\n animate: false\n }, function (_ref3) {\n var showTooltip = _ref3.showTooltip,\n hideTooltip = _ref3.hideTooltip;\n return React.createElement(\"canvas\", {\n ref: function ref(surface) {\n _this3.surface = surface;\n },\n width: outerWidth * pixelRatio,\n height: outerHeight * pixelRatio,\n style: {\n width: outerWidth,\n height: outerHeight\n },\n onMouseEnter: _this3.handleMouseHover(showTooltip, hideTooltip),\n onMouseMove: _this3.handleMouseHover(showTooltip, hideTooltip),\n onMouseLeave: _this3.handleMouseLeave(hideTooltip),\n onClick: _this3.handleClick\n });\n });\n }\n }]);\n return BarCanvas;\n}(Component);\nBarCanvas.propTypes = BarPropTypes;\nvar BarCanvas$1 = setDisplayName('BarCanvas')(enhance$1(BarCanvas));\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\nvar ResponsiveBar = function ResponsiveBar(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Bar$1, _extends$2({\n width: width,\n height: height\n }, props));\n });\n};\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar ResponsiveBarCanvas = function ResponsiveBarCanvas(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(BarCanvas$1, _extends$3({\n width: width,\n height: height\n }, props));\n });\n};\n\nexport { Bar$1 as Bar, BarCanvas$1 as BarCanvas, BarDefaultProps, BarPropTypes, ResponsiveBar, ResponsiveBarCanvas };\n","import { schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBuGn, schemePuBu, schemePuRd, schemeRdPu, schemeYlGnBu, schemeYlGn, schemeYlOrBr, schemeYlOrRd, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolateOranges, interpolatePurples, interpolateReds, interpolateViridis, interpolateInferno, interpolateMagma, interpolatePlasma, interpolateWarm, interpolateCool, interpolateCubehelixDefault, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow } from 'd3-scale-chromatic';\nimport { useMemo } from 'react';\nimport get from 'lodash.get';\nimport isPlainObject from 'lodash.isplainobject';\nimport { scaleOrdinal } from 'd3-scale';\nimport { rgb } from 'd3-color';\nimport PropTypes from 'prop-types';\nimport { spring } from 'react-motion';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar categoricalColorSchemes = {\n nivo: ['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5'],\n category10: schemeCategory10,\n accent: schemeAccent,\n dark2: schemeDark2,\n paired: schemePaired,\n pastel1: schemePastel1,\n pastel2: schemePastel2,\n set1: schemeSet1,\n set2: schemeSet2,\n set3: schemeSet3\n};\nvar categoricalColorSchemeIds = Object.keys(categoricalColorSchemes);\nvar isCategoricalColorScheme = function isCategoricalColorScheme(scheme) {\n return categoricalColorSchemeIds.includes(scheme);\n};\nvar divergingColorSchemes = {\n brown_blueGreen: schemeBrBG,\n purpleRed_green: schemePRGn,\n pink_yellowGreen: schemePiYG,\n purple_orange: schemePuOr,\n red_blue: schemeRdBu,\n red_grey: schemeRdGy,\n red_yellow_blue: schemeRdYlBu,\n red_yellow_green: schemeRdYlGn,\n spectral: schemeSpectral\n};\nvar divergingColorSchemeIds = Object.keys(divergingColorSchemes);\nvar isDivergingColorScheme = function isDivergingColorScheme(scheme) {\n return divergingColorSchemeIds.includes(scheme);\n};\nvar sequentialColorSchemes = {\n blues: schemeBlues,\n greens: schemeGreens,\n greys: schemeGreys,\n oranges: schemeOranges,\n purples: schemePurples,\n reds: schemeReds,\n blue_green: schemeBuGn,\n blue_purple: schemeBuPu,\n green_blue: schemeGnBu,\n orange_red: schemeOrRd,\n purple_blue_green: schemePuBuGn,\n purple_blue: schemePuBu,\n purple_red: schemePuRd,\n red_purple: schemeRdPu,\n yellow_green_blue: schemeYlGnBu,\n yellow_green: schemeYlGn,\n yellow_orange_brown: schemeYlOrBr,\n yellow_orange_red: schemeYlOrRd\n};\nvar sequentialColorSchemeIds = Object.keys(sequentialColorSchemes);\nvar isSequentialColorScheme = function isSequentialColorScheme(scheme) {\n return sequentialColorSchemeIds.includes(scheme);\n};\nvar colorSchemes = _objectSpread({}, categoricalColorSchemes, divergingColorSchemes, sequentialColorSchemes);\nvar colorSchemeIds = Object.keys(colorSchemes);\nvar colorInterpolators = {\n brown_blueGreen: interpolateBrBG,\n purpleRed_green: interpolatePRGn,\n pink_yellowGreen: interpolatePiYG,\n purple_orange: interpolatePuOr,\n red_blue: interpolateRdBu,\n red_grey: interpolateRdGy,\n red_yellow_blue: interpolateRdYlBu,\n red_yellow_green: interpolateRdYlGn,\n spectral: interpolateSpectral,\n blues: interpolateBlues,\n greens: interpolateGreens,\n greys: interpolateGreys,\n oranges: interpolateOranges,\n purples: interpolatePurples,\n reds: interpolateReds,\n viridis: interpolateViridis,\n inferno: interpolateInferno,\n magma: interpolateMagma,\n plasma: interpolatePlasma,\n warm: interpolateWarm,\n cool: interpolateCool,\n cubehelixDefault: interpolateCubehelixDefault,\n blue_green: interpolateBuGn,\n blue_purple: interpolateBuPu,\n green_blue: interpolateGnBu,\n orange_red: interpolateOrRd,\n purple_blue_green: interpolatePuBuGn,\n purple_blue: interpolatePuBu,\n purple_red: interpolatePuRd,\n red_purple: interpolateRdPu,\n yellow_green_blue: interpolateYlGnBu,\n yellow_green: interpolateYlGn,\n yellow_orange_brown: interpolateYlOrBr,\n yellow_orange_red: interpolateYlOrRd,\n rainbow: interpolateRainbow,\n sinebow: interpolateSinebow\n};\nvar colorInterpolatorIds = Object.keys(colorInterpolators);\n\nvar getOrdinalColorScale = function getOrdinalColorScale(instruction, identity) {\n if (typeof instruction === 'function') return instruction;\n var getIdentity = typeof identity === 'function' ? identity : function (d) {\n return get(d, identity);\n };\n if (Array.isArray(instruction)) {\n var scale = scaleOrdinal(instruction);\n var generator = function generator(d) {\n return scale(getIdentity(d));\n };\n generator.scale = scale;\n return generator;\n }\n if (isPlainObject(instruction)) {\n if (instruction.datum !== undefined) {\n return function (datum) {\n return get(datum, instruction.datum);\n };\n }\n if (instruction.scheme !== undefined) {\n if (isCategoricalColorScheme(instruction.scheme)) {\n var _scale = scaleOrdinal(colorSchemes[instruction.scheme]);\n var _generator = function _generator(d) {\n return _scale(getIdentity(d));\n };\n _generator.scale = _scale;\n return _generator;\n }\n if (isDivergingColorScheme(instruction.scheme)) {\n if (instruction.size !== undefined && (instruction.size < 3 || instruction.size > 11)) {\n throw new Error(\"Invalid size '\".concat(instruction.size, \"' for diverging color scheme '\").concat(instruction.scheme, \"', must be between 3~11\"));\n }\n var _scale2 = scaleOrdinal(colorSchemes[instruction.scheme][instruction.size || 11]);\n var _generator2 = function _generator2(d) {\n return _scale2(getIdentity(d));\n };\n _generator2.scale = _scale2;\n return _generator2;\n }\n if (isSequentialColorScheme(instruction.scheme)) {\n if (instruction.size !== undefined && (instruction.size < 3 || instruction.size > 9)) {\n throw new Error(\"Invalid size '\".concat(instruction.size, \"' for sequential color scheme '\").concat(instruction.scheme, \"', must be between 3~9\"));\n }\n var _scale3 = scaleOrdinal(colorSchemes[instruction.scheme][instruction.size || 9]);\n var _generator3 = function _generator3(d) {\n return _scale3(getIdentity(d));\n };\n _generator3.scale = _scale3;\n return _generator3;\n }\n }\n throw new Error(\"Invalid colors, when using an object, you should either pass a 'datum' or a 'scheme' property\");\n }\n return function () {\n return instruction;\n };\n};\nvar useOrdinalColorScale = function useOrdinalColorScale(instruction, identity) {\n return useMemo(function () {\n return getOrdinalColorScale(instruction, identity);\n }, [instruction, identity]);\n};\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 getInheritedColorGenerator = function getInheritedColorGenerator(inheritedColor, theme) {\n if (typeof inheritedColor === 'function') return function (node) {\n return inheritedColor(node);\n };\n if (isPlainObject(inheritedColor)) {\n if (inheritedColor.theme !== undefined) {\n if (theme === undefined) {\n throw new Error(\"Unable to use color from theme as no theme was provided\");\n }\n var themeColor = get(theme, inheritedColor.theme);\n if (themeColor === undefined) {\n throw new Error(\"Color from theme is undefined at path: '\".concat(inheritedColor.theme, \"'\"));\n }\n return function () {\n return themeColor;\n };\n }\n if (inheritedColor.from !== undefined) {\n var getColor = function getColor(datum) {\n return get(datum, inheritedColor.from);\n };\n if (Array.isArray(inheritedColor.modifiers)) {\n var modifiers = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n var _loop = function _loop() {\n var modifier = _step.value;\n var _modifier = _slicedToArray(modifier, 2),\n modifierType = _modifier[0],\n amount = _modifier[1];\n if (modifierType === 'brighter') {\n modifiers.push(function (color) {\n return color.brighter(amount);\n });\n } else if (modifierType === 'darker') {\n modifiers.push(function (color) {\n return color.darker(amount);\n });\n } else if (modifierType === 'opacity') {\n modifiers.push(function (color) {\n color.opacity = amount;\n return color;\n });\n } else {\n throw new Error(\"Invalid color modifier: '\".concat(modifierType, \"', must be one of: 'brighter', 'darker', 'opacity'\"));\n }\n };\n for (var _iterator = inheritedColor.modifiers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n _loop();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (modifiers.length === 0) return getColor;\n return function (datum) {\n return modifiers.reduce(function (color, modify) {\n return modify(color);\n }, rgb(getColor(datum))).toString();\n };\n }\n return getColor;\n }\n throw new Error(\"Invalid color spec, you should either specify 'theme' or 'from' when using a config object\");\n }\n return function () {\n return inheritedColor;\n };\n};\nvar useInheritedColor = function useInheritedColor(parentColor, theme) {\n return useMemo(function () {\n return getInheritedColorGenerator(parentColor, theme);\n }, [parentColor, theme]);\n};\n\nvar ordinalColorsPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.arrayOf(PropTypes.string), PropTypes.shape({\n scheme: PropTypes.oneOf(colorSchemeIds).isRequired,\n size: PropTypes.number\n}), PropTypes.shape({\n datum: PropTypes.string.isRequired\n}), PropTypes.string]);\nvar colorPropertyAccessorPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\nvar inheritedColorPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n theme: PropTypes.string.isRequired\n}), PropTypes.shape({\n from: PropTypes.string.isRequired,\n modifiers: PropTypes.arrayOf(PropTypes.array)\n})]);\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar interpolateColor = function interpolateColor(color, springConfig) {\n var colorComponents = rgb(color);\n if (!springConfig) {\n return {\n colorR: colorComponents.r,\n colorG: colorComponents.g,\n colorB: colorComponents.b\n };\n }\n var configWithPrecision = _objectSpread$1({}, springConfig, {\n precision: 1\n });\n return {\n colorR: spring(colorComponents.r, configWithPrecision),\n colorG: spring(colorComponents.g, configWithPrecision),\n colorB: spring(colorComponents.b, configWithPrecision)\n };\n};\nvar getInterpolatedColor = function getInterpolatedColor(_ref) {\n var colorR = _ref.colorR,\n colorG = _ref.colorG,\n colorB = _ref.colorB;\n return \"rgb(\".concat(Math.round(Math.max(colorR, 0)), \",\").concat(Math.round(Math.max(colorG, 0)), \",\").concat(Math.round(Math.max(colorB, 0)), \")\");\n};\n\nexport { categoricalColorSchemeIds, categoricalColorSchemes, colorInterpolatorIds, colorInterpolators, colorPropertyAccessorPropType, colorSchemeIds, colorSchemes, divergingColorSchemeIds, divergingColorSchemes, getInheritedColorGenerator, getInterpolatedColor, getOrdinalColorScale, inheritedColorPropType, interpolateColor, isCategoricalColorScheme, isDivergingColorScheme, isSequentialColorScheme, ordinalColorsPropType, sequentialColorSchemeIds, sequentialColorSchemes, useInheritedColor, useOrdinalColorScale };\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","export default function() {}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","import React, { useMemo, createContext, useContext, PureComponent, useRef, useState, useCallback, Component, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { tooltipContext, useTooltipHandlers, TooltipWrapper } from '@nivo/tooltip';\nimport merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport last from 'lodash/last';\nimport isArray from 'lodash/isArray';\nimport isString from 'lodash/isString';\nimport { scaleQuantize, scaleOrdinal, scaleSequential } from 'd3-scale';\nimport { schemeBrBG, schemePRGn, schemePiYG, schemePuOr, schemeRdBu, schemeRdGy, schemeRdYlBu, schemeRdYlGn, schemeSpectral, schemeBlues, schemeGreens, schemeGreys, schemeOranges, schemePurples, schemeReds, schemeBuGn, schemeBuPu, schemeGnBu, schemeOrRd, schemePuBuGn, schemePuBu, schemePuRd, schemeRdPu, schemeYlGnBu, schemeYlGn, schemeYlOrBr, schemeYlOrRd, schemeCategory10, schemeAccent, schemeDark2, schemePaired, schemePastel1, schemePastel2, schemeSet1, schemeSet2, schemeSet3, interpolateBrBG, interpolatePRGn, interpolatePiYG, interpolatePuOr, interpolateRdBu, interpolateRdGy, interpolateRdYlBu, interpolateRdYlGn, interpolateSpectral, interpolateBlues, interpolateGreens, interpolateGreys, interpolateOranges, interpolatePurples, interpolateReds, interpolateViridis, interpolateInferno, interpolateMagma, interpolatePlasma, interpolateWarm, interpolateCool, interpolateCubehelixDefault, interpolateBuGn, interpolateBuPu, interpolateGnBu, interpolateOrRd, interpolatePuBuGn, interpolatePuBu, interpolatePuRd, interpolateRdPu, interpolateYlGnBu, interpolateYlGn, interpolateYlOrBr, interpolateYlOrRd, interpolateRainbow, interpolateSinebow } from 'd3-scale-chromatic';\nimport isFunction from 'lodash/isFunction';\nimport without from 'lodash/without';\nimport { curveBasis, curveBasisClosed, curveBasisOpen, curveBundle, curveCardinal, curveCardinalClosed, curveCardinalOpen, curveCatmullRom, curveCatmullRomClosed, curveCatmullRomOpen, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, stackOrderAscending, stackOrderDescending, stackOrderInsideOut, stackOrderNone, stackOrderReverse, stackOffsetExpand, stackOffsetDiverging, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify, hierarchy } from 'd3-hierarchy';\nimport { format } from 'd3-format';\nimport { timeFormat } from 'd3-time-format';\nimport { spring, Motion } from 'react-motion';\nimport { interpolate } from 'd3-interpolate';\nimport Measure from 'react-measure';\nimport withProps from 'recompose/withProps';\nimport isEqual from 'lodash/isEqual';\nimport compose from 'recompose/compose';\nimport setPropTypes from 'recompose/setPropTypes';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport partialRight from 'lodash/partialRight';\nimport isPlainObject from 'lodash/isPlainObject';\nimport pick from 'lodash/pick';\n\nvar noop = (function () {});\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar textProps = {\n fill: PropTypes.string,\n fontSize: PropTypes.number,\n fontFamily: PropTypes.string\n};\nvar axisThemePropType = PropTypes.shape({\n domain: PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired\n }).isRequired,\n ticks: PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired,\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n }).isRequired,\n legend: PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n }).isRequired\n});\nvar gridThemePropType = PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired\n});\nvar legendsThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar labelsThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar dotsThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar markersThemePropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps)).isRequired\n});\nvar crosshairPropType = PropTypes.shape({\n line: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n strokeDasharray: PropTypes.string\n }).isRequired\n});\nvar annotationsPropType = PropTypes.shape({\n text: PropTypes.shape(_objectSpread({}, textProps, {\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n })).isRequired,\n link: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n }).isRequired,\n outline: PropTypes.shape({\n stroke: PropTypes.string.isRequired,\n strokeWidth: PropTypes.number.isRequired,\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n }).isRequired,\n symbol: PropTypes.shape({\n fill: PropTypes.string.isRequired,\n outlineWidth: PropTypes.number.isRequired,\n outlineColor: PropTypes.string.isRequired\n }).isRequired\n});\nvar themePropType = PropTypes.shape({\n background: PropTypes.string.isRequired,\n fontFamily: PropTypes.string.isRequired,\n fontSize: PropTypes.number.isRequired,\n textColor: PropTypes.string.isRequired,\n axis: axisThemePropType.isRequired,\n grid: gridThemePropType.isRequired,\n legends: legendsThemePropType.isRequired,\n labels: labelsThemePropType.isRequired,\n dots: dotsThemePropType.isRequired,\n markers: markersThemePropType,\n crosshair: crosshairPropType.isRequired,\n annotations: annotationsPropType.isRequired\n});\n\nvar defaultTheme = {\n background: 'transparent',\n fontFamily: 'sans-serif',\n fontSize: 11,\n textColor: '#333333',\n axis: {\n domain: {\n line: {\n stroke: 'transparent',\n strokeWidth: 1\n }\n },\n ticks: {\n line: {\n stroke: '#777777',\n strokeWidth: 1\n },\n text: {}\n },\n legend: {\n text: {\n fontSize: 12\n }\n }\n },\n grid: {\n line: {\n stroke: '#dddddd',\n strokeWidth: 1\n }\n },\n legends: {\n text: {\n fill: '#333333'\n }\n },\n labels: {\n text: {}\n },\n markers: {\n lineColor: '#000000',\n lineStrokeWidth: 1,\n text: {}\n },\n dots: {\n text: {}\n },\n tooltip: {\n container: {\n background: 'white',\n color: 'inherit',\n fontSize: 'inherit',\n borderRadius: '2px',\n boxShadow: '0 1px 2px rgba(0, 0, 0, 0.25)',\n padding: '5px 9px'\n },\n basic: {\n whiteSpace: 'pre',\n display: 'flex',\n alignItems: 'center'\n },\n chip: {\n marginRight: 7\n },\n table: {},\n tableCell: {\n padding: '3px 5px'\n }\n },\n crosshair: {\n line: {\n stroke: '#000000',\n strokeWidth: 1,\n strokeOpacity: 0.75,\n strokeDasharray: '6 6'\n }\n },\n annotations: {\n text: {\n fontSize: 13,\n outlineWidth: 2,\n outlineColor: '#ffffff'\n },\n link: {\n stroke: '#000000',\n strokeWidth: 1,\n outlineWidth: 2,\n outlineColor: '#ffffff'\n },\n outline: {\n fill: 'none',\n stroke: '#000000',\n strokeWidth: 2,\n outlineWidth: 2,\n outlineColor: '#ffffff'\n },\n symbol: {\n fill: '#000000',\n outlineWidth: 2,\n outlineColor: '#ffffff'\n }\n }\n};\n\nvar fontProps = ['axis.ticks.text', 'axis.legend.text', 'legends.text', 'labels.text', 'dots.text', 'markers.text', 'annotations.text'];\nvar extendDefaultTheme = function extendDefaultTheme(defaultTheme, customTheme) {\n var theme = merge({}, defaultTheme, customTheme);\n fontProps.forEach(function (prop) {\n if (get(theme, \"\".concat(prop, \".fontFamily\")) === undefined) {\n set(theme, \"\".concat(prop, \".fontFamily\"), theme.fontFamily);\n }\n if (get(theme, \"\".concat(prop, \".fontSize\")) === undefined) {\n set(theme, \"\".concat(prop, \".fontSize\"), theme.fontSize);\n }\n if (get(theme, \"\".concat(prop, \".fill\")) === undefined) {\n set(theme, \"\".concat(prop, \".fill\"), theme.textColor);\n }\n });\n return theme;\n};\n\nvar quantizeColorScales = {\n nivo: ['#d76445', '#f47560', '#e8c1a0', '#97e3d5', '#61cdbb', '#00b0a7'],\n BrBG: last(schemeBrBG),\n PRGn: last(schemePRGn),\n PiYG: last(schemePiYG),\n PuOr: last(schemePuOr),\n RdBu: last(schemeRdBu),\n RdGy: last(schemeRdGy),\n RdYlBu: last(schemeRdYlBu),\n RdYlGn: last(schemeRdYlGn),\n spectral: last(schemeSpectral),\n blues: last(schemeBlues),\n greens: last(schemeGreens),\n greys: last(schemeGreys),\n oranges: last(schemeOranges),\n purples: last(schemePurples),\n reds: last(schemeReds),\n BuGn: last(schemeBuGn),\n BuPu: last(schemeBuPu),\n GnBu: last(schemeGnBu),\n OrRd: last(schemeOrRd),\n PuBuGn: last(schemePuBuGn),\n PuBu: last(schemePuBu),\n PuRd: last(schemePuRd),\n RdPu: last(schemeRdPu),\n YlGnBu: last(schemeYlGnBu),\n YlGn: last(schemeYlGn),\n YlOrBr: last(schemeYlOrBr),\n YlOrRd: last(schemeYlOrRd)\n};\nvar quantizeColorScalesKeys = Object.keys(quantizeColorScales);\nvar guessQuantizeColorScale = function guessQuantizeColorScale(colors) {\n if (isFunction(colors)) {\n if (!isFunction(colors.domain)) {\n throw new Error(\"Provided colors should be a valid quantize scale providing a 'domain()' function\");\n }\n return colors;\n }\n if (quantizeColorScales[colors]) {\n return scaleQuantize().range(quantizeColorScales[colors]);\n }\n if (isArray(colors)) return scaleQuantize().range(colors);\n throw new Error(\"Unable to guess quantize color scale from '\".concat(colors, \"',\\nmust be a function or one of:\\n'\").concat(quantizeColorScalesKeys.join(\"', '\"), \"'\"));\n};\n\nvar colorSchemes = {\n nivo: ['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5'],\n category10: schemeCategory10,\n accent: schemeAccent,\n dark2: schemeDark2,\n paired: schemePaired,\n pastel1: schemePastel1,\n pastel2: schemePastel2,\n set1: schemeSet1,\n set2: schemeSet2,\n set3: schemeSet3,\n brown_blueGreen: last(schemeBrBG),\n purpleRed_green: last(schemePRGn),\n pink_yellowGreen: last(schemePiYG),\n purple_orange: last(schemePuOr),\n red_blue: last(schemeRdBu),\n red_grey: last(schemeRdGy),\n red_yellow_blue: last(schemeRdYlBu),\n red_yellow_green: last(schemeRdYlGn),\n spectral: last(schemeSpectral),\n blues: last(schemeBlues),\n greens: last(schemeGreens),\n greys: last(schemeGreys),\n oranges: last(schemeOranges),\n purples: last(schemePurples),\n reds: last(schemeReds),\n blue_green: last(schemeBuGn),\n blue_purple: last(schemeBuPu),\n green_blue: last(schemeGnBu),\n orange_red: last(schemeOrRd),\n purple_blue_green: last(schemePuBuGn),\n purple_blue: last(schemePuBu),\n purple_red: last(schemePuRd),\n red_purple: last(schemeRdPu),\n yellow_green_blue: last(schemeYlGnBu),\n yellow_green: last(schemeYlGn),\n yellow_orange_brown: last(schemeYlOrBr),\n yellow_orange_red: last(schemeYlOrRd)\n};\nvar colorSchemeIds = ['nivo',\n'category10', 'accent', 'dark2', 'paired', 'pastel1', 'pastel2', 'set1', 'set2', 'set3',\n'brown_blueGreen', 'purpleRed_green', 'pink_yellowGreen', 'purple_orange', 'red_blue', 'red_grey', 'red_yellow_blue', 'red_yellow_green', 'spectral',\n'blues', 'greens', 'greys', 'oranges', 'purples', 'reds',\n'blue_green', 'blue_purple', 'green_blue', 'orange_red', 'purple_blue_green', 'purple_blue', 'purple_red', 'red_purple', 'yellow_green_blue', 'yellow_green', 'yellow_orange_brown', 'yellow_orange_red'];\nvar colorInterpolators = {\n brown_blueGreen: interpolateBrBG,\n purpleRed_green: interpolatePRGn,\n pink_yellowGreen: interpolatePiYG,\n purple_orange: interpolatePuOr,\n red_blue: interpolateRdBu,\n red_grey: interpolateRdGy,\n red_yellow_blue: interpolateRdYlBu,\n red_yellow_green: interpolateRdYlGn,\n spectral: interpolateSpectral,\n blues: interpolateBlues,\n greens: interpolateGreens,\n greys: interpolateGreys,\n oranges: interpolateOranges,\n purples: interpolatePurples,\n reds: interpolateReds,\n viridis: interpolateViridis,\n inferno: interpolateInferno,\n magma: interpolateMagma,\n plasma: interpolatePlasma,\n warm: interpolateWarm,\n cool: interpolateCool,\n cubehelixDefault: interpolateCubehelixDefault,\n blue_green: interpolateBuGn,\n blue_purple: interpolateBuPu,\n green_blue: interpolateGnBu,\n orange_red: interpolateOrRd,\n purple_blue_green: interpolatePuBuGn,\n purple_blue: interpolatePuBu,\n purple_red: interpolatePuRd,\n red_purple: interpolateRdPu,\n yellow_green_blue: interpolateYlGnBu,\n yellow_green: interpolateYlGn,\n yellow_orange_brown: interpolateYlOrBr,\n yellow_orange_red: interpolateYlOrRd,\n rainbow: interpolateRainbow,\n sinebow: interpolateSinebow\n};\nvar colorInterpolatorIds = [\n'brown_blueGreen', 'purpleRed_green', 'pink_yellowGreen', 'purple_orange', 'red_blue', 'red_grey', 'red_yellow_blue', 'red_yellow_green', 'spectral',\n'blues', 'greens', 'greys', 'oranges', 'purples', 'reds',\n'viridis', 'inferno', 'magma', 'plasma', 'warm', 'cool', 'cubehelixDefault', 'blue_green', 'blue_purple', 'green_blue', 'orange_red', 'purple_blue_green', 'purple_blue', 'purple_red', 'red_purple', 'yellow_green_blue', 'yellow_green', 'yellow_orange_brown', 'yellow_orange_red',\n'rainbow', 'sinebow'];\nvar nivoCategoricalColors = function nivoCategoricalColors() {\n return scaleOrdinal(['#e8c1a0', '#f47560', '#f1e15b', '#e8a838', '#61cdbb', '#97e3d5']);\n};\nvar getColorScale = function getColorScale(colors, dataScale) {\n if (isString(colors)) {\n var scheme = colorSchemes[colors];\n if (scheme !== undefined) {\n var scale = scaleOrdinal(scheme);\n scale.type = 'ordinal';\n return scale;\n }\n if (dataScale !== undefined && colors.indexOf('seq:') === 0) {\n var interpolator = colorInterpolators[colors.slice(4)];\n if (interpolator !== undefined) {\n var _scale = scaleSequential(interpolator).domain(dataScale.domain());\n _scale.type = 'sequential';\n return _scale;\n }\n }\n }\n if (isArray(colors)) {\n var _scale2 = scaleOrdinal(colors);\n _scale2.type = 'ordinal';\n return _scale2;\n }\n return function () {\n return colors;\n };\n};\n\nvar quantizeColorScalePropType = PropTypes.oneOfType([PropTypes.oneOf(quantizeColorScalesKeys), PropTypes.func, PropTypes.arrayOf(PropTypes.string)]);\n\nvar curvePropMapping = {\n basis: curveBasis,\n basisClosed: curveBasisClosed,\n basisOpen: curveBasisOpen,\n bundle: curveBundle,\n cardinal: curveCardinal,\n cardinalClosed: curveCardinalClosed,\n cardinalOpen: curveCardinalOpen,\n catmullRom: curveCatmullRom,\n catmullRomClosed: curveCatmullRomClosed,\n catmullRomOpen: curveCatmullRomOpen,\n linear: curveLinear,\n linearClosed: curveLinearClosed,\n monotoneX: curveMonotoneX,\n monotoneY: curveMonotoneY,\n natural: curveNatural,\n step: curveStep,\n stepAfter: curveStepAfter,\n stepBefore: curveStepBefore\n};\nvar curvePropKeys = Object.keys(curvePropMapping);\nvar curvePropType = PropTypes.oneOf(curvePropKeys);\nvar closedCurvePropKeys = curvePropKeys.filter(function (c) {\n return c.endsWith('Closed');\n});\nvar closedCurvePropType = PropTypes.oneOf(closedCurvePropKeys);\nvar areaCurvePropKeys = without(curvePropKeys, 'bundle', 'basisClosed', 'basisOpen', 'cardinalClosed', 'cardinalOpen', 'catmullRomClosed', 'catmullRomOpen', 'linearClosed');\nvar areaCurvePropType = PropTypes.oneOf(areaCurvePropKeys);\nvar lineCurvePropKeys = without(curvePropKeys, 'bundle', 'basisClosed', 'basisOpen', 'cardinalClosed', 'cardinalOpen', 'catmullRomClosed', 'catmullRomOpen', 'linearClosed');\nvar lineCurvePropType = PropTypes.oneOf(lineCurvePropKeys);\nvar curveFromProp = function curveFromProp(id) {\n var curveInterpolator = curvePropMapping[id];\n if (!curveInterpolator) {\n throw new TypeError(\"'\".concat(id, \"', is not a valid curve interpolator identifier.\"));\n }\n return curvePropMapping[id];\n};\n\nvar defsPropTypes = {\n defs: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired\n })).isRequired,\n fill: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired,\n match: PropTypes.oneOfType([PropTypes.oneOf(['*']), PropTypes.object, PropTypes.func]).isRequired\n })).isRequired\n};\n\nvar stackOrderPropMapping = {\n ascending: stackOrderAscending,\n descending: stackOrderDescending,\n insideOut: stackOrderInsideOut,\n none: stackOrderNone,\n reverse: stackOrderReverse\n};\nvar stackOrderPropKeys = Object.keys(stackOrderPropMapping);\nvar stackOrderPropType = PropTypes.oneOf(stackOrderPropKeys);\nvar stackOrderFromProp = function stackOrderFromProp(prop) {\n return stackOrderPropMapping[prop];\n};\nvar stackOffsetPropMapping = {\n expand: stackOffsetExpand,\n diverging: stackOffsetDiverging,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle\n};\nvar stackOffsetPropKeys = Object.keys(stackOffsetPropMapping);\nvar stackOffsetPropType = PropTypes.oneOf(stackOffsetPropKeys);\nvar stackOffsetFromProp = function stackOffsetFromProp(prop) {\n return stackOffsetPropMapping[prop];\n};\n\nvar treeMapTilePropMapping = {\n binary: treemapBinary,\n dice: treemapDice,\n slice: treemapSlice,\n sliceDice: treemapSliceDice,\n squarify: treemapSquarify,\n resquarify: treemapResquarify\n};\nvar treeMapTilePropKeys = Object.keys(treeMapTilePropMapping);\nvar treeMapTilePropType = PropTypes.oneOf(treeMapTilePropKeys);\nvar treeMapTileFromProp = function treeMapTileFromProp(prop) {\n return treeMapTilePropMapping[prop];\n};\n\nvar marginPropType = PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n}).isRequired;\nvar motionPropTypes = {\n animate: PropTypes.bool.isRequired,\n motionStiffness: PropTypes.number.isRequired,\n motionDamping: PropTypes.number.isRequired\n};\nvar blendModes = ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\nvar blendModePropType = PropTypes.oneOf(blendModes);\n\nvar useCurveInterpolation = function useCurveInterpolation(interpolation) {\n return useMemo(function () {\n return curveFromProp(interpolation);\n }, [interpolation]);\n};\n\nvar defaultAnimate = true;\nvar defaultMotionStiffness = 90;\nvar defaultMotionDamping = 15;\nvar defaultCategoricalColors = nivoCategoricalColors;\nvar defaultColorRange = scaleOrdinal(schemeSet3);\nvar defaultMargin = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar useDimensions = function useDimensions(width, height) {\n var partialMargin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return useMemo(function () {\n var margin = _objectSpread$1({}, defaultMargin, partialMargin);\n return {\n margin: margin,\n innerWidth: width - margin.left - margin.right,\n innerHeight: height - margin.top - margin.bottom,\n outerWidth: width,\n outerHeight: height\n };\n }, [width, height, partialMargin.top, partialMargin.right, partialMargin.bottom, partialMargin.left]);\n};\n\nvar usePartialTheme = function usePartialTheme(partialTheme) {\n return useMemo(function () {\n return extendDefaultTheme(defaultTheme, partialTheme);\n }, [partialTheme]);\n};\n\nvar getValueFormatter = function getValueFormatter(format$1) {\n if (typeof format$1 === 'function') return format$1;\n if (typeof format$1 === 'string') {\n if (format$1.indexOf('time:') === 0) {\n return timeFormat(format$1.slice('5'));\n }\n return format(format$1);\n }\n return function (v) {\n return v;\n };\n};\nvar useValueFormatter = function useValueFormatter(format) {\n return useMemo(function () {\n return getValueFormatter(format);\n }, [format]);\n};\n\nvar themeContext = createContext();\nvar defaultPartialTheme = {};\nvar ThemeProvider = function ThemeProvider(_ref) {\n var _ref$theme = _ref.theme,\n partialTheme = _ref$theme === void 0 ? defaultPartialTheme : _ref$theme,\n children = _ref.children;\n var theme = usePartialTheme(partialTheme);\n return React.createElement(themeContext.Provider, {\n value: theme\n }, children);\n};\nThemeProvider.propTypes = {\n children: PropTypes.node.isRequired,\n theme: PropTypes.object\n};\nvar useTheme = function useTheme() {\n return useContext(themeContext);\n};\n\nfunction _typeof(obj) { 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); }\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\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 _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, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty$2(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; }\nvar enhancedSpring = function enhancedSpring(value, config) {\n if (typeof value !== 'number') {\n return {\n value: value,\n config: config,\n interpolator: config && config.interpolator ? config.interpolator : interpolate\n };\n }\n return spring(value, config);\n};\nvar SmartMotion =\nfunction (_PureComponent) {\n _inherits(SmartMotion, _PureComponent);\n function SmartMotion() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck(this, SmartMotion);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(SmartMotion)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty$2(_assertThisInitialized(_this), \"oldValues\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"newInters\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"currentStepValues\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"stepValues\", {});\n _defineProperty$2(_assertThisInitialized(_this), \"stepInterpolators\", {});\n return _this;\n }\n _createClass(SmartMotion, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n style = _this$props.style,\n children = _this$props.children,\n rest = _objectWithoutProperties(_this$props, [\"style\", \"children\"]);\n var resolvedStyle = style(enhancedSpring);\n for (var key in resolvedStyle) {\n if (\n resolvedStyle[key] && resolvedStyle[key].interpolator) {\n this.currentStepValues[key] = this.currentStepValues[key] || 0;\n if (\n typeof this.newInters[key] === 'undefined' || resolvedStyle[key].value !== this.newInters[key].value) {\n this.newInters[key] = resolvedStyle[key];\n this.stepValues[key] = this.currentStepValues[key] + 1;\n this.stepInterpolators[key] = this.newInters[key].interpolator(this.oldValues[key], this.newInters[key].value);\n }\n resolvedStyle[key] = spring(this.stepValues[key], this.newInters[key].config);\n }\n }\n return React.createElement(Motion, _extends({}, rest, {\n style: resolvedStyle\n }), function (values) {\n var newValues = {};\n for (var _key2 in values) {\n if (_this2.stepValues[_key2]) {\n _this2.currentStepValues[_key2] = values[_key2];\n var percentage = _this2.currentStepValues[_key2] - _this2.stepValues[_key2] + 1;\n _this2.oldValues[_key2] = newValues[_key2] = _this2.stepInterpolators[_key2](percentage);\n }\n }\n return children(_objectSpread$2({}, values, newValues));\n });\n }\n }]);\n return SmartMotion;\n}(PureComponent);\n_defineProperty$2(SmartMotion, \"propTypes\", {\n children: PropTypes.func.isRequired,\n style: PropTypes.func.isRequired\n});\n\nvar motionConfigContext = createContext();\nvar MotionConfigProvider = function MotionConfigProvider(_ref) {\n var children = _ref.children,\n animate = _ref.animate,\n stiffness = _ref.stiffness,\n damping = _ref.damping;\n var value = useMemo(function () {\n return {\n animate: animate,\n springConfig: {\n stiffness: stiffness,\n damping: damping\n }\n };\n }, [animate, stiffness, damping]);\n return React.createElement(motionConfigContext.Provider, {\n value: value\n }, children);\n};\nMotionConfigProvider.propTypes = {\n children: PropTypes.node.isRequired,\n animate: PropTypes.bool.isRequired,\n stiffness: PropTypes.number.isRequired,\n damping: PropTypes.number.isRequired\n};\nMotionConfigProvider.defaultProps = {\n animate: true,\n stiffness: 90,\n damping: 15\n};\n\nvar useMotionConfig = function useMotionConfig() {\n return useContext(motionConfigContext);\n};\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 containerStyle = {\n position: 'relative'\n};\nvar tooltipStyle = {\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 10\n};\nvar Container = function Container(_ref) {\n var children = _ref.children,\n theme = _ref.theme,\n _ref$isInteractive = _ref.isInteractive,\n isInteractive = _ref$isInteractive === void 0 ? true : _ref$isInteractive,\n animate = _ref.animate,\n motionStiffness = _ref.motionStiffness,\n motionDamping = _ref.motionDamping;\n var containerEl = useRef(null);\n var _useState = useState({\n isTooltipVisible: false,\n tooltipContent: null,\n position: {}\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n var showTooltip = useCallback(function (content, event) {\n if (!containerEl) return;\n var bounds = containerEl.current.getBoundingClientRect();\n var clientX = event.clientX,\n clientY = event.clientY;\n var x = clientX - bounds.left;\n var y = clientY - bounds.top;\n var position = {};\n if (x < bounds.width / 2) position.left = x + 20;else position.right = bounds.width - x + 20;\n if (y < bounds.height / 2) position.top = y - 12;else position.bottom = bounds.height - y - 12;\n setState({\n isTooltipVisible: true,\n tooltipContent: content,\n position: position\n });\n }, [containerEl]);\n var hideTooltip = useCallback(function () {\n setState({\n isTooltipVisible: false,\n tooltipContent: null\n });\n });\n var isTooltipVisible = state.isTooltipVisible,\n tooltipContent = state.tooltipContent,\n position = state.position;\n var content;\n if (isInteractive === true) {\n content = React.createElement(\"div\", {\n style: containerStyle,\n ref: containerEl\n }, children({\n showTooltip: isInteractive ? showTooltip : noop,\n hideTooltip: isInteractive ? hideTooltip : noop\n }), isTooltipVisible && React.createElement(\"div\", {\n style: _objectSpread$3({}, tooltipStyle, position, theme.tooltip)\n }, tooltipContent));\n } else {\n content = children({\n showTooltip: isInteractive ? showTooltip : noop,\n hideTooltip: isInteractive ? hideTooltip : noop\n });\n }\n return React.createElement(themeContext.Provider, {\n value: theme\n }, React.createElement(MotionConfigProvider, {\n animate: animate,\n stiffness: motionStiffness,\n damping: motionDamping\n }, React.createElement(tooltipContext.Provider, {\n value: [showTooltip, hideTooltip]\n }, content)));\n};\nContainer.propTypes = {\n children: PropTypes.func.isRequired,\n isInteractive: PropTypes.bool,\n theme: PropTypes.object.isRequired,\n animate: PropTypes.bool.isRequired,\n motionStiffness: PropTypes.number,\n motionDamping: PropTypes.number\n};\n\nfunction _typeof$1(obj) { 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); }\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$1(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); } }\nfunction _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$1(self, call) { if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$1(self); }\nfunction _getPrototypeOf$1(o) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$1(o); }\nfunction _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits$1(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$1(subClass, superClass); }\nfunction _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); }\nfunction _defineProperty$4(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; }\nvar ResponsiveWrapper =\nfunction (_Component) {\n _inherits$1(ResponsiveWrapper, _Component);\n function ResponsiveWrapper() {\n var _getPrototypeOf2;\n var _this;\n _classCallCheck$1(this, ResponsiveWrapper);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _possibleConstructorReturn$1(this, (_getPrototypeOf2 = _getPrototypeOf$1(ResponsiveWrapper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _defineProperty$4(_assertThisInitialized$1(_this), \"state\", {\n dimensions: {\n width: -1,\n height: -1\n }\n });\n return _this;\n }\n _createClass$1(ResponsiveWrapper, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$state$dimension = this.state.dimensions,\n width = _this$state$dimension.width,\n height = _this$state$dimension.height;\n var shouldRender = width > 0 && height > 0;\n return React.createElement(Measure, {\n bounds: true,\n onResize: function onResize(contentRect) {\n _this2.setState({\n dimensions: contentRect.bounds\n });\n }\n }, function (_ref) {\n var measureRef = _ref.measureRef;\n return React.createElement(\"div\", {\n ref: measureRef,\n style: {\n width: '100%',\n height: '100%'\n }\n }, shouldRender && _this2.props.children({\n width: width,\n height: height\n }));\n });\n }\n }]);\n return ResponsiveWrapper;\n}(Component);\n_defineProperty$4(ResponsiveWrapper, \"propTypes\", {\n children: PropTypes.func.isRequired\n});\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$5(target, key, source[key]); }); } return target; }\nfunction _defineProperty$5(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; }\nvar LinearGradient = function LinearGradient(_ref) {\n var id = _ref.id,\n colors = _ref.colors;\n return React.createElement(\"linearGradient\", {\n id: id,\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 1\n }, colors.map(function (_ref2) {\n var offset = _ref2.offset,\n color = _ref2.color,\n opacity = _ref2.opacity;\n return React.createElement(\"stop\", {\n key: offset,\n offset: \"\".concat(offset, \"%\"),\n stopColor: color,\n stopOpacity: opacity !== undefined ? opacity : 1\n });\n }));\n};\nLinearGradient.propTypes = {\n id: PropTypes.string.isRequired,\n colors: PropTypes.arrayOf(PropTypes.shape({\n offset: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired\n })).isRequired\n};\nvar linearGradientDef = function linearGradientDef(id, colors) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return _objectSpread$4({\n id: id,\n type: 'linearGradient',\n colors: colors\n }, options);\n};\n\nvar gradientTypes = {\n linearGradient: LinearGradient\n};\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$6(target, key, source[key]); }); } return target; }\nfunction _defineProperty$6(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; }\nvar PatternDots = memo(function (_ref) {\n var id = _ref.id,\n background = _ref.background,\n color = _ref.color,\n size = _ref.size,\n padding = _ref.padding,\n stagger = _ref.stagger;\n var fullSize = size + padding;\n var radius = size / 2;\n var halfPadding = padding / 2;\n if (stagger === true) {\n fullSize = size * 2 + padding * 2;\n }\n return React.createElement(\"pattern\", {\n id: id,\n width: fullSize,\n height: fullSize,\n patternUnits: \"userSpaceOnUse\"\n }, React.createElement(\"rect\", {\n width: fullSize,\n height: fullSize,\n fill: background\n }), React.createElement(\"circle\", {\n cx: halfPadding + radius,\n cy: halfPadding + radius,\n r: radius,\n fill: color\n }), stagger && React.createElement(\"circle\", {\n cx: padding * 1.5 + size + radius,\n cy: padding * 1.5 + size + radius,\n r: radius,\n fill: color\n }));\n});\nPatternDots.displayName = 'PatternDots';\nPatternDots.propTypes = {\n id: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n background: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n padding: PropTypes.number.isRequired,\n stagger: PropTypes.bool.isRequired\n};\nPatternDots.defaultProps = {\n color: '#000000',\n background: '#ffffff',\n size: 4,\n padding: 4,\n stagger: false\n};\nvar patternDotsDef = function patternDotsDef(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread$5({\n id: id,\n type: 'patternDots'\n }, options);\n};\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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$1(arr) { if (Array.isArray(arr)) return arr; }\nvar TWO_PI = Math.PI * 2;\nvar degreesToRadians = function degreesToRadians(degrees) {\n return degrees * Math.PI / 180;\n};\nvar radiansToDegrees = function radiansToDegrees(radians) {\n return 180 * radians / Math.PI;\n};\nvar midAngle = function midAngle(arc) {\n return arc.startAngle + (arc.endAngle - arc.startAngle) / 2;\n};\nvar positionFromAngle = function positionFromAngle(angle, distance) {\n return {\n x: Math.cos(angle) * distance,\n y: Math.sin(angle) * distance\n };\n};\nvar absoluteAngleDegrees = function absoluteAngleDegrees(angle) {\n var absAngle = angle % 360;\n if (absAngle < 0) {\n absAngle += 360;\n }\n return absAngle;\n};\nvar absoluteAngleRadians = function absoluteAngleRadians(angle) {\n return angle - TWO_PI * Math.floor((angle + Math.PI) / TWO_PI);\n};\nvar computeArcBoundingBox = function computeArcBoundingBox(ox, oy, radius, startAngle, endAngle) {\n var includeCenter = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var points = [];\n var p0 = positionFromAngle(degreesToRadians(startAngle), radius);\n points.push([p0.x, p0.y]);\n var p1 = positionFromAngle(degreesToRadians(endAngle), radius);\n points.push([p1.x, p1.y]);\n for (var angle = Math.round(Math.min(startAngle, endAngle)); angle <= Math.round(Math.max(startAngle, endAngle)); angle++) {\n if (angle % 90 === 0) {\n var p = positionFromAngle(degreesToRadians(angle), radius);\n points.push([p.x, p.y]);\n }\n }\n points = points.map(function (_ref) {\n var _ref2 = _slicedToArray$1(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n return [ox + x, oy + y];\n });\n if (includeCenter === true) points.push([ox, oy]);\n var xs = points.map(function (_ref3) {\n var _ref4 = _slicedToArray$1(_ref3, 1),\n x = _ref4[0];\n return x;\n });\n var ys = points.map(function (_ref5) {\n var _ref6 = _slicedToArray$1(_ref5, 2),\n y = _ref6[1];\n return y;\n });\n var x0 = Math.min.apply(Math, _toConsumableArray(xs));\n var x1 = Math.max.apply(Math, _toConsumableArray(xs));\n var y0 = Math.min.apply(Math, _toConsumableArray(ys));\n var y1 = Math.max.apply(Math, _toConsumableArray(ys));\n return {\n points: points,\n x: x0,\n y: y0,\n width: x1 - x0,\n height: y1 - y0\n };\n};\n\nvar textPropsByEngine = {\n svg: {\n align: {\n left: 'start',\n center: 'middle',\n right: 'end'\n },\n baseline: {\n top: 'text-before-edge',\n center: 'central',\n bottom: 'alphabetic'\n }\n },\n canvas: {\n align: {\n left: 'left',\n center: 'center',\n right: 'right'\n },\n baseline: {\n top: 'top',\n center: 'middle',\n bottom: 'bottom'\n }\n }\n};\n\nvar getPolarLabelProps = function getPolarLabelProps(radius, angle, rotation) {\n var engine = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'svg';\n var textProps = textPropsByEngine[engine];\n var _positionFromAngle = positionFromAngle(angle - Math.PI / 2, radius),\n x = _positionFromAngle.x,\n y = _positionFromAngle.y;\n var rotate = radiansToDegrees(angle);\n var align = textProps.align.center;\n var baseline = textProps.baseline.bottom;\n if (rotation > 0) {\n align = textProps.align.right;\n baseline = textProps.baseline.center;\n } else if (rotation < 0) {\n align = textProps.align.left;\n baseline = textProps.baseline.center;\n }\n if (rotation !== 0 && rotate > 180) {\n rotate -= 180;\n align = align === textProps.align.right ? textProps.align.left : textProps.align.right;\n }\n rotate += rotation;\n return {\n x: x,\n y: y,\n rotate: rotate,\n align: align,\n baseline: baseline\n };\n};\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$7(target, key, source[key]); }); } return target; }\nfunction _defineProperty$7(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; }\nvar PatternLines = memo(function (_ref) {\n var id = _ref.id,\n _spacing = _ref.spacing,\n _rotation = _ref.rotation,\n background = _ref.background,\n color = _ref.color,\n lineWidth = _ref.lineWidth;\n var rotation = Math.round(_rotation) % 360;\n var spacing = Math.abs(_spacing);\n if (rotation > 180) rotation = rotation - 360;else if (rotation > 90) rotation = rotation - 180;else if (rotation < -180) rotation = rotation + 360;else if (rotation < -90) rotation = rotation + 180;\n var width = spacing;\n var height = spacing;\n var path;\n if (rotation === 0) {\n path = \"\\n M 0 0 L \".concat(width, \" 0\\n M 0 \").concat(height, \" L \").concat(width, \" \").concat(height, \"\\n \");\n } else if (rotation === 90) {\n path = \"\\n M 0 0 L 0 \".concat(height, \"\\n M \").concat(width, \" 0 L \").concat(width, \" \").concat(height, \"\\n \");\n } else {\n width = Math.abs(spacing / Math.sin(degreesToRadians(rotation)));\n height = spacing / Math.sin(degreesToRadians(90 - rotation));\n if (rotation > 0) {\n path = \"\\n M 0 \".concat(-height, \" L \").concat(width * 2, \" \").concat(height, \"\\n M \").concat(-width, \" \").concat(-height, \" L \").concat(width, \" \").concat(height, \"\\n M \").concat(-width, \" 0 L \").concat(width, \" \").concat(height * 2, \"\\n \");\n } else {\n path = \"\\n M \".concat(-width, \" \").concat(height, \" L \").concat(width, \" \").concat(-height, \"\\n M \").concat(-width, \" \").concat(height * 2, \" L \").concat(width * 2, \" \").concat(-height, \"\\n M 0 \").concat(height * 2, \" L \").concat(width * 2, \" 0\\n \");\n }\n }\n return React.createElement(\"pattern\", {\n id: id,\n width: width,\n height: height,\n patternUnits: \"userSpaceOnUse\"\n }, React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: background,\n stroke: \"rgba(255, 0, 0, 0.1)\",\n strokeWidth: 0\n }), React.createElement(\"path\", {\n d: path,\n strokeWidth: lineWidth,\n stroke: color,\n strokeLinecap: \"square\"\n }));\n});\nPatternLines.displayName = 'PatternLines';\nPatternLines.propTypes = {\n id: PropTypes.string.isRequired,\n spacing: PropTypes.number.isRequired,\n rotation: PropTypes.number.isRequired,\n background: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n lineWidth: PropTypes.number.isRequired\n};\nPatternLines.defaultProps = {\n spacing: 5,\n rotation: 0,\n color: '#000000',\n background: '#ffffff',\n lineWidth: 2\n};\nvar patternLinesDef = function patternLinesDef(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread$6({\n id: id,\n type: 'patternLines'\n }, options);\n};\n\nfunction _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$8(target, key, source[key]); }); } return target; }\nfunction _defineProperty$8(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; }\nvar PatternSquares = memo(function (_ref) {\n var id = _ref.id,\n background = _ref.background,\n color = _ref.color,\n size = _ref.size,\n padding = _ref.padding,\n stagger = _ref.stagger;\n var fullSize = size + padding;\n var halfPadding = padding / 2;\n if (stagger === true) {\n fullSize = size * 2 + padding * 2;\n }\n return React.createElement(\"pattern\", {\n id: id,\n width: fullSize,\n height: fullSize,\n patternUnits: \"userSpaceOnUse\"\n }, React.createElement(\"rect\", {\n width: fullSize,\n height: fullSize,\n fill: background\n }), React.createElement(\"rect\", {\n x: halfPadding,\n y: halfPadding,\n width: size,\n height: size,\n fill: color\n }), stagger && React.createElement(\"rect\", {\n x: padding * 1.5 + size,\n y: padding * 1.5 + size,\n width: size,\n height: size,\n fill: color\n }));\n});\nPatternSquares.displayName = 'PatternSquares';\nPatternSquares.propTypes = {\n id: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n background: PropTypes.string.isRequired,\n size: PropTypes.number.isRequired,\n padding: PropTypes.number.isRequired,\n stagger: PropTypes.bool.isRequired\n};\nPatternSquares.defaultProps = {\n color: '#000000',\n background: '#ffffff',\n size: 4,\n padding: 4,\n stagger: false\n};\nvar patternSquaresDef = function patternSquaresDef(id) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread$7({\n id: id,\n type: 'patternSquares'\n }, options);\n};\n\nvar patternTypes = {\n patternDots: PatternDots,\n patternLines: PatternLines,\n patternSquares: PatternSquares\n};\n\nfunction _objectWithoutProperties$1(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(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$1(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 _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$9(target, key, source[key]); }); } return target; }\nfunction _defineProperty$9(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; }\nvar defsMapping = _objectSpread$8({}, gradientTypes, patternTypes);\nvar Defs = function Defs(_ref) {\n var definitions = _ref.defs;\n if (!definitions || definitions.length < 1) return null;\n return React.createElement(\"defs\", null, definitions.map(function (_ref2) {\n var type = _ref2.type,\n def = _objectWithoutProperties$1(_ref2, [\"type\"]);\n if (defsMapping[type]) return React.createElement(defsMapping[type], _objectSpread$8({\n key: def.id\n }, def));\n return null;\n }));\n};\nDefs.propTypes = {\n defs: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(Object.keys(defsMapping)).isRequired,\n id: PropTypes.string.isRequired\n }))\n};\nvar Defs$1 = memo(Defs);\n\nvar SvgWrapper = function SvgWrapper(_ref) {\n var width = _ref.width,\n height = _ref.height,\n margin = _ref.margin,\n defs = _ref.defs,\n children = _ref.children;\n var theme = useTheme();\n return React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\",\n width: width,\n height: height\n }, React.createElement(Defs$1, {\n defs: defs\n }), React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: theme.background\n }), React.createElement(\"g\", {\n transform: \"translate(\".concat(margin.left, \",\").concat(margin.top, \")\")\n }, children));\n};\nSvgWrapper.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n margin: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired\n }).isRequired,\n defs: PropTypes.array,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nvar DotsItemSymbol = function DotsItemSymbol(_ref) {\n var size = _ref.size,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor;\n return React.createElement(\"circle\", {\n r: size / 2,\n fill: color,\n stroke: borderColor,\n strokeWidth: borderWidth,\n style: {\n pointerEvents: 'none'\n }\n });\n};\nDotsItemSymbol.propTypes = {\n size: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired\n};\nvar DotsItemSymbol$1 = memo(DotsItemSymbol);\n\nvar DotsItem = function DotsItem(_ref) {\n var x = _ref.x,\n y = _ref.y,\n symbol = _ref.symbol,\n size = _ref.size,\n datum = _ref.datum,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor,\n label = _ref.label,\n labelTextAnchor = _ref.labelTextAnchor,\n labelYOffset = _ref.labelYOffset,\n theme = _ref.theme;\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\"),\n style: {\n pointerEvents: 'none'\n }\n }, React.createElement(symbol, {\n size: size,\n color: color,\n datum: datum,\n borderWidth: borderWidth,\n borderColor: borderColor\n }), label && React.createElement(\"text\", {\n textAnchor: labelTextAnchor,\n y: labelYOffset,\n style: theme.dots.text\n }, label));\n};\nDotsItem.propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n datum: PropTypes.object.isRequired,\n size: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired,\n symbol: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n labelTextAnchor: PropTypes.oneOf(['start', 'middle', 'end']),\n labelYOffset: PropTypes.number.isRequired,\n theme: PropTypes.shape({\n dots: dotsThemePropType.isRequired\n }).isRequired\n};\nvar DotsItemDefaultProps = {\n symbol: DotsItemSymbol$1,\n labelTextAnchor: 'middle',\n labelYOffset: -12\n};\nDotsItem.defaultProps = DotsItemDefaultProps;\nvar DotsItem$1 = memo(DotsItem);\n\nvar computeLabel = function computeLabel(_ref) {\n var axis = _ref.axis,\n width = _ref.width,\n height = _ref.height,\n position = _ref.position,\n offsetX = _ref.offsetX,\n offsetY = _ref.offsetY,\n orientation = _ref.orientation;\n var x = 0;\n var y = 0;\n var rotation = orientation === 'vertical' ? -90 : 0;\n var textAnchor = 'start';\n if (axis === 'x') {\n switch (position) {\n case 'top-left':\n x = -offsetX;\n y = offsetY;\n textAnchor = 'end';\n break;\n case 'top':\n y = -offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'top-right':\n x = offsetX;\n y = offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'right':\n x = offsetX;\n y = height / 2;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n break;\n case 'bottom-right':\n x = offsetX;\n y = height - offsetY;\n textAnchor = 'start';\n break;\n case 'bottom':\n y = height + offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'bottom-left':\n y = height - offsetY;\n x = -offsetX;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'left':\n x = -offsetX;\n y = height / 2;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'middle';\n }\n break;\n }\n } else {\n switch (position) {\n case 'top-left':\n x = offsetX;\n y = -offsetY;\n textAnchor = 'start';\n break;\n case 'top':\n x = width / 2;\n y = -offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'top-right':\n x = width - offsetX;\n y = -offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'start';\n }\n break;\n case 'right':\n x = width + offsetX;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'middle';\n }\n break;\n case 'bottom-right':\n x = width - offsetX;\n y = offsetY;\n textAnchor = 'end';\n break;\n case 'bottom':\n x = width / 2;\n y = offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'middle';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'bottom-left':\n x = offsetX;\n y = offsetY;\n if (orientation === 'horizontal') {\n textAnchor = 'start';\n } else {\n textAnchor = 'end';\n }\n break;\n case 'left':\n x = -offsetX;\n if (orientation === 'horizontal') {\n textAnchor = 'end';\n } else {\n textAnchor = 'middle';\n }\n break;\n }\n }\n return {\n x: x,\n y: y,\n rotation: rotation,\n textAnchor: textAnchor\n };\n};\nvar CartesianMarkersItem = function CartesianMarkersItem(_ref2) {\n var width = _ref2.width,\n height = _ref2.height,\n axis = _ref2.axis,\n scale = _ref2.scale,\n value = _ref2.value,\n lineStyle = _ref2.lineStyle,\n textStyle = _ref2.textStyle,\n legend = _ref2.legend,\n legendPosition = _ref2.legendPosition,\n legendOffsetX = _ref2.legendOffsetX,\n legendOffsetY = _ref2.legendOffsetY,\n legendOrientation = _ref2.legendOrientation;\n var theme = useTheme();\n var x = 0;\n var x2 = 0;\n var y = 0;\n var y2 = 0;\n if (axis === 'y') {\n y = scale(value);\n x2 = width;\n } else {\n x = scale(value);\n y2 = height;\n }\n var legendNode = null;\n if (legend) {\n var legendProps = computeLabel({\n axis: axis,\n width: width,\n height: height,\n position: legendPosition,\n offsetX: legendOffsetX,\n offsetY: legendOffsetY,\n orientation: legendOrientation\n });\n legendNode = React.createElement(\"text\", {\n transform: \"translate(\".concat(legendProps.x, \", \").concat(legendProps.y, \") rotate(\").concat(legendProps.rotation, \")\"),\n textAnchor: legendProps.textAnchor,\n dominantBaseline: \"central\",\n style: textStyle\n }, legend);\n }\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \", \").concat(y, \")\")\n }, React.createElement(\"line\", {\n x1: 0,\n x2: x2,\n y1: 0,\n y2: y2,\n stroke: theme.markers.lineColor,\n strokeWidth: theme.markers.lineStrokeWidth,\n style: lineStyle\n }), legendNode);\n};\nCartesianMarkersItem.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n scale: PropTypes.func.isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n lineStyle: PropTypes.object,\n textStyle: PropTypes.object,\n legend: PropTypes.string,\n legendPosition: PropTypes.oneOf(['top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left']),\n legendOffsetX: PropTypes.number.isRequired,\n legendOffsetY: PropTypes.number.isRequired,\n legendOrientation: PropTypes.oneOf(['horizontal', 'vertical']).isRequired\n};\nCartesianMarkersItem.defaultProps = {\n legendPosition: 'top-right',\n legendOffsetX: 14,\n legendOffsetY: 14,\n legendOrientation: 'horizontal'\n};\nvar CartesianMarkersItem$1 = memo(CartesianMarkersItem);\n\nfunction _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nvar CartesianMarkers = function CartesianMarkers(_ref) {\n var markers = _ref.markers,\n width = _ref.width,\n height = _ref.height,\n xScale = _ref.xScale,\n yScale = _ref.yScale;\n if (!markers || markers.length === 0) return null;\n return markers.map(function (marker, i) {\n return React.createElement(CartesianMarkersItem$1, _extends$1({\n key: i\n }, marker, {\n width: width,\n height: height,\n scale: marker.axis === 'y' ? yScale : xScale\n }));\n });\n};\nCartesianMarkers.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n xScale: PropTypes.func.isRequired,\n yScale: PropTypes.func.isRequired,\n markers: PropTypes.arrayOf(PropTypes.shape({\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n lineStyle: PropTypes.object,\n textStyle: PropTypes.object\n }))\n};\nvar CartesianMarkers$1 = memo(CartesianMarkers);\n\nfunction _defineProperty$a(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; }\nvar withCurve = (function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$srcKey = _ref.srcKey,\n srcKey = _ref$srcKey === void 0 ? 'curve' : _ref$srcKey,\n _ref$destKey = _ref.destKey,\n destKey = _ref$destKey === void 0 ? 'curveInterpolator' : _ref$destKey;\n return withProps(function (props) {\n return _defineProperty$a({}, destKey, curveFromProp(props[srcKey]));\n });\n});\n\nvar withDimensions = (function () {\n return compose(defaultProps({\n margin: defaultMargin\n }), setPropTypes({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n margin: marginPropType\n }), withPropsOnChange(function (props, nextProps) {\n return props.width !== nextProps.width || props.height !== nextProps.height || !isEqual(props.margin, nextProps.margin);\n }, function (props) {\n var margin = Object.assign({}, defaultMargin, props.margin);\n return {\n margin: margin,\n width: props.width - margin.left - margin.right,\n height: props.height - margin.top - margin.bottom,\n outerWidth: props.width,\n outerHeight: props.height\n };\n }));\n});\n\nvar getLabelGenerator = function getLabelGenerator(_label, labelFormat) {\n var getRawLabel = isFunction(_label) ? _label : function (d) {\n return get(d, _label);\n };\n var formatter;\n if (labelFormat) {\n formatter = isFunction(labelFormat) ? labelFormat : format(labelFormat);\n }\n if (formatter) return function (d) {\n return formatter(getRawLabel(d));\n };\n return getRawLabel;\n};\nvar getAccessorFor = function getAccessorFor(directive) {\n return isFunction(directive) ? directive : function (d) {\n return d[directive];\n };\n};\nvar getAccessorOrValue = function getAccessorOrValue(value) {\n return isFunction(value) ? value : function () {\n return value;\n };\n};\n\nfunction _defineProperty$b(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; }\nvar withHierarchy = (function () {\n var _setPropTypes;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$srcKey = _ref.srcKey,\n srcKey = _ref$srcKey === void 0 ? 'root' : _ref$srcKey,\n _ref$destKey = _ref.destKey,\n destKey = _ref$destKey === void 0 ? 'root' : _ref$destKey,\n _ref$valueKey = _ref.valueKey,\n valueKey = _ref$valueKey === void 0 ? 'value' : _ref$valueKey,\n _ref$valueDefault = _ref.valueDefault,\n valueDefault = _ref$valueDefault === void 0 ? 'value' : _ref$valueDefault;\n return compose(defaultProps(_defineProperty$b({}, valueKey, valueDefault)), setPropTypes((_setPropTypes = {}, _defineProperty$b(_setPropTypes, srcKey, PropTypes.object.isRequired), _defineProperty$b(_setPropTypes, valueKey, PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired), _setPropTypes)), withPropsOnChange([srcKey, valueKey], function (props) {\n return _defineProperty$b({}, destKey, hierarchy(props[srcKey]).sum(getAccessorFor(props[valueKey])));\n }));\n});\n\nvar withMotion = (function () {\n return compose(setPropTypes(motionPropTypes), defaultProps({\n animate: defaultAnimate,\n motionDamping: defaultMotionDamping,\n motionStiffness: defaultMotionStiffness\n }), withPropsOnChange(['motionDamping', 'motionStiffness'], function (_ref) {\n var motionDamping = _ref.motionDamping,\n motionStiffness = _ref.motionStiffness;\n return {\n boundSpring: partialRight(spring, {\n damping: motionDamping,\n stiffness: motionStiffness\n })\n };\n }));\n});\n\nfunction _defineProperty$c(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; }\nvar withTheme = (function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$srcKey = _ref.srcKey,\n srcKey = _ref$srcKey === void 0 ? 'theme' : _ref$srcKey,\n _ref$destKey = _ref.destKey,\n destKey = _ref$destKey === void 0 ? 'theme' : _ref$destKey;\n return compose(setPropTypes(_defineProperty$c({}, srcKey, PropTypes.object)), withPropsOnChange([srcKey], function (props) {\n return _defineProperty$c({}, destKey, extendDefaultTheme(defaultTheme, props[srcKey]));\n }));\n});\n\nfunction _typeof$2(obj) { 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); }\nfunction _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(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$2(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 _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$2(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); } }\nfunction _createClass$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$2(self, call) { if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$2(self); }\nfunction _assertThisInitialized$2(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$2(o) { _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$2(o); }\nfunction _inherits$2(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$2(subClass, superClass); }\nfunction _setPrototypeOf$2(o, p) { _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$2(o, p); }\nvar containerStyle$1 = {\n position: 'relative'\n};\nvar Container$1 = function Container(_ref) {\n var theme = _ref.theme,\n _ref$renderWrapper = _ref.renderWrapper,\n renderWrapper = _ref$renderWrapper === void 0 ? true : _ref$renderWrapper,\n children = _ref.children,\n animate = _ref.animate,\n motionStiffness = _ref.motionStiffness,\n motionDamping = _ref.motionDamping;\n var container = useRef(null);\n var _useTooltipHandlers = useTooltipHandlers(container),\n showTooltipAt = _useTooltipHandlers.showTooltipAt,\n showTooltipFromEvent = _useTooltipHandlers.showTooltipFromEvent,\n hideTooltip = _useTooltipHandlers.hideTooltip,\n isTooltipVisible = _useTooltipHandlers.isTooltipVisible,\n tooltipContent = _useTooltipHandlers.tooltipContent,\n tooltipPosition = _useTooltipHandlers.tooltipPosition,\n tooltipAnchor = _useTooltipHandlers.tooltipAnchor;\n return React.createElement(ThemeProvider, {\n theme: theme\n }, React.createElement(MotionConfigProvider, {\n animate: animate,\n stiffness: motionStiffness,\n damping: motionDamping\n }, React.createElement(tooltipContext.Provider, {\n value: {\n showTooltipAt: showTooltipAt,\n showTooltipFromEvent: showTooltipFromEvent,\n hideTooltip: hideTooltip\n }\n }, renderWrapper === true && React.createElement(\"div\", {\n style: containerStyle$1,\n ref: container\n }, children, isTooltipVisible && React.createElement(TooltipWrapper, {\n position: tooltipPosition,\n anchor: tooltipAnchor\n }, tooltipContent)), renderWrapper !== true && children)));\n};\nContainer$1.propTypes = {\n children: PropTypes.node.isRequired,\n theme: PropTypes.object,\n animate: PropTypes.bool,\n motionStiffness: PropTypes.number,\n motionDamping: PropTypes.number,\n renderWrapper: PropTypes.bool\n};\nvar withContainer = function withContainer(WrappedComponent) {\n return (\n function (_Component) {\n _inherits$2(_class, _Component);\n function _class() {\n _classCallCheck$2(this, _class);\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(_class).apply(this, arguments));\n }\n _createClass$2(_class, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n theme = _this$props.theme,\n renderWrapper = _this$props.renderWrapper,\n childProps = _objectWithoutProperties$2(_this$props, [\"theme\", \"renderWrapper\"]);\n return React.createElement(Container$1, {\n theme: theme,\n renderWrapper: renderWrapper,\n animate: childProps.animate,\n motionStiffness: childProps.motionStiffness,\n motionDamping: childProps.motionDamping\n }, React.createElement(WrappedComponent, childProps));\n }\n }]);\n return _class;\n }(Component)\n );\n};\n\nvar boxAlignments = ['center', 'top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left'];\nvar alignBox = function alignBox(box, container, alignment) {\n var deltaX = container.width - box.width;\n var deltaY = container.height - box.height;\n var x = 0;\n var y = 0;\n if (alignment === 'center') {\n x = deltaX / 2;\n y = deltaY / 2;\n }\n if (alignment === 'top') {\n x = deltaX / 2;\n }\n if (alignment === 'top-right') {\n x = deltaX;\n }\n if (alignment === 'right') {\n x = deltaX;\n y = deltaY / 2;\n }\n if (alignment === 'bottom-right') {\n x = deltaX;\n y = deltaY;\n }\n if (alignment === 'bottom') {\n x = deltaX / 2;\n y = deltaY;\n }\n if (alignment === 'bottom-left') {\n y = deltaY;\n }\n if (alignment === 'left') {\n y = deltaY / 2;\n }\n return [x, y];\n};\n\nvar getDistance = function getDistance(x1, y1, x2, y2) {\n var deltaX = x2 - x1;\n var deltaY = y2 - y1;\n deltaX *= deltaX;\n deltaY *= deltaY;\n return Math.sqrt(deltaX + deltaY);\n};\nvar getAngle = function getAngle(x1, y1, x2, y2) {\n var angle = Math.atan2(y2 - y1, x2 - x1) - Math.PI / 2;\n return angle > 0 ? angle : Math.PI * 2 + angle;\n};\nvar isCursorInRect = function isCursorInRect(x, y, width, height, cursorX, cursorY) {\n return x <= cursorX && cursorX <= x + width && y <= cursorY && cursorY <= y + height;\n};\nvar isCursorInRing = function isCursorInRing(centerX, centerY, radius, innerRadius, cursorX, cursorY) {\n var distance = getDistance(cursorX, cursorY, centerX, centerY);\n return distance < radius && distance > innerRadius;\n};\nvar getHoveredArc = function getHoveredArc(centerX, centerY, radius, innerRadius, arcs, cursorX, cursorY) {\n if (!isCursorInRing(centerX, centerY, radius, innerRadius, cursorX, cursorY)) return null;\n var cursorAngle = getAngle(cursorX, cursorY, centerX, centerY);\n return arcs.find(function (_ref) {\n var startAngle = _ref.startAngle,\n endAngle = _ref.endAngle;\n return cursorAngle >= startAngle && cursorAngle < endAngle;\n });\n};\n\nvar getRelativeCursor = function getRelativeCursor(el, event) {\n var clientX = event.clientX,\n clientY = event.clientY;\n var bounds = el.getBoundingClientRect();\n return [clientX - bounds.left, clientY - bounds.top];\n};\n\nfunction _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$d(target, key, source[key]); }); } return target; }\nfunction _defineProperty$d(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 _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _nonIterableSpread$1(); }\nfunction _nonIterableSpread$1() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray$1(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nvar gradientKeys = Object.keys(gradientTypes);\nvar patternKeys = Object.keys(patternTypes);\nvar isMatchingDef = function isMatchingDef(predicate, node, dataKey) {\n if (predicate === '*') {\n return true;\n } else if (isFunction(predicate)) {\n return predicate(node);\n } else if (isPlainObject(predicate)) {\n var data = dataKey ? get(node, dataKey) : node;\n return isEqual(pick(data, Object.keys(predicate)), predicate);\n }\n return false;\n};\nvar bindDefs = function bindDefs(defs, nodes, rules) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n dataKey = _ref.dataKey,\n _ref$colorKey = _ref.colorKey,\n colorKey = _ref$colorKey === void 0 ? 'color' : _ref$colorKey,\n _ref$targetKey = _ref.targetKey,\n targetKey = _ref$targetKey === void 0 ? 'fill' : _ref$targetKey;\n var boundDefs = [];\n var generatedIds = {};\n if (defs.length && nodes.length) {\n boundDefs = _toConsumableArray$1(defs);\n nodes.forEach(function (node) {\n var _loop = function _loop(i) {\n var _rules$i = rules[i],\n id = _rules$i.id,\n match = _rules$i.match;\n if (isMatchingDef(match, node, dataKey)) {\n var def = defs.find(function (_ref2) {\n var defId = _ref2.id;\n return defId === id;\n });\n if (def) {\n if (patternKeys.includes(def.type)) {\n if (def.background === 'inherit' || def.color === 'inherit') {\n var nodeColor = get(node, colorKey);\n var background = def.background;\n var color = def.color;\n var inheritedId = id;\n if (def.background === 'inherit') {\n inheritedId = \"\".concat(inheritedId, \".bg.\").concat(nodeColor);\n background = nodeColor;\n }\n if (def.color === 'inherit') {\n inheritedId = \"\".concat(inheritedId, \".fg.\").concat(nodeColor);\n color = nodeColor;\n }\n set(node, targetKey, \"url(#\".concat(inheritedId, \")\"));\n if (!generatedIds[inheritedId]) {\n boundDefs.push(_objectSpread$9({}, def, {\n id: inheritedId,\n background: background,\n color: color\n }));\n generatedIds[inheritedId] = 1;\n }\n } else {\n set(node, targetKey, \"url(#\".concat(id, \")\"));\n }\n } else if (gradientKeys.includes(def.type)) {\n var allColors = def.colors.map(function (_ref3) {\n var color = _ref3.color;\n return color;\n });\n if (allColors.includes('inherit')) {\n var _nodeColor = get(node, colorKey);\n var _inheritedId = id;\n var inheritedDef = _objectSpread$9({}, def, {\n colors: def.colors.map(function (colorStop, i) {\n if (colorStop.color !== 'inherit') return colorStop;\n _inheritedId = \"\".concat(_inheritedId, \".\").concat(i, \".\").concat(_nodeColor);\n return _objectSpread$9({}, colorStop, {\n color: colorStop.color === 'inherit' ? _nodeColor : colorStop.color\n });\n })\n });\n inheritedDef.id = _inheritedId;\n set(node, targetKey, \"url(#\".concat(_inheritedId, \")\"));\n if (!generatedIds[_inheritedId]) {\n boundDefs.push(inheritedDef);\n generatedIds[_inheritedId] = 1;\n }\n } else {\n set(node, targetKey, \"url(#\".concat(id, \")\"));\n }\n }\n }\n return \"break\";\n }\n };\n for (var i = 0; i < rules.length; i++) {\n var _ret = _loop(i);\n if (_ret === \"break\") break;\n }\n });\n }\n return boundDefs;\n};\n\nexport { CartesianMarkers$1 as CartesianMarkers, CartesianMarkersItem$1 as CartesianMarkersItem, Container, Defs$1 as Defs, DotsItem$1 as DotsItem, DotsItemDefaultProps, LinearGradient, MotionConfigProvider, PatternDots, PatternLines, PatternSquares, ResponsiveWrapper, SmartMotion, SvgWrapper, TWO_PI, ThemeProvider, absoluteAngleDegrees, absoluteAngleRadians, alignBox, annotationsPropType, areaCurvePropKeys, areaCurvePropType, axisThemePropType, bindDefs, blendModePropType, blendModes, boxAlignments, closedCurvePropKeys, closedCurvePropType, colorInterpolatorIds, colorInterpolators, colorSchemeIds, computeArcBoundingBox, crosshairPropType, curveFromProp, curvePropKeys, curvePropMapping, curvePropType, defaultAnimate, defaultCategoricalColors, defaultColorRange, defaultMargin, defaultMotionDamping, defaultMotionStiffness, defaultTheme, defsPropTypes, degreesToRadians, dotsThemePropType, extendDefaultTheme, getAccessorFor, getAccessorOrValue, getAngle, getColorScale, getDistance, getHoveredArc, getLabelGenerator, getPolarLabelProps, getRelativeCursor, getValueFormatter, gradientTypes, gridThemePropType, guessQuantizeColorScale, isCursorInRect, isCursorInRing, isMatchingDef, labelsThemePropType, legendsThemePropType, lineCurvePropKeys, lineCurvePropType, linearGradientDef, marginPropType, markersThemePropType, midAngle, motionConfigContext, motionPropTypes, nivoCategoricalColors, noop, patternDotsDef, patternLinesDef, patternSquaresDef, patternTypes, positionFromAngle, quantizeColorScalePropType, quantizeColorScales, quantizeColorScalesKeys, radiansToDegrees, stackOffsetFromProp, stackOffsetPropKeys, stackOffsetPropMapping, stackOffsetPropType, stackOrderFromProp, stackOrderPropKeys, stackOrderPropMapping, stackOrderPropType, textPropsByEngine, themeContext, themePropType, treeMapTileFromProp, treeMapTilePropKeys, treeMapTilePropMapping, treeMapTilePropType, useCurveInterpolation, useDimensions, useMotionConfig, usePartialTheme, useTheme, useValueFormatter, withContainer, withCurve, withDimensions, withHierarchy, withMotion, withTheme };\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import React, { PureComponent, useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport isFunction from 'lodash/isFunction';\nimport { useTheme } from '@nivo/core';\nimport isNumber from 'lodash/isNumber';\nimport isPlainObject from 'lodash/isPlainObject';\n\nvar DIRECTION_ROW = 'row';\nvar DIRECTION_COLUMN = 'column';\nvar ANCHOR_TOP = 'top';\nvar ANCHOR_TOP_RIGHT = 'top-right';\nvar ANCHOR_RIGHT = 'right';\nvar ANCHOR_BOTTOM_RIGHT = 'bottom-right';\nvar ANCHOR_BOTTOM = 'bottom';\nvar ANCHOR_BOTTOM_LEFT = 'bottom-left';\nvar ANCHOR_LEFT = 'left';\nvar ANCHOR_TOP_LEFT = 'top-left';\nvar ANCHOR_CENTER = 'center';\nvar DIRECTION_LEFT_TO_RIGHT = 'left-to-right';\nvar DIRECTION_RIGHT_TO_LEFT = 'right-to-left';\nvar DIRECTION_TOP_TO_BOTTOM = 'top-to-bottom';\nvar DIRECTION_BOTTOM_TO_TOP = 'bottom-to-top';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar legendEffectPropType = PropTypes.shape({\n on: PropTypes.oneOfType([PropTypes.oneOf(['hover'])]).isRequired,\n style: PropTypes.shape({\n itemTextColor: PropTypes.string,\n itemBackground: PropTypes.string,\n itemOpacity: PropTypes.number,\n symbolSize: PropTypes.number,\n symbolBorderWidth: PropTypes.number,\n symbolBorderColor: PropTypes.string\n }).isRequired\n});\nvar symbolPropTypes = {\n symbolShape: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n symbolSize: PropTypes.number,\n symbolSpacing: PropTypes.number,\n symbolBorderWidth: PropTypes.number,\n symbolBorderColor: PropTypes.string\n};\nvar interactivityPropTypes = {\n onClick: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func\n};\nvar datumPropType = PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n color: PropTypes.string.isRequired,\n fill: PropTypes.string\n});\nvar LegendPropShape = _objectSpread({\n data: PropTypes.arrayOf(datumPropType),\n anchor: PropTypes.oneOf([ANCHOR_TOP, ANCHOR_TOP_RIGHT, ANCHOR_RIGHT, ANCHOR_BOTTOM_RIGHT, ANCHOR_BOTTOM, ANCHOR_BOTTOM_LEFT, ANCHOR_LEFT, ANCHOR_TOP_LEFT, ANCHOR_CENTER]).isRequired,\n translateX: PropTypes.number,\n translateY: PropTypes.number,\n direction: PropTypes.oneOf([DIRECTION_ROW, DIRECTION_COLUMN]).isRequired,\n itemsSpacing: PropTypes.number,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n itemDirection: PropTypes.oneOf([DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_TOP_TO_BOTTOM, DIRECTION_BOTTOM_TO_TOP]),\n itemTextColor: PropTypes.string,\n itemBackground: PropTypes.string,\n itemOpacity: PropTypes.number\n}, symbolPropTypes, interactivityPropTypes, {\n effects: PropTypes.arrayOf(legendEffectPropType)\n});\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar zeroPadding = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar computeDimensions = function computeDimensions(_ref) {\n var direction = _ref.direction,\n itemsSpacing = _ref.itemsSpacing,\n _padding = _ref.padding,\n itemCount = _ref.itemCount,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight;\n var padding;\n if (isNumber(_padding)) {\n padding = {\n top: _padding,\n right: _padding,\n bottom: _padding,\n left: _padding\n };\n } else if (isPlainObject(_padding)) {\n padding = _objectSpread$1({}, zeroPadding, _padding);\n } else {\n throw new TypeError(\"Invalid property padding, must be one of: number, object\");\n }\n var horizontalPadding = padding.left + padding.right;\n var verticalPadding = padding.top + padding.bottom;\n var width = itemWidth + horizontalPadding;\n var height = itemHeight + verticalPadding;\n var spacing = (itemCount - 1) * itemsSpacing;\n if (direction === DIRECTION_ROW) {\n width = itemWidth * itemCount + spacing + horizontalPadding;\n } else if (direction === DIRECTION_COLUMN) {\n height = itemHeight * itemCount + spacing + verticalPadding;\n }\n return {\n width: width,\n height: height,\n padding: padding\n };\n};\nvar computePositionFromAnchor = function computePositionFromAnchor(_ref2) {\n var anchor = _ref2.anchor,\n translateX = _ref2.translateX,\n translateY = _ref2.translateY,\n containerWidth = _ref2.containerWidth,\n containerHeight = _ref2.containerHeight,\n width = _ref2.width,\n height = _ref2.height;\n var x = translateX;\n var y = translateY;\n switch (anchor) {\n case ANCHOR_TOP:\n x += (containerWidth - width) / 2;\n break;\n case ANCHOR_TOP_RIGHT:\n x += containerWidth - width;\n break;\n case ANCHOR_RIGHT:\n x += containerWidth - width;\n y += (containerHeight - height) / 2;\n break;\n case ANCHOR_BOTTOM_RIGHT:\n x += containerWidth - width;\n y += containerHeight - height;\n break;\n case ANCHOR_BOTTOM:\n x += (containerWidth - width) / 2;\n y += containerHeight - height;\n break;\n case ANCHOR_BOTTOM_LEFT:\n y += containerHeight - height;\n break;\n case ANCHOR_LEFT:\n y += (containerHeight - height) / 2;\n break;\n case ANCHOR_CENTER:\n x += (containerWidth - width) / 2;\n y += (containerHeight - height) / 2;\n break;\n }\n return {\n x: x,\n y: y\n };\n};\nvar computeItemLayout = function computeItemLayout(_ref3) {\n var direction = _ref3.direction,\n justify = _ref3.justify,\n symbolSize = _ref3.symbolSize,\n symbolSpacing = _ref3.symbolSpacing,\n width = _ref3.width,\n height = _ref3.height;\n var symbolX;\n var symbolY;\n var labelX;\n var labelY;\n var labelAnchor;\n var labelAlignment;\n switch (direction) {\n case DIRECTION_LEFT_TO_RIGHT:\n symbolX = 0;\n symbolY = (height - symbolSize) / 2;\n labelY = height / 2;\n labelAlignment = 'central';\n if (justify === true) {\n labelX = width;\n labelAnchor = 'end';\n } else {\n labelX = symbolSize + symbolSpacing;\n labelAnchor = 'start';\n }\n break;\n case DIRECTION_RIGHT_TO_LEFT:\n symbolX = width - symbolSize;\n symbolY = (height - symbolSize) / 2;\n labelY = height / 2;\n labelAlignment = 'central';\n if (justify === true) {\n labelX = 0;\n labelAnchor = 'start';\n } else {\n labelX = width - symbolSize - symbolSpacing;\n labelAnchor = 'end';\n }\n break;\n case DIRECTION_TOP_TO_BOTTOM:\n symbolX = (width - symbolSize) / 2;\n symbolY = 0;\n labelX = width / 2;\n labelAnchor = 'middle';\n if (justify === true) {\n labelY = height;\n labelAlignment = 'alphabetic';\n } else {\n labelY = symbolSize + symbolSpacing;\n labelAlignment = 'text-before-edge';\n }\n break;\n case DIRECTION_BOTTOM_TO_TOP:\n symbolX = (width - symbolSize) / 2;\n symbolY = height - symbolSize;\n labelX = width / 2;\n labelAnchor = 'middle';\n if (justify === true) {\n labelY = 0;\n labelAlignment = 'text-before-edge';\n } else {\n labelY = height - symbolSize - symbolSpacing;\n labelAlignment = 'alphabetic';\n }\n break;\n }\n return {\n symbolX: symbolX,\n symbolY: symbolY,\n labelX: labelX,\n labelY: labelY,\n labelAnchor: labelAnchor,\n labelAlignment: labelAlignment\n };\n};\n\nvar symbolPropTypes$1 = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired,\n fill: PropTypes.string.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.string.isRequired\n};\nvar symbolDefaultProps = {\n borderWidth: 0,\n borderColor: 'transparent'\n};\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _typeof(obj) { 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); }\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, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty$2(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; }\nvar SymbolCircle =\nfunction (_PureComponent) {\n _inherits(SymbolCircle, _PureComponent);\n function SymbolCircle() {\n _classCallCheck(this, SymbolCircle);\n return _possibleConstructorReturn(this, _getPrototypeOf(SymbolCircle).apply(this, arguments));\n }\n _createClass(SymbolCircle, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"circle\", {\n r: size / 2,\n cx: x + size / 2,\n cy: y + size / 2,\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: {\n pointerEvents: 'none'\n }\n });\n }\n }]);\n return SymbolCircle;\n}(PureComponent);\n_defineProperty$2(SymbolCircle, \"propTypes\", _objectSpread$2({}, symbolPropTypes$1));\n_defineProperty$2(SymbolCircle, \"defaultProps\", _objectSpread$2({}, symbolDefaultProps));\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _typeof$1(obj) { 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); }\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$1(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); } }\nfunction _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$1(self, call) { if (call && (_typeof$1(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$1(self); }\nfunction _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$1(o) { _getPrototypeOf$1 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$1(o); }\nfunction _inherits$1(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$1(subClass, superClass); }\nfunction _setPrototypeOf$1(o, p) { _setPrototypeOf$1 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$1(o, p); }\nfunction _defineProperty$3(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; }\nvar SymbolDiamond =\nfunction (_PureComponent) {\n _inherits$1(SymbolDiamond, _PureComponent);\n function SymbolDiamond() {\n _classCallCheck$1(this, SymbolDiamond);\n return _possibleConstructorReturn$1(this, _getPrototypeOf$1(SymbolDiamond).apply(this, arguments));\n }\n _createClass$1(SymbolDiamond, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, React.createElement(\"path\", {\n d: \"\\n M\".concat(size / 2, \" 0\\n L\").concat(size * 0.8, \" \").concat(size / 2, \"\\n L\").concat(size / 2, \" \").concat(size, \"\\n L\").concat(size * 0.2, \" \").concat(size / 2, \"\\n L\").concat(size / 2, \" 0\\n \"),\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: {\n pointerEvents: 'none'\n }\n }));\n }\n }]);\n return SymbolDiamond;\n}(PureComponent);\n_defineProperty$3(SymbolDiamond, \"propTypes\", _objectSpread$3({}, symbolPropTypes$1));\n_defineProperty$3(SymbolDiamond, \"defaultProps\", _objectSpread$3({}, symbolDefaultProps));\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$4(target, key, source[key]); }); } return target; }\nfunction _typeof$2(obj) { 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); }\nfunction _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$2(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); } }\nfunction _createClass$2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$2(Constructor.prototype, protoProps); if (staticProps) _defineProperties$2(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$2(self, call) { if (call && (_typeof$2(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$2(self); }\nfunction _assertThisInitialized$2(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$2(o) { _getPrototypeOf$2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$2(o); }\nfunction _inherits$2(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$2(subClass, superClass); }\nfunction _setPrototypeOf$2(o, p) { _setPrototypeOf$2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$2(o, p); }\nfunction _defineProperty$4(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; }\nvar SymbolSquare =\nfunction (_PureComponent) {\n _inherits$2(SymbolSquare, _PureComponent);\n function SymbolSquare() {\n _classCallCheck$2(this, SymbolSquare);\n return _possibleConstructorReturn$2(this, _getPrototypeOf$2(SymbolSquare).apply(this, arguments));\n }\n _createClass$2(SymbolSquare, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"rect\", {\n x: x,\n y: y,\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n width: size,\n height: size,\n style: {\n pointerEvents: 'none'\n }\n });\n }\n }]);\n return SymbolSquare;\n}(PureComponent);\n_defineProperty$4(SymbolSquare, \"propTypes\", _objectSpread$4({}, symbolPropTypes$1));\n_defineProperty$4(SymbolSquare, \"defaultProps\", _objectSpread$4({}, symbolDefaultProps));\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$5(target, key, source[key]); }); } return target; }\nfunction _typeof$3(obj) { 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); }\nfunction _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties$3(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); } }\nfunction _createClass$3(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$3(Constructor.prototype, protoProps); if (staticProps) _defineProperties$3(Constructor, staticProps); return Constructor; }\nfunction _possibleConstructorReturn$3(self, call) { if (call && (_typeof$3(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized$3(self); }\nfunction _assertThisInitialized$3(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _getPrototypeOf$3(o) { _getPrototypeOf$3 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf$3(o); }\nfunction _inherits$3(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf$3(subClass, superClass); }\nfunction _setPrototypeOf$3(o, p) { _setPrototypeOf$3 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf$3(o, p); }\nfunction _defineProperty$5(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; }\nvar SymbolTriangle =\nfunction (_PureComponent) {\n _inherits$3(SymbolTriangle, _PureComponent);\n function SymbolTriangle() {\n _classCallCheck$3(this, SymbolTriangle);\n return _possibleConstructorReturn$3(this, _getPrototypeOf$3(SymbolTriangle).apply(this, arguments));\n }\n _createClass$3(SymbolTriangle, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n size = _this$props.size,\n fill = _this$props.fill,\n borderWidth = _this$props.borderWidth,\n borderColor = _this$props.borderColor;\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, React.createElement(\"path\", {\n d: \"\\n M\".concat(size / 2, \" 0\\n L\").concat(size, \" \").concat(size, \"\\n L0 \").concat(size, \"\\n L\").concat(size / 2, \" 0\\n \"),\n fill: fill,\n strokeWidth: borderWidth,\n stroke: borderColor,\n style: {\n pointerEvents: 'none'\n }\n }));\n }\n }]);\n return SymbolTriangle;\n}(PureComponent);\n_defineProperty$5(SymbolTriangle, \"propTypes\", _objectSpread$5({}, symbolPropTypes$1));\n_defineProperty$5(SymbolTriangle, \"defaultProps\", _objectSpread$5({}, symbolDefaultProps));\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$6(target, key, source[key]); }); } return target; }\nfunction _defineProperty$6(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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 symbolByShape = {\n circle: SymbolCircle,\n diamond: SymbolDiamond,\n square: SymbolSquare,\n triangle: SymbolTriangle\n};\nvar LegendSvgItem = function LegendSvgItem(_ref) {\n var x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n data = _ref.data,\n direction = _ref.direction,\n justify = _ref.justify,\n textColor = _ref.textColor,\n background = _ref.background,\n opacity = _ref.opacity,\n symbolShape = _ref.symbolShape,\n symbolSize = _ref.symbolSize,\n symbolSpacing = _ref.symbolSpacing,\n symbolBorderWidth = _ref.symbolBorderWidth,\n symbolBorderColor = _ref.symbolBorderColor,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n effects = _ref.effects;\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n style = _useState2[0],\n setStyle = _useState2[1];\n var theme = useTheme();\n var handleClick = useCallback(function (event) {\n return onClick && onClick(data, event);\n }, [onClick, data]);\n var handleMouseEnter = useCallback(function (event) {\n if (effects.length > 0) {\n var applyEffects = effects.filter(function (_ref2) {\n var on = _ref2.on;\n return on === 'hover';\n });\n var _style = applyEffects.reduce(function (acc, effect) {\n return _objectSpread$6({}, acc, effect.style);\n }, {});\n setStyle(_style);\n }\n if (onMouseEnter === undefined) return;\n onMouseEnter(data, event);\n }, [onMouseEnter, data, effects]);\n var handleMouseLeave = useCallback(function () {\n if (effects.length > 0) {\n var applyEffects = effects.filter(function (_ref3) {\n var on = _ref3.on;\n return on !== 'hover';\n });\n var _style2 = applyEffects.reduce(function (acc, effect) {\n return _objectSpread$6({}, acc, effect.style);\n }, {});\n setStyle(_style2);\n }\n if (onMouseLeave === undefined) return;\n onMouseLeave(data, event);\n }, [onMouseLeave, data, effects]);\n var _computeItemLayout = computeItemLayout({\n direction: direction,\n justify: justify,\n symbolSize: style.symbolSize || symbolSize,\n symbolSpacing: symbolSpacing,\n width: width,\n height: height\n }),\n symbolX = _computeItemLayout.symbolX,\n symbolY = _computeItemLayout.symbolY,\n labelX = _computeItemLayout.labelX,\n labelY = _computeItemLayout.labelY,\n labelAnchor = _computeItemLayout.labelAnchor,\n labelAlignment = _computeItemLayout.labelAlignment;\n var isInteractive = [onClick, onMouseEnter, onMouseLeave].some(function (handler) {\n return handler !== undefined;\n });\n var _Symbol;\n if (isFunction(symbolShape)) {\n _Symbol = symbolShape;\n } else {\n _Symbol = symbolByShape[symbolShape];\n }\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\"),\n style: {\n opacity: style.itemOpacity !== undefined ? style.itemOpacity : opacity\n }\n }, React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: style.itemBackground || background,\n style: {\n cursor: isInteractive ? 'pointer' : 'auto'\n },\n onClick: handleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave\n }), React.createElement(_Symbol, {\n id: data.id,\n x: symbolX,\n y: symbolY,\n size: style.symbolSize || symbolSize,\n fill: data.fill || data.color,\n borderWidth: style.symbolBorderWidth !== undefined ? style.symbolBorderWidth : symbolBorderWidth,\n borderColor: style.symbolBorderColor || symbolBorderColor\n }), React.createElement(\"text\", {\n textAnchor: labelAnchor,\n style: _objectSpread$6({}, theme.legends.text, {\n fill: style.itemTextColor || textColor,\n dominantBaseline: labelAlignment,\n pointerEvents: 'none',\n userSelect: 'none'\n }),\n x: labelX,\n y: labelY\n }, data.label));\n};\nLegendSvgItem.displayName = 'LegendSvgItem';\nLegendSvgItem.propTypes = _objectSpread$6({\n data: datumPropType.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n textColor: PropTypes.string,\n background: PropTypes.string,\n opacity: PropTypes.number,\n direction: PropTypes.oneOf(['left-to-right', 'right-to-left', 'top-to-bottom', 'bottom-to-top']).isRequired,\n justify: PropTypes.bool.isRequired\n}, symbolPropTypes, interactivityPropTypes);\nLegendSvgItem.defaultProps = {\n direction: 'left-to-right',\n justify: false,\n textColor: 'black',\n background: 'transparent',\n opacity: 1,\n symbolShape: 'square',\n symbolSize: 16,\n symbolSpacing: 8,\n symbolBorderWidth: 0,\n symbolBorderColor: 'transparent',\n effects: []\n};\n\nfunction _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$7(target, key, source[key]); }); } return target; }\nfunction _defineProperty$7(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; }\nvar LegendSvg = function LegendSvg(_ref) {\n var data = _ref.data,\n x = _ref.x,\n y = _ref.y,\n direction = _ref.direction,\n _padding = _ref.padding,\n justify = _ref.justify,\n effects = _ref.effects,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight,\n itemDirection = _ref.itemDirection,\n itemsSpacing = _ref.itemsSpacing,\n itemTextColor = _ref.itemTextColor,\n itemBackground = _ref.itemBackground,\n itemOpacity = _ref.itemOpacity,\n symbolShape = _ref.symbolShape,\n symbolSize = _ref.symbolSize,\n symbolSpacing = _ref.symbolSpacing,\n symbolBorderWidth = _ref.symbolBorderWidth,\n symbolBorderColor = _ref.symbolBorderColor,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave;\n var _computeDimensions = computeDimensions({\n itemCount: data.length,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n itemsSpacing: itemsSpacing,\n direction: direction,\n padding: _padding\n }),\n padding = _computeDimensions.padding;\n var xStep = 0;\n var yStep = 0;\n if (direction === 'row') {\n xStep = itemWidth + itemsSpacing;\n } else if (direction === 'column') {\n yStep = itemHeight + itemsSpacing;\n }\n return React.createElement(\"g\", {\n transform: \"translate(\".concat(x, \",\").concat(y, \")\")\n }, data.map(function (data, i) {\n return React.createElement(LegendSvgItem, {\n key: i,\n data: data,\n x: i * xStep + padding.left,\n y: i * yStep + padding.top,\n width: itemWidth,\n height: itemHeight,\n direction: itemDirection,\n justify: justify,\n effects: effects,\n textColor: itemTextColor,\n background: itemBackground,\n opacity: itemOpacity,\n symbolShape: symbolShape,\n symbolSize: symbolSize,\n symbolSpacing: symbolSpacing,\n symbolBorderWidth: symbolBorderWidth,\n symbolBorderColor: symbolBorderColor,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n });\n }));\n};\nLegendSvg.propTypes = _objectSpread$7({\n data: PropTypes.arrayOf(datumPropType).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n direction: PropTypes.oneOf(['row', 'column']).isRequired,\n padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n })]).isRequired,\n justify: PropTypes.bool.isRequired,\n itemsSpacing: PropTypes.number.isRequired,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n itemDirection: PropTypes.oneOf([DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_TOP_TO_BOTTOM, DIRECTION_BOTTOM_TO_TOP]).isRequired,\n itemTextColor: PropTypes.string.isRequired,\n itemBackground: PropTypes.string.isRequired,\n itemOpacity: PropTypes.number.isRequired\n}, symbolPropTypes, interactivityPropTypes);\nLegendSvg.defaultProps = {\n padding: 0,\n justify: false,\n itemsSpacing: 0,\n itemDirection: 'left-to-right',\n itemTextColor: 'black',\n itemBackground: 'transparent',\n itemOpacity: 1\n};\n\nfunction _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$8(target, key, source[key]); }); } return target; }\nfunction _defineProperty$8(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; }\nvar BoxLegendSvg = function BoxLegendSvg(_ref) {\n var data = _ref.data,\n containerWidth = _ref.containerWidth,\n containerHeight = _ref.containerHeight,\n translateX = _ref.translateX,\n translateY = _ref.translateY,\n anchor = _ref.anchor,\n direction = _ref.direction,\n padding = _ref.padding,\n justify = _ref.justify,\n itemsSpacing = _ref.itemsSpacing,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight,\n itemDirection = _ref.itemDirection,\n itemTextColor = _ref.itemTextColor,\n itemBackground = _ref.itemBackground,\n itemOpacity = _ref.itemOpacity,\n symbolShape = _ref.symbolShape,\n symbolSize = _ref.symbolSize,\n symbolSpacing = _ref.symbolSpacing,\n symbolBorderWidth = _ref.symbolBorderWidth,\n symbolBorderColor = _ref.symbolBorderColor,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n onMouseLeave = _ref.onMouseLeave,\n effects = _ref.effects;\n var _computeDimensions = computeDimensions({\n itemCount: data.length,\n itemsSpacing: itemsSpacing,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n direction: direction,\n padding: padding\n }),\n width = _computeDimensions.width,\n height = _computeDimensions.height;\n var _computePositionFromA = computePositionFromAnchor({\n anchor: anchor,\n translateX: translateX,\n translateY: translateY,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n width: width,\n height: height\n }),\n x = _computePositionFromA.x,\n y = _computePositionFromA.y;\n return React.createElement(LegendSvg, {\n data: data,\n x: x,\n y: y,\n direction: direction,\n padding: padding,\n justify: justify,\n effects: effects,\n itemsSpacing: itemsSpacing,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n itemDirection: itemDirection,\n itemTextColor: itemTextColor,\n itemBackground: itemBackground,\n itemOpacity: itemOpacity,\n symbolShape: symbolShape,\n symbolSize: symbolSize,\n symbolSpacing: symbolSpacing,\n symbolBorderWidth: symbolBorderWidth,\n symbolBorderColor: symbolBorderColor,\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n });\n};\nBoxLegendSvg.propTypes = _objectSpread$8({\n data: PropTypes.arrayOf(datumPropType).isRequired,\n containerWidth: PropTypes.number.isRequired,\n containerHeight: PropTypes.number.isRequired,\n translateX: PropTypes.number.isRequired,\n translateY: PropTypes.number.isRequired,\n anchor: PropTypes.oneOf([ANCHOR_TOP, ANCHOR_TOP_RIGHT, ANCHOR_RIGHT, ANCHOR_BOTTOM_RIGHT, ANCHOR_BOTTOM, ANCHOR_BOTTOM_LEFT, ANCHOR_LEFT, ANCHOR_TOP_LEFT, ANCHOR_CENTER]).isRequired,\n direction: PropTypes.oneOf([DIRECTION_ROW, DIRECTION_COLUMN]).isRequired,\n padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n })]).isRequired,\n justify: PropTypes.bool,\n itemWidth: PropTypes.number.isRequired,\n itemHeight: PropTypes.number.isRequired,\n itemDirection: PropTypes.oneOf([DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_TOP_TO_BOTTOM, DIRECTION_BOTTOM_TO_TOP]),\n itemsSpacing: PropTypes.number.isRequired,\n itemTextColor: PropTypes.string,\n itemBackground: PropTypes.string,\n itemOpacity: PropTypes.number\n}, symbolPropTypes, interactivityPropTypes);\nBoxLegendSvg.defaultProps = {\n translateX: 0,\n translateY: 0,\n itemsSpacing: LegendSvg.defaultProps.itemsSpacing,\n padding: LegendSvg.defaultProps.padding\n};\n\nvar textPropsMapping = {\n align: {\n start: 'left',\n middle: 'center',\n end: 'right'\n },\n baseline: {\n hanging: 'top',\n middle: 'middle',\n central: 'middle',\n baseline: 'bottom'\n }\n};\nvar renderLegendToCanvas = function renderLegendToCanvas(ctx, _ref) {\n var data = _ref.data,\n containerWidth = _ref.containerWidth,\n containerHeight = _ref.containerHeight,\n _ref$translateX = _ref.translateX,\n translateX = _ref$translateX === void 0 ? BoxLegendSvg.defaultProps.translateX : _ref$translateX,\n _ref$translateY = _ref.translateY,\n translateY = _ref$translateY === void 0 ? BoxLegendSvg.defaultProps.translateY : _ref$translateY,\n anchor = _ref.anchor,\n direction = _ref.direction,\n _ref$padding = _ref.padding,\n _padding = _ref$padding === void 0 ? LegendSvg.defaultProps.padding : _ref$padding,\n _ref$justify = _ref.justify,\n justify = _ref$justify === void 0 ? LegendSvgItem.defaultProps.justify : _ref$justify,\n _ref$itemsSpacing = _ref.itemsSpacing,\n itemsSpacing = _ref$itemsSpacing === void 0 ? LegendSvg.defaultProps.itemsSpacing : _ref$itemsSpacing,\n itemWidth = _ref.itemWidth,\n itemHeight = _ref.itemHeight,\n _ref$itemDirection = _ref.itemDirection,\n itemDirection = _ref$itemDirection === void 0 ? LegendSvgItem.defaultProps.direction : _ref$itemDirection,\n _ref$itemTextColor = _ref.itemTextColor,\n itemTextColor = _ref$itemTextColor === void 0 ? LegendSvg.defaultProps.textColor : _ref$itemTextColor,\n _ref$symbolSize = _ref.symbolSize,\n symbolSize = _ref$symbolSize === void 0 ? LegendSvgItem.defaultProps.symbolSize : _ref$symbolSize,\n _ref$symbolSpacing = _ref.symbolSpacing,\n symbolSpacing = _ref$symbolSpacing === void 0 ? LegendSvgItem.defaultProps.symbolSpacing : _ref$symbolSpacing,\n theme = _ref.theme;\n var _computeDimensions = computeDimensions({\n itemCount: data.length,\n itemWidth: itemWidth,\n itemHeight: itemHeight,\n itemsSpacing: itemsSpacing,\n direction: direction,\n padding: _padding\n }),\n width = _computeDimensions.width,\n height = _computeDimensions.height,\n padding = _computeDimensions.padding;\n var _computePositionFromA = computePositionFromAnchor({\n anchor: anchor,\n translateX: translateX,\n translateY: translateY,\n containerWidth: containerWidth,\n containerHeight: containerHeight,\n width: width,\n height: height\n }),\n x = _computePositionFromA.x,\n y = _computePositionFromA.y;\n var xStep = 0;\n var yStep = 0;\n if (direction === DIRECTION_ROW) {\n xStep = itemWidth + itemsSpacing;\n } else if (direction === DIRECTION_COLUMN) {\n yStep = itemHeight + itemsSpacing;\n }\n ctx.save();\n ctx.translate(x, y);\n ctx.font = \"\".concat(theme.legends.text.fontSize, \"px \").concat(theme.legends.text.fontFamily || 'sans-serif');\n data.forEach(function (d, i) {\n var itemX = i * xStep + padding.left;\n var itemY = i * yStep + padding.top;\n var _computeItemLayout = computeItemLayout({\n direction: itemDirection,\n justify: justify,\n symbolSize: symbolSize,\n symbolSpacing: symbolSpacing,\n width: itemWidth,\n height: itemHeight\n }),\n symbolX = _computeItemLayout.symbolX,\n symbolY = _computeItemLayout.symbolY,\n labelX = _computeItemLayout.labelX,\n labelY = _computeItemLayout.labelY,\n labelAnchor = _computeItemLayout.labelAnchor,\n labelAlignment = _computeItemLayout.labelAlignment;\n ctx.fillStyle = d.color;\n ctx.fillRect(itemX + symbolX, itemY + symbolY, symbolSize, symbolSize);\n ctx.textAlign = textPropsMapping.align[labelAnchor];\n ctx.textBaseline = textPropsMapping.baseline[labelAlignment];\n ctx.fillStyle = itemTextColor || theme.legends.text.fill;\n ctx.fillText(d.label, itemX + labelX, itemY + labelY);\n });\n ctx.restore();\n};\n\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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$1(arr) { if (Array.isArray(arr)) return arr; }\nvar useQuantizeColorScaleLegendData = function useQuantizeColorScaleLegendData(_ref) {\n var scale = _ref.scale,\n overriddenDomain = _ref.domain,\n _ref$reverse = _ref.reverse,\n reverse = _ref$reverse === void 0 ? false : _ref$reverse,\n _ref$valueFormat = _ref.valueFormat,\n valueFormat = _ref$valueFormat === void 0 ? function (v) {\n return v;\n } : _ref$valueFormat,\n _ref$separator = _ref.separator,\n separator = _ref$separator === void 0 ? ' - ' : _ref$separator;\n return useMemo(function () {\n var domain = overriddenDomain || scale.range();\n var items = domain.map(function (domainValue, index) {\n var _scale$invertExtent = scale.invertExtent(domainValue),\n _scale$invertExtent2 = _slicedToArray$1(_scale$invertExtent, 2),\n start = _scale$invertExtent2[0],\n end = _scale$invertExtent2[1];\n return {\n id: domainValue,\n index: index,\n extent: [start, end],\n label: \"\".concat(valueFormat(start)).concat(separator).concat(valueFormat(end)),\n value: scale(start),\n color: domainValue\n };\n });\n if (reverse === true) items.reverse();\n return items;\n }, [overriddenDomain, scale, reverse]);\n};\n\nexport { ANCHOR_BOTTOM, ANCHOR_BOTTOM_LEFT, ANCHOR_BOTTOM_RIGHT, ANCHOR_CENTER, ANCHOR_LEFT, ANCHOR_RIGHT, ANCHOR_TOP, ANCHOR_TOP_LEFT, ANCHOR_TOP_RIGHT, BoxLegendSvg, DIRECTION_BOTTOM_TO_TOP, DIRECTION_COLUMN, DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_ROW, DIRECTION_TOP_TO_BOTTOM, LegendPropShape, LegendSvg, LegendSvgItem, datumPropType, interactivityPropTypes, legendEffectPropType, renderLegendToCanvas, symbolPropTypes, useQuantizeColorScaleLegendData };\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import PropTypes from 'prop-types';\nimport { scaleLinear, scaleLog, scalePoint, scaleUtc, scaleTime } from 'd3-scale';\nimport { utcParse, timeParse } from 'd3-time-format';\nimport uniq from 'lodash/uniq';\nimport uniqBy from 'lodash/uniqBy';\nimport sortBy from 'lodash/sortBy';\nimport last from 'lodash/last';\nimport isDate from 'lodash/isDate';\n\nvar linearScale = function linearScale(_ref, xy, width, height) {\n var axis = _ref.axis,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 0 : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 'auto' : _ref$max,\n _ref$stacked = _ref.stacked,\n stacked = _ref$stacked === void 0 ? false : _ref$stacked,\n _ref$reverse = _ref.reverse,\n reverse = _ref$reverse === void 0 ? false : _ref$reverse;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var minValue = min;\n if (min === 'auto') {\n minValue = stacked === true ? values.minStacked : values.min;\n }\n var maxValue = max;\n if (max === 'auto') {\n maxValue = stacked === true ? values.maxStacked : values.max;\n }\n var scale = scaleLinear().rangeRound(axis === 'x' ? [0, size] : [size, 0]);\n if (reverse === true) scale.domain([maxValue, minValue]);else scale.domain([minValue, maxValue]);\n scale.type = 'linear';\n scale.stacked = stacked;\n return scale;\n};\nvar linearScalePropTypes = {\n type: PropTypes.oneOf(['linear']).isRequired,\n min: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n max: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n stacked: PropTypes.bool,\n reverse: PropTypes.bool\n};\n\nvar logScale = function logScale(_ref, xy, width, height) {\n var axis = _ref.axis,\n _ref$base = _ref.base,\n base = _ref$base === void 0 ? 10 : _ref$base,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 'auto' : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 'auto' : _ref$max;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var hasZero = values.all.some(function (v) {\n return v === 0;\n });\n var sign;\n var hasMixedSign = false;\n values.all.forEach(function (v) {\n if (hasMixedSign === true) return;\n if (sign === undefined) {\n sign = Math.sign(v);\n } else if (Math.sign(v) !== sign) {\n hasMixedSign = true;\n }\n });\n if (hasZero || hasMixedSign) {\n throw new Error([\"a log scale domain must be strictly-positive or strictly-negative,\", \"and must not include or cross zero.\"].join('\\n'));\n }\n var minValue = min;\n if (min === 'auto') {\n minValue = values.min;\n }\n var maxValue = max;\n if (max === 'auto') {\n maxValue = values.max;\n }\n var scale = scaleLog().domain([minValue, maxValue]).rangeRound(axis === 'x' ? [0, size] : [size, 0]).base(base).nice();\n scale.type = 'log';\n return scale;\n};\nvar logScalePropTypes = {\n type: PropTypes.oneOf(['log']).isRequired,\n base: PropTypes.number,\n min: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n max: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number])\n};\n\nvar pointScale = function pointScale(_ref, xy, width, height) {\n var axis = _ref.axis;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var scale = scalePoint().range([0, size]).domain(values.all);\n scale.type = 'point';\n return scale;\n};\nvar pointScalePropTypes = {\n type: PropTypes.oneOf(['point']).isRequired\n};\n\nvar _precisionCutOffsByTy;\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; }\nvar TIME_PRECISION_MILLISECOND = 'millisecond';\nvar TIME_PRECISION_SECOND = 'second';\nvar TIME_PRECISION_MINUTE = 'minute';\nvar TIME_PRECISION_HOUR = 'hour';\nvar TIME_PRECISION_DAY = 'day';\nvar TIME_PRECISION_MONTH = 'month';\nvar TIME_PRECISION_YEAR = 'year';\nvar timePrecisions = [TIME_PRECISION_MILLISECOND, TIME_PRECISION_SECOND, TIME_PRECISION_MINUTE, TIME_PRECISION_HOUR, TIME_PRECISION_DAY, TIME_PRECISION_MONTH, TIME_PRECISION_YEAR];\nvar precisionCutOffs = [function (date) {\n return date.setMilliseconds(0);\n}, function (date) {\n return date.setSeconds(0);\n}, function (date) {\n return date.setMinutes(0);\n}, function (date) {\n return date.setHours(0);\n}, function (date) {\n return date.setDate(1);\n}, function (date) {\n return date.setMonth(0);\n}];\nvar precisionCutOffsByType = (_precisionCutOffsByTy = {}, _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_MILLISECOND, []), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_SECOND, precisionCutOffs.slice(0, 1)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_MINUTE, precisionCutOffs.slice(0, 2)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_HOUR, precisionCutOffs.slice(0, 3)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_DAY, precisionCutOffs.slice(0, 4)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_MONTH, precisionCutOffs.slice(0, 5)), _defineProperty(_precisionCutOffsByTy, TIME_PRECISION_YEAR, precisionCutOffs.slice(0, 6)), _precisionCutOffsByTy);\nvar createPrecisionMethod = function createPrecisionMethod(precision) {\n return function (date) {\n precisionCutOffsByType[precision].forEach(function (cutOff) {\n cutOff(date);\n });\n return date;\n };\n};\nvar createDateNormalizer = function createDateNormalizer(_ref) {\n var _ref$format = _ref.format,\n format = _ref$format === void 0 ? 'native' : _ref$format,\n _ref$precision = _ref.precision,\n precision = _ref$precision === void 0 ? 'millisecond' : _ref$precision,\n _ref$useUTC = _ref.useUTC,\n useUTC = _ref$useUTC === void 0 ? true : _ref$useUTC;\n var precisionFn = createPrecisionMethod(precision);\n if (format === 'native') return function (v) {\n return precisionFn(v);\n };\n var parseTime = useUTC ? utcParse(format) : timeParse(format);\n return function (v) {\n return precisionFn(parseTime(v));\n };\n};\n\nvar timeScale = function timeScale(_ref, xy, width, height) {\n var axis = _ref.axis,\n _ref$format = _ref.format,\n format = _ref$format === void 0 ? 'native' : _ref$format,\n _ref$precision = _ref.precision,\n precision = _ref$precision === void 0 ? TIME_PRECISION_MILLISECOND : _ref$precision,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 'auto' : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 'auto' : _ref$max,\n _ref$useUTC = _ref.useUTC,\n useUTC = _ref$useUTC === void 0 ? true : _ref$useUTC;\n var values = xy[axis];\n var size = axis === 'x' ? width : height;\n var normalize = createDateNormalizer({\n format: format,\n precision: precision,\n useUTC: useUTC\n });\n var minValue = min;\n if (min === 'auto') {\n minValue = values.min;\n } else if (format !== 'native') {\n minValue = normalize(values.min);\n }\n var maxValue = max;\n if (max === 'auto') {\n maxValue = values.max;\n } else if (format !== 'native') {\n maxValue = normalize(values.max);\n }\n var scale = useUTC ? scaleUtc() : scaleTime();\n scale.domain([minValue, maxValue]).range([0, size]);\n scale.type = 'time';\n scale.useUTC = useUTC;\n return scale;\n};\nvar timeScalePropTypes = {\n type: PropTypes.oneOf(['time']).isRequired,\n format: PropTypes.string,\n precision: PropTypes.oneOf(timePrecisions)\n};\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar getOtherAxis = function getOtherAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n};\nvar compareValues = function compareValues(a, b) {\n return a === b;\n};\nvar compareDateValues = function compareDateValues(a, b) {\n return a.getTime() === b.getTime();\n};\nvar computeXYScalesForSeries = function computeXYScalesForSeries(_series, xScaleSpec, yScaleSpec, width, height) {\n var series = _series.map(function (serie) {\n return _objectSpread({}, serie, {\n data: serie.data.map(function (d) {\n return {\n data: _objectSpread({}, d)\n };\n })\n });\n });\n var xy = generateSeriesXY(series, xScaleSpec, yScaleSpec);\n if (xScaleSpec.stacked === true) {\n stackX(yScaleSpec.type, xy, series);\n }\n if (yScaleSpec.stacked === true) {\n stackY(xScaleSpec.type, xy, series);\n }\n var xScale = computeScale(_objectSpread({}, xScaleSpec, {\n axis: 'x'\n }), xy, width, height);\n var yScale = computeScale(_objectSpread({}, yScaleSpec, {\n axis: 'y'\n }), xy, width, height);\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n d.position = {\n x: xScale.stacked === true ? d.data.xStacked === null ? null : xScale(d.data.xStacked) : d.data.x === null ? null : xScale(d.data.x),\n y: yScale.stacked === true ? d.data.yStacked === null ? null : yScale(d.data.yStacked) : d.data.y === null ? null : yScale(d.data.y)\n };\n });\n });\n return _objectSpread({}, xy, {\n series: series,\n xScale: xScale,\n yScale: yScale\n });\n};\nvar computeScale = function computeScale(spec, xy, width, height) {\n if (spec.type === 'linear') return linearScale(spec, xy, width, height);else if (spec.type === 'point') return pointScale(spec, xy, width, height);else if (spec.type === 'time') return timeScale(spec, xy, width, height);else if (spec.type === 'log') return logScale(spec, xy, width, height);\n};\nvar generateSeriesXY = function generateSeriesXY(series, xScaleSpec, yScaleSpec) {\n return {\n x: generateSeriesAxis(series, 'x', xScaleSpec),\n y: generateSeriesAxis(series, 'y', yScaleSpec)\n };\n};\nvar generateSeriesAxis = function generateSeriesAxis(series, axis, scaleSpec) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref$getValue = _ref.getValue,\n getValue = _ref$getValue === void 0 ? function (d) {\n return d.data[axis];\n } : _ref$getValue,\n _ref$setValue = _ref.setValue,\n setValue = _ref$setValue === void 0 ? function (d, v) {\n d.data[axis] = v;\n } : _ref$setValue;\n if (scaleSpec.type === 'linear') {\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n setValue(d, getValue(d) === null ? null : parseFloat(getValue(d)));\n });\n });\n } else if (scaleSpec.type === 'time' && scaleSpec.format !== 'native') {\n var parseTime = createDateNormalizer(scaleSpec);\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n setValue(d, getValue(d) === null ? null : parseTime(getValue(d)));\n });\n });\n }\n var all = [];\n series.forEach(function (serie) {\n serie.data.forEach(function (d) {\n all.push(getValue(d));\n });\n });\n var min, max;\n if (scaleSpec.type === 'linear') {\n all = uniq(all);\n all = sortBy(all, function (v) {\n return v;\n });\n min = Math.min.apply(Math, _toConsumableArray(all));\n max = Math.max.apply(Math, _toConsumableArray(all));\n } else if (scaleSpec.type === 'time') {\n all = uniqBy(all, function (v) {\n return v.getTime();\n });\n all = all.slice(0).sort(function (a, b) {\n return b - a;\n }).reverse();\n min = all[0];\n max = last(all);\n } else {\n all = uniq(all);\n min = all[0];\n max = last(all);\n }\n return {\n all: all,\n min: min,\n max: max\n };\n};\nvar stackAxis = function stackAxis(axis, otherType, xy, series) {\n var otherAxis = getOtherAxis(axis);\n var all = [];\n xy[otherAxis].all.forEach(function (v) {\n var compare = isDate(v) ? compareDateValues : compareValues;\n var stack = [];\n series.forEach(function (serie) {\n var datum = serie.data.find(function (d) {\n return compare(d.data[otherAxis], v);\n });\n var value = null;\n var stackValue = null;\n if (datum !== undefined) {\n value = datum.data[axis];\n if (value !== null) {\n var head = last(stack);\n if (head === undefined) {\n stackValue = value;\n } else if (head !== null) {\n stackValue = head + value;\n }\n }\n datum.data[\"\".concat(axis, \"Stacked\")] = stackValue;\n }\n stack.push(stackValue);\n all.push(stackValue);\n });\n });\n all = all.filter(function (v) {\n return v !== null;\n });\n xy[axis].minStacked = Math.min.apply(Math, _toConsumableArray(all));\n xy[axis].maxStacked = Math.max.apply(Math, _toConsumableArray(all));\n};\nvar stackX = function stackX(xy, otherType, series) {\n return stackAxis('x', xy, otherType, series);\n};\nvar stackY = function stackY(xy, otherType, series) {\n return stackAxis('y', xy, otherType, series);\n};\nvar computeAxisSlices = function computeAxisSlices(axis, data) {\n var otherAxis = getOtherAxis(axis);\n return data[otherAxis].all.map(function (v) {\n var _slice;\n var slice = (_slice = {\n id: v\n }, _defineProperty$1(_slice, otherAxis, data[\"\".concat(otherAxis, \"Scale\")](v)), _defineProperty$1(_slice, \"data\", []), _slice);\n var compare = isDate(v) ? compareDateValues : compareValues;\n data.series.forEach(function (serie) {\n var datum = serie.data.find(function (d) {\n return compare(d.data[otherAxis], v);\n });\n if (datum !== undefined) {\n slice.data.push(_objectSpread({}, datum, {\n serie: serie\n }));\n }\n });\n slice.data.reverse();\n return slice;\n });\n};\nvar computeXSlices = function computeXSlices(data) {\n return computeAxisSlices('x', data);\n};\nvar computeYSlices = function computeYSlices(data) {\n return computeAxisSlices('y', data);\n};\n\nvar scalePropType = PropTypes.oneOfType([PropTypes.shape(linearScalePropTypes), PropTypes.shape(pointScalePropTypes), PropTypes.shape(timeScalePropTypes), PropTypes.shape(logScalePropTypes)]);\n\nexport { compareDateValues, compareValues, computeAxisSlices, computeScale, computeXSlices, computeXYScalesForSeries, computeYSlices, generateSeriesAxis, generateSeriesXY, getOtherAxis, linearScale, linearScalePropTypes, logScale, logScalePropTypes, pointScale, pointScalePropTypes, scalePropType, stackAxis, stackX, stackY, timeScale, timeScalePropTypes };\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nexport default class Delaunator {\n\n static from(points, getX = defaultGetX, getY = defaultGetY) {\n const n = points.length;\n const coords = new Float64Array(n * 2);\n\n for (let i = 0; i < n; i++) {\n const p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n }\n\n constructor(coords) {\n const n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n const maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n }\n\n update() {\n const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;\n const n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n for (let i = 0; i < n; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n this._ids[i] = i;\n }\n const cx = (minX + maxX) / 2;\n const cy = (minY + maxY) / 2;\n\n let minDist = Infinity;\n let i0, i1, i2;\n\n // pick a seed point close to the center\n for (let i = 0; i < n; i++) {\n const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist) {\n i0 = i;\n minDist = d;\n }\n }\n const i0x = coords[2 * i0];\n const i0y = coords[2 * i0 + 1];\n\n minDist = Infinity;\n\n // find the point closest to the seed\n for (let i = 0; i < n; i++) {\n if (i === i0) continue;\n const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n if (d < minDist && d > 0) {\n i1 = i;\n minDist = d;\n }\n }\n let i1x = coords[2 * i1];\n let i1y = coords[2 * i1 + 1];\n\n let minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (let i = 0; i < n; i++) {\n if (i === i0 || i === i1) continue;\n const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n if (r < minRadius) {\n i2 = i;\n minRadius = r;\n }\n }\n let i2x = coords[2 * i2];\n let i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (let i = 0; i < n; i++) {\n this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n const hull = new Uint32Array(n);\n let j = 0;\n for (let i = 0, d0 = -Infinity; i < n; i++) {\n const id = this._ids[i];\n if (this._dists[id] > d0) {\n hull[j++] = id;\n d0 = this._dists[id];\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) {\n const i = i1;\n const x = i1x;\n const y = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i;\n i2x = x;\n i2y = y;\n }\n\n const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (let i = 0; i < n; i++) {\n this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n let hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (let k = 0, xp, yp; k < this._ids.length; k++) {\n const i = this._ids[k];\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n xp = x;\n yp = y;\n\n // skip seed triangle points\n if (i === i0 || i === i1 || i === i2) continue;\n\n // find a visible edge on the convex hull using edge hash\n let start = 0;\n for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n start = hullHash[(key + j) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) break;\n }\n\n start = hullPrev[start];\n let e = start, q;\n while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) continue; // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n let n = hullNext[e];\n while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) {\n t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n hullTri[i] = this._legalize(t + 2);\n hullNext[n] = n; // mark as removed\n hullSize--;\n n = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) {\n t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i] = e;\n hullNext[e] = hullPrev[n] = i;\n hullNext[i] = n;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x, y)] = i;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n this.hull[i] = e;\n e = hullNext[e];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n }\n\n _hashKey(x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n }\n\n _legalize(a) {\n const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n let i = 0;\n let ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n const b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/ \\a\n * / || \\ / \\\n * / a||b \\ flip /___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\ /br\n * \\||/ \\ /\n * pr pr\n */\n const a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) break;\n a = EDGE_STACK[--i];\n continue;\n }\n\n const b0 = b - b % 3;\n const al = a0 + (a + 1) % 3;\n const bl = b0 + (b + 2) % 3;\n\n const p0 = triangles[ar];\n const pr = triangles[a];\n const pl = triangles[al];\n const p1 = triangles[bl];\n\n const illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n const hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n let e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n const br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) break;\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n }\n\n _link(a, b) {\n this._halfedges[a] = b;\n if (b !== -1) this._halfedges[b] = a;\n }\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n _addTriangle(i0, i1, i2, a, b, c) {\n const t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n const p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n\n// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check\nfunction orientIfSure(px, py, rx, ry, qx, qy) {\n const l = (ry - py) * (qx - px);\n const r = (rx - px) * (qy - py);\n return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0;\n}\n\n// a more robust orientation test that's stable in a given triangle (to fix robustness issues)\nfunction orient(rx, ry, qx, qy, px, py) {\n const sign = orientIfSure(px, py, rx, ry, qx, qy) ||\n orientIfSure(rx, ry, qx, qy, px, py) ||\n orientIfSure(qx, qy, px, py, rx, ry);\n return sign < 0;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n const dx = ax - px;\n const dy = ay - py;\n const ex = bx - px;\n const ey = by - py;\n const fx = cx - px;\n const fy = cy - py;\n\n const ap = dx * dx + dy * dy;\n const bp = ex * ex + ey * ey;\n const cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = (ey * bl - dy * cl) * d;\n const y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n const dx = bx - ax;\n const dy = by - ay;\n const ex = cx - ax;\n const ey = cy - ay;\n\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const d = 0.5 / (dx * ey - dy * ex);\n\n const x = ax + (ey * bl - dy * cl) * d;\n const y = ay + (dx * cl - ex * bl) * d;\n\n return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (let i = left + 1; i <= right; i++) {\n const temp = ids[i];\n const tempDist = dists[temp];\n let j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n ids[j + 1] = temp;\n }\n } else {\n const median = (left + right) >> 1;\n let i = left + 1;\n let j = right;\n swap(ids, median, i);\n if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n const temp = ids[i];\n const tempDist = dists[temp];\n while (true) {\n do i++; while (dists[ids[i]] < tempDist);\n do j--; while (dists[ids[j]] > tempDist);\n if (j < i) break;\n swap(ids, i, j);\n }\n ids[left + 1] = ids[j];\n ids[j] = temp;\n\n if (right - i + 1 >= j - left) {\n quicksort(ids, dists, i, right);\n quicksort(ids, dists, left, j - 1);\n } else {\n quicksort(ids, dists, left, j - 1);\n quicksort(ids, dists, i, right);\n }\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n return p[0];\n}\nfunction defaultGetY(p) {\n return p[1];\n}\n","const epsilon = 1e-6;\n\nexport default class Path {\n constructor() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n }\n moveTo(x, y) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n }\n lineTo(x, y) {\n this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n }\n arc(x, y, r) {\n x = +x, y = +y, r = +r;\n const x0 = x + r;\n const y0 = y;\n if (r < 0) throw new Error(\"negative radius\");\n if (this._x1 === null) this._ += `M${x0},${y0}`;\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n if (!r) return;\n this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n }\n rect(x, y, w, h) {\n this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n }\n value() {\n return this._ || null;\n }\n}\n","export default class Polygon {\n constructor() {\n this._ = [];\n }\n moveTo(x, y) {\n this._.push([x, y]);\n }\n closePath() {\n this._.push(this._[0].slice());\n }\n lineTo(x, y) {\n this._.push([x, y]);\n }\n value() {\n return this._.length ? this._ : null;\n }\n}\n","import Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\n\nexport default class Voronoi {\n constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n this.delaunay = delaunay;\n this._circumcenters = new Float64Array(delaunay.points.length * 2);\n this.vectors = new Float64Array(delaunay.points.length * 2);\n this.xmax = xmax, this.xmin = xmin;\n this.ymax = ymax, this.ymin = ymin;\n this._init();\n }\n update() {\n this.delaunay.update();\n this._init();\n return this;\n }\n _init() {\n const {delaunay: {points, hull, triangles}, vectors} = this;\n\n // Compute circumcenters.\n const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n const t1 = triangles[i] * 2;\n const t2 = triangles[i + 1] * 2;\n const t3 = triangles[i + 2] * 2;\n const x1 = points[t1];\n const y1 = points[t1 + 1];\n const x2 = points[t2];\n const y2 = points[t2 + 1];\n const x3 = points[t3];\n const y3 = points[t3 + 1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const ex = x3 - x1;\n const ey = y3 - y1;\n const bl = dx * dx + dy * dy;\n const cl = ex * ex + ey * ey;\n const ab = (dx * ey - dy * ex) * 2;\n\n if (!ab) {\n // degenerate case (collinear diagram)\n x = (x1 + x3) / 2 - 1e8 * ey;\n y = (y1 + y3) / 2 + 1e8 * ex;\n }\n else if (Math.abs(ab) < 1e-8) {\n // almost equal points (degenerate triangle)\n x = (x1 + x3) / 2;\n y = (y1 + y3) / 2;\n } else {\n const d = 1 / ab;\n x = x1 + (ey * bl - dy * cl) * d;\n y = y1 + (dx * cl - ex * bl) * d;\n }\n circumcenters[j] = x;\n circumcenters[j + 1] = y;\n }\n\n // Compute exterior cell rays.\n let h = hull[hull.length - 1];\n let p0, p1 = h * 4;\n let x0, x1 = points[2 * h];\n let y0, y1 = points[2 * h + 1];\n vectors.fill(0);\n for (let i = 0; i < hull.length; ++i) {\n h = hull[i];\n p0 = p1, x0 = x1, y0 = y1;\n p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n vectors[p0 + 2] = vectors[p1] = y0 - y1;\n vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n }\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n if (hull.length <= 1) return null;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = Math.floor(i / 3) * 2;\n const tj = Math.floor(j / 3) * 2;\n const xi = circumcenters[ti];\n const yi = circumcenters[ti + 1];\n const xj = circumcenters[tj];\n const yj = circumcenters[tj + 1];\n this._renderSegment(xi, yi, xj, yj, context);\n }\n let h0, h1 = hull[hull.length - 1];\n for (let i = 0; i < hull.length; ++i) {\n h0 = h1, h1 = hull[i];\n const t = Math.floor(inedges[h1] / 3) * 2;\n const x = circumcenters[t];\n const y = circumcenters[t + 1];\n const v = h0 * 4;\n const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n if (p) this._renderSegment(x, y, p[0], p[1], context);\n }\n return buffer && buffer.value();\n }\n renderBounds(context) {\n const buffer = context == null ? context = new Path : undefined;\n context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n return buffer && buffer.value();\n }\n renderCell(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const points = this._clip(i);\n if (points === null || !points.length) return;\n context.moveTo(points[0], points[1]);\n let n = points.length;\n while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n for (let i = 2; i < n; i += 2) {\n if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n context.lineTo(points[i], points[i + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n *cellPolygons() {\n const {delaunay: {points}} = this;\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const cell = this.cellPolygon(i);\n if (cell) cell.index = i, yield cell;\n }\n }\n cellPolygon(i) {\n const polygon = new Polygon;\n this.renderCell(i, polygon);\n return polygon.value();\n }\n _renderSegment(x0, y0, x1, y1, context) {\n let S;\n const c0 = this._regioncode(x0, y0);\n const c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n context.moveTo(S[0], S[1]);\n context.lineTo(S[2], S[3]);\n }\n }\n contains(i, x, y) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n return this.delaunay._step(i, x, y) === i;\n }\n *neighbors(i) {\n const ci = this._clip(i);\n if (ci) for (const j of this.delaunay.neighbors(i)) {\n const cj = this._clip(j);\n // find the common edge\n if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n if (ci[ai] == cj[aj]\n && ci[ai + 1] == cj[aj + 1]\n && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj]\n && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj]\n ) {\n yield j;\n break loop;\n }\n }\n }\n }\n }\n _cell(i) {\n const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n const e0 = inedges[i];\n if (e0 === -1) return null; // coincident point\n const points = [];\n let e = e0;\n do {\n const t = Math.floor(e / 3);\n points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n } while (e !== e0 && e !== -1);\n return points;\n }\n _clip(i) {\n // degenerate case (1 valid point: return the box)\n if (i === 0 && this.delaunay.hull.length === 1) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n const points = this._cell(i);\n if (points === null) return null;\n const {vectors: V} = this;\n const v = i * 4;\n return V[v] || V[v + 1]\n ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n : this._clipFinite(i, points);\n }\n _clipFinite(i, points) {\n const n = points.length;\n let P = null;\n let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n let c0, c1 = this._regioncode(x1, y1);\n let e0, e1;\n for (let j = 0; j < n; j += 2) {\n x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n c0 = c1, c1 = this._regioncode(x1, y1);\n if (c0 === 0 && c1 === 0) {\n e0 = e1, e1 = 0;\n if (P) P.push(x1, y1);\n else P = [x1, y1];\n } else {\n let S, sx0, sy0, sx1, sy1;\n if (c0 === 0) {\n if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n [sx0, sy0, sx1, sy1] = S;\n } else {\n if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n [sx1, sy1, sx0, sy0] = S;\n e0 = e1, e1 = this._edgecode(sx0, sy0);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx0, sy0);\n else P = [sx0, sy0];\n }\n e0 = e1, e1 = this._edgecode(sx1, sy1);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n if (P) P.push(sx1, sy1);\n else P = [sx1, sy1];\n }\n }\n if (P) {\n e0 = e1, e1 = this._edgecode(P[0], P[1]);\n if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n }\n return P;\n }\n _clipSegment(x0, y0, x1, y1, c0, c1) {\n while (true) {\n if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1];\n if (c0 & c1) return null;\n let x, y, c = c0 || c1;\n if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n }\n }\n _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n let P = Array.from(points), p;\n if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n if (P = this._clipFinite(i, P)) {\n for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n }\n } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n }\n return P;\n }\n _edge(i, e0, e1, P, j) {\n while (e0 !== e1) {\n let x, y;\n switch (e0) {\n case 0b0101: e0 = 0b0100; continue; // top-left\n case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n case 0b0110: e0 = 0b0010; continue; // top-right\n case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n case 0b1010: e0 = 0b1000; continue; // bottom-right\n case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n case 0b1001: e0 = 0b0001; continue; // bottom-left\n case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n }\n if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n P.splice(j, 0, x, y), j += 2;\n }\n }\n if (P.length > 4) {\n for (let i = 0; i < P.length; i+= 2) {\n const j = (i + 2) % P.length, k = (i + 4) % P.length;\n if (P[i] === P[j] && P[j] === P[k]\n || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1])\n P.splice(j, 2), i -= 2;\n }\n }\n return j;\n }\n _project(x0, y0, vx, vy) {\n let t = Infinity, c, x, y;\n if (vy < 0) { // top\n if (y0 <= this.ymin) return null;\n if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n } else if (vy > 0) { // bottom\n if (y0 >= this.ymax) return null;\n if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n }\n if (vx > 0) { // right\n if (x0 >= this.xmax) return null;\n if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n } else if (vx < 0) { // left\n if (x0 <= this.xmin) return null;\n if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n }\n return [x, y];\n }\n _edgecode(x, y) {\n return (x === this.xmin ? 0b0001\n : x === this.xmax ? 0b0010 : 0b0000)\n | (y === this.ymin ? 0b0100\n : y === this.ymax ? 0b1000 : 0b0000);\n }\n _regioncode(x, y) {\n return (x < this.xmin ? 0b0001\n : x > this.xmax ? 0b0010 : 0b0000)\n | (y < this.ymin ? 0b0100\n : y > this.ymax ? 0b1000 : 0b0000);\n }\n}\n","import Delaunator from \"delaunator\";\nimport Path from \"./path.js\";\nimport Polygon from \"./polygon.js\";\nimport Voronoi from \"./voronoi.js\";\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n const {triangles, coords} = d;\n for (let i = 0; i < triangles.length; i += 3) {\n const a = 2 * triangles[i],\n b = 2 * triangles[i + 1],\n c = 2 * triangles[i + 2],\n cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n if (cross > 1e-10) return false;\n }\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nexport default class Delaunay {\n static from(points, fx = pointX, fy = pointY, that) {\n return new Delaunay(\"length\" in points\n ? flatArray(points, fx, fy, that)\n : Float64Array.from(flatIterable(points, fx, fy, that)));\n }\n constructor(points) {\n this._delaunator = new Delaunator(points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = this._delaunator.coords;\n this._init();\n }\n update() {\n this._delaunator.update();\n this._init();\n return this;\n }\n _init() {\n const d = this._delaunator, points = this.points;\n\n // check for collinear\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n for (let i = 0, n = points.length / 2; i < n; ++i) {\n const p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n this._delaunator = new Delaunator(points);\n } else {\n delete this.collinear;\n }\n\n const halfedges = this.halfedges = this._delaunator.halfedges;\n const hull = this.hull = this._delaunator.hull;\n const triangles = this.triangles = this._delaunator.triangles;\n const inedges = this.inedges.fill(-1);\n const hullIndex = this._hullIndex.fill(-1);\n\n // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n for (let e = 0, n = halfedges.length; e < n; ++e) {\n const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n }\n for (let i = 0, n = hull.length; i < n; ++i) {\n hullIndex[hull[i]] = i;\n }\n\n // degenerate case: 1 or 2 (distinct) points\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n inedges[hull[0]] = 1;\n if (hull.length === 2) inedges[hull[1]] = 0;\n }\n }\n voronoi(bounds) {\n return new Voronoi(this, bounds);\n }\n *neighbors(i) {\n const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n // degenerate case with several collinear points\n if (collinear) {\n const l = collinear.indexOf(i);\n if (l > 0) yield collinear[l - 1];\n if (l < collinear.length - 1) yield collinear[l + 1];\n return;\n }\n\n const e0 = inedges[i];\n if (e0 === -1) return; // coincident point\n let e = e0, p0 = -1;\n do {\n yield p0 = triangles[e];\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) return; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n const p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) yield p;\n return;\n }\n } while (e !== e0);\n }\n find(x, y, i = 0) {\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n const i0 = i;\n let c;\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n return c;\n }\n _step(i, x, y) {\n const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n let c = i;\n let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n const e0 = inedges[i];\n let e = e0;\n do {\n let t = triangles[e];\n const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n if (dt < dc) dc = dt, c = t;\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n e = halfedges[e];\n if (e === -1) {\n e = hull[(_hullIndex[i] + 1) % hull.length];\n if (e !== t) {\n if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n }\n break;\n }\n } while (e !== e0);\n return c;\n }\n render(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, halfedges, triangles} = this;\n for (let i = 0, n = halfedges.length; i < n; ++i) {\n const j = halfedges[i];\n if (j < i) continue;\n const ti = triangles[i] * 2;\n const tj = triangles[j] * 2;\n context.moveTo(points[ti], points[ti + 1]);\n context.lineTo(points[tj], points[tj + 1]);\n }\n this.renderHull(context);\n return buffer && buffer.value();\n }\n renderPoints(context, r = 2) {\n const buffer = context == null ? context = new Path : undefined;\n const {points} = this;\n for (let i = 0, n = points.length; i < n; i += 2) {\n const x = points[i], y = points[i + 1];\n context.moveTo(x + r, y);\n context.arc(x, y, r, 0, tau);\n }\n return buffer && buffer.value();\n }\n renderHull(context) {\n const buffer = context == null ? context = new Path : undefined;\n const {hull, points} = this;\n const h = hull[0] * 2, n = hull.length;\n context.moveTo(points[h], points[h + 1]);\n for (let i = 1; i < n; ++i) {\n const h = 2 * hull[i];\n context.lineTo(points[h], points[h + 1]);\n }\n context.closePath();\n return buffer && buffer.value();\n }\n hullPolygon() {\n const polygon = new Polygon;\n this.renderHull(polygon);\n return polygon.value();\n }\n renderTriangle(i, context) {\n const buffer = context == null ? context = new Path : undefined;\n const {points, triangles} = this;\n const t0 = triangles[i *= 3] * 2;\n const t1 = triangles[i + 1] * 2;\n const t2 = triangles[i + 2] * 2;\n context.moveTo(points[t0], points[t0 + 1]);\n context.lineTo(points[t1], points[t1 + 1]);\n context.lineTo(points[t2], points[t2 + 1]);\n context.closePath();\n return buffer && buffer.value();\n }\n *trianglePolygons() {\n const {triangles} = this;\n for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n yield this.trianglePolygon(i);\n }\n }\n trianglePolygon(i) {\n const polygon = new Polygon;\n this.renderTriangle(i, polygon);\n return polygon.value();\n }\n}\n\nfunction flatArray(points, fx, fy, that) {\n const n = points.length;\n const array = new Float64Array(n * 2);\n for (let i = 0; i < n; ++i) {\n const p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n let i = 0;\n for (const p of points) {\n yield fx.call(that, p, i, points);\n yield fy.call(that, p, i, points);\n ++i;\n }\n}\n","import React, { Fragment, useMemo, useRef, useState, useCallback } from 'react';\nimport { withTheme, withDimensions, Container, SvgWrapper, ResponsiveWrapper, getRelativeCursor } from '@nivo/core';\nimport { scaleLinear } from 'd3-scale';\nimport { Delaunay } from 'd3-delaunay';\nimport compose from 'recompose/compose';\nimport defaultProps from 'recompose/defaultProps';\nimport withPropsOnChange from 'recompose/withPropsOnChange';\nimport pure from 'recompose/pure';\nimport PropTypes from 'prop-types';\n\nvar VoronoiPropTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n })).isRequired,\n xDomain: PropTypes.arrayOf(PropTypes.number).isRequired,\n yDomain: PropTypes.arrayOf(PropTypes.number).isRequired,\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['links', 'cells', 'points', 'bounds']), PropTypes.func])).isRequired,\n enableLinks: PropTypes.bool.isRequired,\n linkLineWidth: PropTypes.number.isRequired,\n linkLineColor: PropTypes.string.isRequired,\n enableCells: PropTypes.bool.isRequired,\n cellLineWidth: PropTypes.number.isRequired,\n cellLineColor: PropTypes.string.isRequired,\n enablePoints: PropTypes.bool.isRequired,\n pointSize: PropTypes.number.isRequired,\n pointColor: PropTypes.string.isRequired,\n delaunay: PropTypes.object.isRequired,\n voronoi: PropTypes.object.isRequired\n};\nvar VoronoiDefaultProps = {\n xDomain: [0, 1],\n yDomain: [0, 1],\n layers: ['links', 'cells', 'points', 'bounds'],\n enableLinks: false,\n linkLineWidth: 1,\n linkLineColor: '#bbb',\n enableCells: true,\n cellLineWidth: 2,\n cellLineColor: '#000',\n enablePoints: true,\n pointSize: 4,\n pointColor: '#666'\n};\n\nvar enhance = (function (Component) {\n return compose(defaultProps(VoronoiDefaultProps), withTheme(), withDimensions(), withPropsOnChange(['xDomain', 'yDomain', 'width', 'height'], function (_ref) {\n var xDomain = _ref.xDomain,\n yDomain = _ref.yDomain,\n width = _ref.width,\n height = _ref.height;\n return {\n xScale: scaleLinear().domain(xDomain).range([0, width]),\n yScale: scaleLinear().domain(yDomain).range([0, height])\n };\n }), withPropsOnChange(['data', 'xScale', 'yScale'], function (_ref2) {\n var data = _ref2.data,\n xScale = _ref2.xScale,\n yScale = _ref2.yScale;\n return {\n scaledPoints: data.map(function (d) {\n return {\n data: d,\n x: xScale(d.x),\n y: yScale(d.y)\n };\n })\n };\n }), withPropsOnChange(['scaledPoints', 'width', 'height'], function (_ref3) {\n var scaledPoints = _ref3.scaledPoints,\n width = _ref3.width,\n height = _ref3.height;\n var delaunay = Delaunay.from(scaledPoints.map(function (p) {\n return [p.x, p.y];\n }));\n var voronoi = delaunay.voronoi([0, 0, width, height]);\n return {\n delaunay: delaunay,\n voronoi: voronoi\n };\n }), pure)(Component);\n});\n\nvar Voronoi = function Voronoi(_ref) {\n var delaunay = _ref.delaunay,\n voronoi = _ref.voronoi,\n data = _ref.data,\n layers = _ref.layers,\n margin = _ref.margin,\n width = _ref.width,\n height = _ref.height,\n outerWidth = _ref.outerWidth,\n outerHeight = _ref.outerHeight,\n enableLinks = _ref.enableLinks,\n linkLineWidth = _ref.linkLineWidth,\n linkLineColor = _ref.linkLineColor,\n enableCells = _ref.enableCells,\n cellLineWidth = _ref.cellLineWidth,\n cellLineColor = _ref.cellLineColor,\n enablePoints = _ref.enablePoints,\n pointSize = _ref.pointSize,\n pointColor = _ref.pointColor,\n theme = _ref.theme;\n var context = {\n width: width,\n height: height,\n data: data,\n delaunay: delaunay,\n voronoi: voronoi\n };\n var layerById = {\n bounds: React.createElement(\"path\", {\n key: \"bounds\",\n fill: \"none\",\n stroke: cellLineColor,\n strokeWidth: cellLineWidth,\n d: voronoi.renderBounds()\n })\n };\n if (enableLinks === true) {\n layerById.links = React.createElement(\"path\", {\n key: \"links\",\n stroke: linkLineColor,\n strokeWidth: linkLineWidth,\n fill: \"none\",\n d: delaunay.render()\n });\n }\n if (enableCells === true) {\n layerById.cells = React.createElement(\"path\", {\n key: \"cells\",\n d: voronoi.render(),\n fill: \"none\",\n stroke: cellLineColor,\n strokeWidth: cellLineWidth\n });\n }\n if (enablePoints === true) {\n layerById.points = React.createElement(\"path\", {\n key: \"points\",\n stroke: \"none\",\n fill: pointColor,\n d: delaunay.renderPoints(undefined, pointSize / 2)\n });\n }\n return React.createElement(Container, {\n isInteractive: false,\n theme: theme,\n animate: false\n }, function () {\n return (\n React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin,\n theme: theme\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(context));\n }\n return layerById[layer];\n }))\n );\n });\n};\nVoronoi.propTypes = VoronoiPropTypes;\nvar Voronoi$1 = enhance(Voronoi);\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar ResponsiveVoronoi = function ResponsiveVoronoi(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Voronoi$1, _extends({\n width: width,\n height: height\n }, props));\n });\n};\n\nvar getAccessor = function getAccessor(directive) {\n return typeof directive === 'function' ? directive : function (d) {\n return d[directive];\n };\n};\nvar computeMeshPoints = function computeMeshPoints(_ref) {\n var points = _ref.points,\n _ref$x = _ref.x,\n x = _ref$x === void 0 ? 'x' : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 'y' : _ref$y;\n var getX = getAccessor(x);\n var getY = getAccessor(y);\n return points.map(function (p) {\n return [getX(p), getY(p)];\n });\n};\nvar computeMesh = function computeMesh(_ref2) {\n var points = _ref2.points,\n width = _ref2.width,\n height = _ref2.height,\n debug = _ref2.debug;\n var delaunay = Delaunay.from(points);\n var voronoi = debug === true ? delaunay.voronoi([0, 0, width, height]) : undefined;\n return {\n delaunay: delaunay,\n voronoi: voronoi\n };\n};\n\nvar useVoronoiMesh = function useVoronoiMesh(_ref) {\n var points = _ref.points,\n x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n debug = _ref.debug;\n var points2d = useMemo(function () {\n return computeMeshPoints({\n points: points,\n x: x,\n y: y\n });\n }, [points, x, y]);\n return useMemo(function () {\n return computeMesh({\n points: points2d,\n width: width,\n height: height,\n debug: debug\n });\n }, [points2d, width, height, debug]);\n};\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 Mesh = function Mesh(_ref) {\n var nodes = _ref.nodes,\n width = _ref.width,\n height = _ref.height,\n x = _ref.x,\n y = _ref.y,\n debug = _ref.debug,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick;\n var elementRef = useRef(null);\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n currentIndex = _useState2[0],\n setCurrentIndex = _useState2[1];\n var _useVoronoiMesh = useVoronoiMesh({\n points: nodes,\n x: x,\n y: y,\n width: width,\n height: height,\n debug: debug\n }),\n delaunay = _useVoronoiMesh.delaunay,\n voronoi = _useVoronoiMesh.voronoi;\n var voronoiPath = useMemo(function () {\n return debug ? voronoi.render() : undefined;\n });\n var getIndexAndNodeFromEvent = useCallback(function (event) {\n var _getRelativeCursor = getRelativeCursor(elementRef.current, event),\n _getRelativeCursor2 = _slicedToArray(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n var index = delaunay.find(x, y);\n return [index, index !== undefined ? nodes[index] : null];\n }, [delaunay]);\n var handleMouseEnter = useCallback(function (event) {\n var _getIndexAndNodeFromE = getIndexAndNodeFromEvent(event),\n _getIndexAndNodeFromE2 = _slicedToArray(_getIndexAndNodeFromE, 2),\n index = _getIndexAndNodeFromE2[0],\n node = _getIndexAndNodeFromE2[1];\n if (currentIndex !== index) setCurrentIndex(index);\n node && onMouseEnter && onMouseEnter(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n var handleMouseMove = useCallback(function (event) {\n var _getIndexAndNodeFromE3 = getIndexAndNodeFromEvent(event),\n _getIndexAndNodeFromE4 = _slicedToArray(_getIndexAndNodeFromE3, 2),\n index = _getIndexAndNodeFromE4[0],\n node = _getIndexAndNodeFromE4[1];\n if (currentIndex !== index) setCurrentIndex(index);\n node && onMouseMove && onMouseMove(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n var handleMouseLeave = useCallback(function (event) {\n setCurrentIndex(null);\n if (onMouseLeave) {\n var previousNode;\n if (currentIndex !== undefined && currentIndex !== null) {\n previousNode = nodes[currentIndex];\n }\n onMouseLeave(previousNode, event);\n }\n }, [setCurrentIndex]);\n var handleClick = useCallback(function (event) {\n var _getIndexAndNodeFromE5 = getIndexAndNodeFromEvent(event),\n _getIndexAndNodeFromE6 = _slicedToArray(_getIndexAndNodeFromE5, 2),\n index = _getIndexAndNodeFromE6[0],\n node = _getIndexAndNodeFromE6[1];\n if (currentIndex !== index) setCurrentIndex(index);\n onClick && onClick(node, event);\n }, [getIndexAndNodeFromEvent, setCurrentIndex]);\n return React.createElement(\"g\", {\n ref: elementRef\n }, debug && React.createElement(\"path\", {\n d: voronoiPath,\n stroke: \"red\",\n strokeWidth: 1,\n opacity: 0.75\n }), currentIndex !== null && debug && React.createElement(\"path\", {\n fill: \"red\",\n opacity: 0.35,\n d: voronoi.renderCell(currentIndex)\n }), React.createElement(\"rect\", {\n width: width,\n height: height,\n fill: \"red\",\n opacity: 0,\n style: {\n cursor: 'auto'\n },\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick\n }));\n};\nMesh.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n nodes: PropTypes.array.isRequired,\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n debug: PropTypes.bool.isRequired\n};\nMesh.defaultProps = {\n x: 'x',\n y: 'y',\n debug: false\n};\n\nvar renderVoronoiToCanvas = function renderVoronoiToCanvas(ctx, voronoi) {\n ctx.save();\n ctx.globalAlpha = 0.75;\n ctx.beginPath();\n voronoi.render(ctx);\n ctx.strokeStyle = 'red';\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.restore();\n};\nvar renderVoronoiCellToCanvas = function renderVoronoiCellToCanvas(ctx, voronoi, index) {\n ctx.save();\n ctx.globalAlpha = 0.35;\n ctx.beginPath();\n voronoi.renderCell(index, ctx);\n ctx.fillStyle = 'red';\n ctx.fill();\n ctx.restore();\n};\n\nexport { Mesh, ResponsiveVoronoi, Voronoi$1 as Voronoi, VoronoiDefaultProps, VoronoiPropTypes, computeMesh, computeMeshPoints, renderVoronoiCellToCanvas, renderVoronoiToCanvas, useVoronoiMesh };\n","import React, { memo, useMemo, useCallback, useState, Fragment, useRef, useEffect } from 'react';\nimport { lineCurvePropType, blendModePropType, motionPropTypes, curveFromProp, useValueFormatter, useTheme, useMotionConfig, SmartMotion, getLabelGenerator, DotsItem, withContainer, useDimensions, CartesianMarkers, SvgWrapper, ResponsiveWrapper, getRelativeCursor, isCursorInRect } from '@nivo/core';\nimport { ordinalColorsPropType, useOrdinalColorScale, useInheritedColor } from '@nivo/colors';\nimport { axisPropType, Grid, Axes, renderGridLinesToCanvas, renderAxesToCanvas } from '@nivo/axes';\nimport { LegendPropShape, BoxLegendSvg, renderLegendToCanvas } from '@nivo/legends';\nimport { BasicTooltip, TableTooltip, crosshairPropTypes, useTooltip, Crosshair } from '@nivo/tooltip';\nimport { line, area } from 'd3-shape';\nimport { scalePropType, computeXYScalesForSeries } from '@nivo/scales';\nimport PropTypes from 'prop-types';\nimport { TransitionMotion, spring } from 'react-motion';\nimport { Mesh as Mesh$2, useVoronoiMesh, renderVoronoiToCanvas, renderVoronoiCellToCanvas } from '@nivo/voronoi';\n\nvar LinePointTooltip = function LinePointTooltip(_ref) {\n var point = _ref.point;\n return React.createElement(BasicTooltip, {\n id: React.createElement(\"span\", null, \"x: \", React.createElement(\"strong\", null, point.data.xFormatted), \", y:\", ' ', React.createElement(\"strong\", null, point.data.yFormatted)),\n enableChip: true,\n color: point.serieColor\n });\n};\nLinePointTooltip.propTypes = {\n point: PropTypes.object.isRequired\n};\nvar PointTooltip = memo(LinePointTooltip);\n\nvar Chip = function Chip(_ref) {\n var color = _ref.color;\n return React.createElement(\"span\", {\n style: {\n display: 'block',\n width: '12px',\n height: '12px',\n background: color\n }\n });\n};\nChip.propTypes = {\n color: PropTypes.string.isRequired\n};\nvar SliceTooltip = function SliceTooltip(_ref2) {\n var slice = _ref2.slice,\n axis = _ref2.axis;\n var otherAxis = axis === 'x' ? 'y' : 'x';\n return React.createElement(TableTooltip, {\n rows: slice.points.map(function (point) {\n return [React.createElement(Chip, {\n key: \"chip\",\n color: point.serieColor\n }), point.serieId, React.createElement(\"strong\", {\n key: \"value\"\n }, point.data[\"\".concat(otherAxis, \"Formatted\")])];\n })\n });\n};\nSliceTooltip.propTypes = {\n slice: PropTypes.object.isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired\n};\nvar SliceTooltip$1 = memo(SliceTooltip);\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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; }\nvar commonPropTypes = {\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)])\n })).isRequired\n })).isRequired,\n xScale: scalePropType.isRequired,\n xFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n yScale: scalePropType.isRequired,\n yFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n layers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['grid', 'markers', 'axes', 'areas', 'crosshair', 'lines', 'slices', 'points', 'mesh', 'legends']), PropTypes.func])).isRequired,\n curve: lineCurvePropType.isRequired,\n axisTop: axisPropType,\n axisRight: axisPropType,\n axisBottom: axisPropType,\n axisLeft: axisPropType,\n enableGridX: PropTypes.bool.isRequired,\n enableGridY: PropTypes.bool.isRequired,\n gridXValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))]),\n gridYValues: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]))]),\n enablePoints: PropTypes.bool.isRequired,\n pointSymbol: PropTypes.func,\n pointSize: PropTypes.number.isRequired,\n pointColor: PropTypes.any.isRequired,\n pointBorderWidth: PropTypes.number.isRequired,\n pointBorderColor: PropTypes.any.isRequired,\n markers: PropTypes.arrayOf(PropTypes.shape({\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n style: PropTypes.object\n })),\n colors: ordinalColorsPropType.isRequired,\n enableArea: PropTypes.bool.isRequired,\n areaOpacity: PropTypes.number.isRequired,\n areaBlendMode: blendModePropType.isRequired,\n areaBaselineValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n lineWidth: PropTypes.number.isRequired,\n defs: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.string.isRequired\n })).isRequired,\n legends: PropTypes.arrayOf(PropTypes.shape(LegendPropShape)).isRequired,\n isInteractive: PropTypes.bool.isRequired,\n debugMesh: PropTypes.bool.isRequired,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n tooltipFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n enableSlices: PropTypes.oneOf(['x', 'y', false]).isRequired,\n debugSlices: PropTypes.bool.isRequired,\n sliceTooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n enableCrosshair: PropTypes.bool.isRequired,\n crosshairType: crosshairPropTypes.type.isRequired\n};\nvar LinePropTypes = _objectSpread({}, commonPropTypes, {\n enablePointLabel: PropTypes.bool.isRequired,\n useMesh: PropTypes.bool.isRequired\n}, motionPropTypes);\nvar LineCanvasPropTypes = _objectSpread({\n pixelRatio: PropTypes.number.isRequired\n}, commonPropTypes);\nvar commonDefaultProps = {\n curve: 'linear',\n xScale: {\n type: 'point'\n },\n yScale: {\n type: 'linear',\n min: 0,\n max: 'auto'\n },\n layers: ['grid', 'markers', 'axes', 'areas', 'crosshair', 'lines', 'points', 'slices', 'mesh', 'legends'],\n axisBottom: {},\n axisLeft: {},\n enableGridX: true,\n enableGridY: true,\n enablePoints: true,\n pointSize: 6,\n pointColor: {\n from: 'color'\n },\n pointBorderWidth: 0,\n pointBorderColor: {\n theme: 'background'\n },\n colors: {\n scheme: 'nivo'\n },\n enableArea: false,\n areaBaselineValue: 0,\n areaOpacity: 0.2,\n areaBlendMode: 'normal',\n lineWidth: 2,\n defs: [],\n legends: [],\n isInteractive: true,\n tooltip: PointTooltip,\n enableSlices: false,\n debugSlices: false,\n sliceTooltip: SliceTooltip$1,\n debugMesh: false,\n enableCrosshair: true,\n crosshairType: 'bottom-left'\n};\nvar LineDefaultProps = _objectSpread({}, commonDefaultProps, {\n enablePointLabel: false,\n useMesh: false,\n animate: true,\n motionStiffness: 90,\n motionDamping: 15\n});\nvar LineCanvasDefaultProps = _objectSpread({}, commonDefaultProps, {\n pixelRatio: global.window && global.window.devicePixelRatio ? global.window.devicePixelRatio : 1\n});\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\nvar useLineGenerator = function useLineGenerator(_ref) {\n var curve = _ref.curve;\n return useMemo(function () {\n return line().defined(function (d) {\n return d.x !== null && d.y !== null;\n }).x(function (d) {\n return d.x;\n }).y(function (d) {\n return d.y;\n }).curve(curveFromProp(curve));\n }, [curve]);\n};\nvar useAreaGenerator = function useAreaGenerator(_ref2) {\n var curve = _ref2.curve,\n yScale = _ref2.yScale,\n areaBaselineValue = _ref2.areaBaselineValue;\n return useMemo(function () {\n return area().defined(function (d) {\n return d.x !== null && d.y !== null;\n }).x(function (d) {\n return d.x;\n }).y1(function (d) {\n return d.y;\n }).curve(curveFromProp(curve)).y0(yScale(areaBaselineValue));\n }, [curve, yScale, areaBaselineValue]);\n};\nvar usePoints = function usePoints(_ref3) {\n var series = _ref3.series,\n getPointColor = _ref3.getPointColor,\n getPointBorderColor = _ref3.getPointBorderColor,\n formatX = _ref3.formatX,\n formatY = _ref3.formatY;\n return useMemo(function () {\n return series.reduce(function (acc, serie) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(serie.data.filter(function (datum) {\n return datum.position.x !== null && datum.position.y !== null;\n }).map(function (datum, i) {\n var point = {\n id: \"\".concat(serie.id, \".\").concat(i),\n index: acc.length + i,\n serieId: serie.id,\n serieColor: serie.color,\n x: datum.position.x,\n y: datum.position.y\n };\n point.color = getPointColor(serie);\n point.borderColor = getPointBorderColor(point);\n point.data = _objectSpread$1({}, datum.data, {\n xFormatted: formatX(datum.data.x),\n yFormatted: formatY(datum.data.y)\n });\n return point;\n })));\n }, []);\n }, [series, getPointColor, getPointBorderColor, formatX, formatY]);\n};\nvar useSlices = function useSlices(_ref4) {\n var enableSlices = _ref4.enableSlices,\n points = _ref4.points,\n width = _ref4.width,\n height = _ref4.height;\n return useMemo(function () {\n if (enableSlices === false) return [];\n if (enableSlices === 'x') {\n var map = new Map();\n points.forEach(function (point) {\n if (point.data.x === null || point.data.y === null) return;\n if (!map.has(point.x)) map.set(point.x, [point]);else map.get(point.x).push(point);\n });\n return Array.from(map.entries()).sort(function (a, b) {\n return a[0] - b[0];\n }).map(function (_ref5, i, slices) {\n var _ref6 = _slicedToArray(_ref5, 2),\n x = _ref6[0],\n slicePoints = _ref6[1];\n var prevSlice = slices[i - 1];\n var nextSlice = slices[i + 1];\n var x0;\n if (!prevSlice) x0 = x;else x0 = x - (x - prevSlice[0]) / 2;\n var sliceWidth;\n if (!nextSlice) sliceWidth = width - x0;else sliceWidth = x - x0 + (nextSlice[0] - x) / 2;\n return {\n id: x,\n x0: x0,\n x: x,\n y0: 0,\n y: 0,\n width: sliceWidth,\n height: height,\n points: slicePoints.reverse()\n };\n });\n } else if (enableSlices === 'y') {\n var _map = new Map();\n points.forEach(function (point) {\n if (point.data.x === null || point.data.y === null) return;\n if (!_map.has(point.y)) _map.set(point.y, [point]);else _map.get(point.y).push(point);\n });\n return Array.from(_map.entries()).sort(function (a, b) {\n return a[0] - b[0];\n }).map(function (_ref7, i, slices) {\n var _ref8 = _slicedToArray(_ref7, 2),\n y = _ref8[0],\n slicePoints = _ref8[1];\n var prevSlice = slices[i - 1];\n var nextSlice = slices[i + 1];\n var y0;\n if (!prevSlice) y0 = y;else y0 = y - (y - prevSlice[0]) / 2;\n var sliceHeight;\n if (!nextSlice) sliceHeight = height - y0;else sliceHeight = y - y0 + (nextSlice[0] - y) / 2;\n return {\n id: y,\n x0: 0,\n x: 0,\n y0: y0,\n y: y,\n width: width,\n height: sliceHeight,\n points: slicePoints.reverse()\n };\n });\n }\n }, [enableSlices, points]);\n};\nvar useLine = function useLine(_ref9) {\n var data = _ref9.data,\n _ref9$xScale = _ref9.xScale,\n xScaleSpec = _ref9$xScale === void 0 ? LineDefaultProps.xScale : _ref9$xScale,\n xFormat = _ref9.xFormat,\n _ref9$yScale = _ref9.yScale,\n yScaleSpec = _ref9$yScale === void 0 ? LineDefaultProps.yScale : _ref9$yScale,\n yFormat = _ref9.yFormat,\n width = _ref9.width,\n height = _ref9.height,\n _ref9$colors = _ref9.colors,\n colors = _ref9$colors === void 0 ? LineDefaultProps.colors : _ref9$colors,\n _ref9$curve = _ref9.curve,\n curve = _ref9$curve === void 0 ? LineDefaultProps.curve : _ref9$curve,\n _ref9$areaBaselineVal = _ref9.areaBaselineValue,\n areaBaselineValue = _ref9$areaBaselineVal === void 0 ? LineDefaultProps.areaBaselineValue : _ref9$areaBaselineVal,\n _ref9$pointColor = _ref9.pointColor,\n pointColor = _ref9$pointColor === void 0 ? LineDefaultProps.pointColor : _ref9$pointColor,\n _ref9$pointBorderColo = _ref9.pointBorderColor,\n pointBorderColor = _ref9$pointBorderColo === void 0 ? LineDefaultProps.pointBorderColor : _ref9$pointBorderColo,\n _ref9$enableSlices = _ref9.enableSlices,\n enableSlices = _ref9$enableSlices === void 0 ? LineDefaultProps.enableSlicesTooltip : _ref9$enableSlices;\n var formatX = useValueFormatter(xFormat);\n var formatY = useValueFormatter(yFormat);\n var getColor = useOrdinalColorScale(colors, 'id');\n var theme = useTheme();\n var getPointColor = useInheritedColor(pointColor, theme);\n var getPointBorderColor = useInheritedColor(pointBorderColor, theme);\n var _useMemo = useMemo(function () {\n return computeXYScalesForSeries(data, xScaleSpec, yScaleSpec, width, height);\n }, [data, xScaleSpec, yScaleSpec, width, height]),\n xScale = _useMemo.xScale,\n yScale = _useMemo.yScale,\n rawSeries = _useMemo.series;\n var series = useMemo(function () {\n return rawSeries.map(function (serie) {\n return _objectSpread$1({}, serie, {\n color: getColor(serie)\n });\n });\n }, [rawSeries, getColor]);\n var points = usePoints({\n series: series,\n getPointColor: getPointColor,\n getPointBorderColor: getPointBorderColor,\n formatX: formatX,\n formatY: formatY\n });\n var slices = useSlices({\n enableSlices: enableSlices,\n points: points,\n width: width,\n height: height\n });\n var lineGenerator = useLineGenerator({\n curve: curve\n });\n var areaGenerator = useAreaGenerator({\n curve: curve,\n yScale: yScale,\n areaBaselineValue: areaBaselineValue\n });\n return {\n lineGenerator: lineGenerator,\n areaGenerator: areaGenerator,\n getColor: getColor,\n series: series,\n xScale: xScale,\n yScale: yScale,\n slices: slices,\n points: points\n };\n};\n\nvar Areas = function Areas(_ref) {\n var areaGenerator = _ref.areaGenerator,\n areaOpacity = _ref.areaOpacity,\n areaBlendMode = _ref.areaBlendMode,\n lines = _ref.lines;\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (animate !== true) {\n return React.createElement(\"g\", null, lines.slice(0).reverse().map(function (_ref2) {\n var id = _ref2.id,\n data = _ref2.data,\n areaColor = _ref2.color;\n return React.createElement(\"path\", {\n key: id,\n d: areaGenerator(data.map(function (d) {\n return d.position;\n })),\n fill: areaColor,\n fillOpacity: areaOpacity,\n strokeWidth: 0,\n style: {\n mixBlendMode: areaBlendMode\n }\n });\n }));\n }\n return React.createElement(\"g\", null, lines.slice(0).reverse().map(function (_ref3) {\n var id = _ref3.id,\n data = _ref3.data,\n areaColor = _ref3.color;\n return React.createElement(SmartMotion, {\n key: id,\n style: function style(spring) {\n return {\n d: spring(areaGenerator(data.map(function (d) {\n return d.position;\n })), springConfig),\n fill: spring(areaColor, springConfig)\n };\n }\n }, function (style) {\n return React.createElement(\"path\", {\n key: id,\n d: style.d,\n fill: areaColor,\n fillOpacity: areaOpacity,\n strokeWidth: 0,\n style: {\n mixBlendMode: areaBlendMode\n }\n });\n });\n }));\n};\nAreas.propTypes = {\n areaGenerator: PropTypes.func.isRequired,\n areaOpacity: PropTypes.number.isRequired,\n areaBlendMode: blendModePropType.isRequired,\n lines: PropTypes.arrayOf(PropTypes.object).isRequired\n};\nvar Areas$1 = memo(Areas);\n\nvar LinesItem = function LinesItem(_ref) {\n var lineGenerator = _ref.lineGenerator,\n id = _ref.id,\n points = _ref.points,\n color = _ref.color,\n thickness = _ref.thickness;\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n if (animate !== true) {\n return React.createElement(\"path\", {\n key: id,\n d: lineGenerator(points),\n fill: \"none\",\n strokeWidth: thickness,\n stroke: color\n });\n }\n return React.createElement(SmartMotion, {\n key: id,\n style: function style(spring) {\n return {\n d: spring(lineGenerator(points), springConfig),\n stroke: spring(color, springConfig)\n };\n }\n }, function (style) {\n return React.createElement(\"path\", {\n key: id,\n d: style.d,\n fill: \"none\",\n strokeWidth: thickness,\n stroke: style.stroke\n });\n });\n};\nLinesItem.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n })),\n lineGenerator: PropTypes.func.isRequired,\n color: PropTypes.string.isRequired,\n thickness: PropTypes.number.isRequired\n};\nvar LinesItem$1 = memo(LinesItem);\n\nvar Lines = function Lines(_ref) {\n var lines = _ref.lines,\n lineGenerator = _ref.lineGenerator,\n lineWidth = _ref.lineWidth;\n return lines.map(function (_ref2) {\n var id = _ref2.id,\n data = _ref2.data,\n color = _ref2.color;\n return React.createElement(LinesItem$1, {\n key: id,\n id: id,\n points: data.map(function (d) {\n return d.position;\n }),\n lineGenerator: lineGenerator,\n color: color,\n thickness: lineWidth\n });\n });\n};\nLines.propTypes = {\n lines: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n color: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({\n data: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)]),\n y: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)])\n }).isRequired,\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }).isRequired\n })).isRequired\n })).isRequired,\n lineWidth: PropTypes.number.isRequired,\n lineGenerator: PropTypes.func.isRequired\n};\nvar Lines$1 = memo(Lines);\n\nvar SlicesItem = function SlicesItem(_ref) {\n var slice = _ref.slice,\n axis = _ref.axis,\n debug = _ref.debug,\n tooltip = _ref.tooltip,\n isCurrent = _ref.isCurrent,\n setCurrent = _ref.setCurrent;\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n var handleMouseEnter = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n slice: slice,\n axis: axis\n }), event, 'right');\n setCurrent(slice);\n }, [showTooltipFromEvent, tooltip, slice]);\n var handleMouseMove = useCallback(function (event) {\n showTooltipFromEvent(React.createElement(tooltip, {\n slice: slice,\n axis: axis\n }), event, 'right');\n }, [showTooltipFromEvent, tooltip, slice]);\n var handleMouseLeave = useCallback(function () {\n hideTooltip();\n setCurrent(null);\n }, [hideTooltip]);\n return React.createElement(\"rect\", {\n x: slice.x0,\n y: slice.y0,\n width: slice.width,\n height: slice.height,\n stroke: \"red\",\n strokeWidth: debug ? 1 : 0,\n strokeOpacity: 0.75,\n fill: \"red\",\n fillOpacity: isCurrent && debug ? 0.35 : 0,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave\n });\n};\nSlicesItem.propTypes = {\n slice: PropTypes.object.isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n debug: PropTypes.bool.isRequired,\n height: PropTypes.number.isRequired,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n isCurrent: PropTypes.bool.isRequired,\n setCurrent: PropTypes.func.isRequired\n};\nvar SlicesItem$1 = memo(SlicesItem);\n\nvar Slices = function Slices(_ref) {\n var slices = _ref.slices,\n axis = _ref.axis,\n debug = _ref.debug,\n height = _ref.height,\n tooltip = _ref.tooltip,\n current = _ref.current,\n setCurrent = _ref.setCurrent;\n return slices.map(function (slice) {\n return React.createElement(SlicesItem$1, {\n key: slice.id,\n slice: slice,\n axis: axis,\n debug: debug,\n height: height,\n tooltip: tooltip,\n setCurrent: setCurrent,\n isCurrent: current !== null && current.id === slice.id\n });\n });\n};\nSlices.propTypes = {\n slices: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.instanceOf(Date)]).isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n points: PropTypes.arrayOf(PropTypes.object).isRequired\n })).isRequired,\n axis: PropTypes.oneOf(['x', 'y']).isRequired,\n debug: PropTypes.bool.isRequired,\n height: PropTypes.number.isRequired,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n current: PropTypes.object,\n setCurrent: PropTypes.func.isRequired\n};\nvar Slices$1 = memo(Slices);\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nvar Points = function Points(_ref) {\n var points = _ref.points,\n symbol = _ref.symbol,\n size = _ref.size,\n borderWidth = _ref.borderWidth,\n enableLabel = _ref.enableLabel,\n label = _ref.label,\n labelYOffset = _ref.labelYOffset;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var getLabel = getLabelGenerator(label);\n var mappedPoints = points.map(function (point) {\n var mappedPoint = {\n id: point.id,\n x: point.x,\n y: point.y,\n datum: point.data,\n fill: point.color,\n stroke: point.borderColor,\n label: enableLabel ? getLabel(point.data) : null\n };\n return mappedPoint;\n });\n if (animate !== true) {\n return React.createElement(\"g\", null, mappedPoints.map(function (point) {\n return React.createElement(DotsItem, {\n key: point.id,\n x: point.x,\n y: point.y,\n datum: point.datum,\n symbol: symbol,\n size: size,\n color: point.fill,\n borderWidth: borderWidth,\n borderColor: point.stroke,\n label: point.label,\n labelYOffset: labelYOffset,\n theme: theme\n });\n }));\n }\n return React.createElement(TransitionMotion, {\n styles: mappedPoints.map(function (point) {\n return {\n key: point.id,\n data: point,\n style: {\n x: spring(point.x, springConfig),\n y: spring(point.y, springConfig),\n size: spring(size, springConfig)\n }\n };\n })\n }, function (interpolatedStyles) {\n return React.createElement(\"g\", null, interpolatedStyles.map(function (_ref2) {\n var key = _ref2.key,\n style = _ref2.style,\n point = _ref2.data;\n return React.createElement(DotsItem, _extends({\n key: key\n }, style, {\n symbol: symbol,\n datum: point.datum,\n color: point.fill,\n borderWidth: borderWidth,\n borderColor: point.stroke,\n label: point.label,\n labelYOffset: labelYOffset,\n theme: theme\n }));\n }));\n });\n};\nPoints.propTypes = {\n points: PropTypes.arrayOf(PropTypes.object),\n symbol: PropTypes.func,\n size: PropTypes.number.isRequired,\n color: PropTypes.func.isRequired,\n borderWidth: PropTypes.number.isRequired,\n borderColor: PropTypes.func.isRequired,\n enableLabel: PropTypes.bool.isRequired,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n labelYOffset: PropTypes.number\n};\nPoints.defaultProps = {\n enableLabel: false,\n label: 'yFormatted'\n};\nvar Points$1 = memo(Points);\n\nvar Mesh = function Mesh(_ref) {\n var points = _ref.points,\n width = _ref.width,\n height = _ref.height,\n margin = _ref.margin,\n setCurrent = _ref.setCurrent,\n onMouseEnter = _ref.onMouseEnter,\n onMouseMove = _ref.onMouseMove,\n onClick = _ref.onClick,\n tooltip = _ref.tooltip,\n debug = _ref.debug;\n var _useTooltip = useTooltip(),\n showTooltipAt = _useTooltip.showTooltipAt,\n hideTooltip = _useTooltip.hideTooltip;\n var handleMouseEnter = useCallback(function (point, event) {\n showTooltipAt(React.createElement(tooltip, {\n point: point\n }), [point.x + margin.left, point.y + margin.top], 'top');\n setCurrent(point);\n onMouseEnter && onMouseEnter(point, event);\n }, [setCurrent, showTooltipAt, tooltip, onMouseEnter, margin]);\n var handleMouseMove = useCallback(function (point, event) {\n showTooltipAt(React.createElement(tooltip, {\n point: point\n }), [point.x + margin.left, point.y + margin.top], 'top');\n setCurrent(point);\n onMouseMove && onMouseMove(point, event);\n }, [setCurrent, showTooltipAt, tooltip, onMouseMove]);\n var handleMouseLeave = useCallback(function () {\n hideTooltip();\n setCurrent(null);\n }, [hideTooltip, setCurrent]);\n var handleClick = useCallback(function (point, event) {\n onClick && onClick(point, event);\n }, [onClick]);\n return React.createElement(Mesh$2, {\n nodes: points,\n width: width,\n height: height,\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseMove,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n debug: debug\n });\n};\nMesh.propTypes = {\n points: PropTypes.arrayOf(PropTypes.object).isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n margin: PropTypes.object.isRequired,\n setCurrent: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onClick: PropTypes.func,\n tooltip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n debug: PropTypes.bool.isRequired\n};\nvar Mesh$1 = memo(Mesh);\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(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 _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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$1(arr) { if (Array.isArray(arr)) return arr; }\nvar Line = function Line(props) {\n var data = props.data,\n xScaleSpec = props.xScale,\n xFormat = props.xFormat,\n yScaleSpec = props.yScale,\n yFormat = props.yFormat,\n layers = props.layers,\n curve = props.curve,\n areaBaselineValue = props.areaBaselineValue,\n colors = props.colors,\n partialMargin = props.margin,\n width = props.width,\n height = props.height,\n axisTop = props.axisTop,\n axisRight = props.axisRight,\n axisBottom = props.axisBottom,\n axisLeft = props.axisLeft,\n enableGridX = props.enableGridX,\n enableGridY = props.enableGridY,\n gridXValues = props.gridXValues,\n gridYValues = props.gridYValues,\n lineWidth = props.lineWidth,\n enableArea = props.enableArea,\n areaOpacity = props.areaOpacity,\n areaBlendMode = props.areaBlendMode,\n enablePoints = props.enablePoints,\n pointSymbol = props.pointSymbol,\n pointSize = props.pointSize,\n pointColor = props.pointColor,\n pointBorderWidth = props.pointBorderWidth,\n pointBorderColor = props.pointBorderColor,\n enablePointLabel = props.enablePointLabel,\n pointLabel = props.pointLabel,\n pointLabelFormat = props.pointLabelFormat,\n pointLabelYOffset = props.pointLabelYOffset,\n markers = props.markers,\n legends = props.legends,\n isInteractive = props.isInteractive,\n useMesh = props.useMesh,\n debugMesh = props.debugMesh,\n onMouseEnter = props.onMouseEnter,\n onMouseMove = props.onMouseMove,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n tooltip = props.tooltip,\n enableSlices = props.enableSlices,\n debugSlices = props.debugSlices,\n sliceTooltip = props.sliceTooltip,\n enableCrosshair = props.enableCrosshair,\n crosshairType = props.crosshairType;\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n var _useLine = useLine({\n data: data,\n xScale: xScaleSpec,\n xFormat: xFormat,\n yScale: yScaleSpec,\n yFormat: yFormat,\n width: innerWidth,\n height: innerHeight,\n colors: colors,\n curve: curve,\n areaBaselineValue: areaBaselineValue,\n pointColor: pointColor,\n pointBorderColor: pointBorderColor,\n enableSlices: enableSlices\n }),\n lineGenerator = _useLine.lineGenerator,\n areaGenerator = _useLine.areaGenerator,\n series = _useLine.series,\n xScale = _useLine.xScale,\n yScale = _useLine.yScale,\n slices = _useLine.slices,\n points = _useLine.points;\n var theme = useTheme();\n var getPointColor = useInheritedColor(pointColor, theme);\n var getPointBorderColor = useInheritedColor(pointBorderColor, theme);\n var _useState = useState(null),\n _useState2 = _slicedToArray$1(_useState, 2),\n currentPoint = _useState2[0],\n setCurrentPoint = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray$1(_useState3, 2),\n currentSlice = _useState4[0],\n setCurrentSlice = _useState4[1];\n var legendData = useMemo(function () {\n return series.map(function (line) {\n return {\n id: line.id,\n label: line.id,\n color: line.color\n };\n }).reverse();\n }, [series]);\n var layerById = {\n grid: React.createElement(Grid, {\n key: \"grid\",\n theme: theme,\n width: innerWidth,\n height: innerHeight,\n xScale: enableGridX ? xScale : null,\n yScale: enableGridY ? yScale : null,\n xValues: gridXValues,\n yValues: gridYValues\n }),\n markers: React.createElement(CartesianMarkers, {\n key: \"markers\",\n markers: markers,\n width: innerWidth,\n height: innerHeight,\n xScale: xScale,\n yScale: yScale,\n theme: theme\n }),\n axes: React.createElement(Axes, {\n key: \"axes\",\n xScale: xScale,\n yScale: yScale,\n width: innerWidth,\n height: innerHeight,\n theme: theme,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft\n }),\n areas: null,\n lines: React.createElement(Lines$1, {\n key: \"lines\",\n lines: series,\n lineGenerator: lineGenerator,\n lineWidth: lineWidth\n }),\n slices: null,\n points: null,\n crosshair: null,\n mesh: null,\n legends: legends.map(function (legend, i) {\n return React.createElement(BoxLegendSvg, _extends$1({\n key: \"legend.\".concat(i)\n }, legend, {\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n data: legend.data || legendData,\n theme: theme\n }));\n })\n };\n if (enableArea) {\n layerById.areas = React.createElement(Areas$1, {\n key: \"areas\",\n areaGenerator: areaGenerator,\n areaOpacity: areaOpacity,\n areaBlendMode: areaBlendMode,\n lines: series\n });\n }\n if (isInteractive && enableSlices !== false) {\n layerById.slices = React.createElement(Slices$1, {\n key: \"slices\",\n slices: slices,\n axis: enableSlices,\n debug: debugSlices,\n height: innerHeight,\n tooltip: sliceTooltip,\n current: currentSlice,\n setCurrent: setCurrentSlice\n });\n }\n if (enablePoints) {\n layerById.points = React.createElement(Points$1, {\n key: \"points\",\n points: points,\n symbol: pointSymbol,\n size: pointSize,\n color: getPointColor,\n borderWidth: pointBorderWidth,\n borderColor: getPointBorderColor,\n enableLabel: enablePointLabel,\n label: pointLabel,\n labelFormat: pointLabelFormat,\n labelYOffset: pointLabelYOffset\n });\n }\n if (isInteractive && enableCrosshair) {\n if (currentPoint !== null) {\n layerById.crosshair = React.createElement(Crosshair, {\n key: \"crosshair\",\n width: innerWidth,\n height: innerHeight,\n x: currentPoint.x,\n y: currentPoint.y,\n type: crosshairType\n });\n }\n if (currentSlice !== null) {\n layerById.crosshair = React.createElement(Crosshair, {\n key: \"crosshair\",\n width: innerWidth,\n height: innerHeight,\n x: currentSlice.x,\n y: currentSlice.y,\n type: enableSlices\n });\n }\n }\n if (isInteractive && useMesh && enableSlices === false) {\n layerById.mesh = React.createElement(Mesh$1, {\n key: \"mesh\",\n points: points,\n width: innerWidth,\n height: innerHeight,\n margin: margin,\n current: currentPoint,\n setCurrent: setCurrentPoint,\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n tooltip: tooltip,\n debug: debugMesh\n });\n }\n return React.createElement(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin\n }, layers.map(function (layer, i) {\n if (typeof layer === 'function') {\n return React.createElement(Fragment, {\n key: i\n }, layer(_objectSpread$2({}, props, {\n innerWidth: innerWidth,\n innerHeight: innerHeight,\n series: series,\n slices: slices,\n points: points,\n xScale: xScale,\n yScale: yScale,\n lineGenerator: lineGenerator,\n areaGenerator: areaGenerator\n })));\n }\n return layerById[layer];\n }));\n};\nLine.propTypes = LinePropTypes;\nLine.defaultProps = LineDefaultProps;\nvar Line$1 = withContainer(Line);\n\nfunction _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }\nvar ResponsiveLine = function ResponsiveLine(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(Line$1, _extends$2({\n width: width,\n height: height\n }, props));\n });\n};\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(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 _slicedToArray$2(arr, i) { return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _nonIterableRest$2(); }\nfunction _nonIterableRest$2() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$2(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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$2(arr) { if (Array.isArray(arr)) return arr; }\nvar LineCanvas = function LineCanvas(_ref) {\n var width = _ref.width,\n height = _ref.height,\n partialMargin = _ref.margin,\n pixelRatio = _ref.pixelRatio,\n data = _ref.data,\n xScaleSpec = _ref.xScale,\n xFormat = _ref.xFormat,\n yScaleSpec = _ref.yScale,\n yFormat = _ref.yFormat,\n curve = _ref.curve,\n layers = _ref.layers,\n colors = _ref.colors,\n lineWidth = _ref.lineWidth,\n enableArea = _ref.enableArea,\n areaBaselineValue = _ref.areaBaselineValue,\n areaOpacity = _ref.areaOpacity,\n enablePoints = _ref.enablePoints,\n pointSize = _ref.pointSize,\n pointColor = _ref.pointColor,\n pointBorderWidth = _ref.pointBorderWidth,\n pointBorderColor = _ref.pointBorderColor,\n enableGridX = _ref.enableGridX,\n gridXValues = _ref.gridXValues,\n enableGridY = _ref.enableGridY,\n gridYValues = _ref.gridYValues,\n axisTop = _ref.axisTop,\n axisRight = _ref.axisRight,\n axisBottom = _ref.axisBottom,\n axisLeft = _ref.axisLeft,\n legends = _ref.legends,\n isInteractive = _ref.isInteractive,\n debugMesh = _ref.debugMesh,\n onMouseLeave = _ref.onMouseLeave,\n onClick = _ref.onClick,\n tooltip = _ref.tooltip;\n var canvasEl = useRef(null);\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n var theme = useTheme();\n var _useState = useState(null),\n _useState2 = _slicedToArray$2(_useState, 2),\n currentPoint = _useState2[0],\n setCurrentPoint = _useState2[1];\n var _useLine = useLine({\n data: data,\n xScale: xScaleSpec,\n xFormat: xFormat,\n yScale: yScaleSpec,\n yFormat: yFormat,\n width: innerWidth,\n height: innerHeight,\n colors: colors,\n curve: curve,\n areaBaselineValue: areaBaselineValue,\n pointColor: pointColor,\n pointBorderColor: pointBorderColor\n }),\n lineGenerator = _useLine.lineGenerator,\n areaGenerator = _useLine.areaGenerator,\n series = _useLine.series,\n xScale = _useLine.xScale,\n yScale = _useLine.yScale,\n points = _useLine.points;\n var _useVoronoiMesh = useVoronoiMesh({\n points: points,\n width: innerWidth,\n height: innerHeight,\n debug: debugMesh\n }),\n delaunay = _useVoronoiMesh.delaunay,\n voronoi = _useVoronoiMesh.voronoi;\n useEffect(function () {\n canvasEl.current.width = outerWidth * pixelRatio;\n canvasEl.current.height = outerHeight * pixelRatio;\n var ctx = canvasEl.current.getContext('2d');\n ctx.scale(pixelRatio, pixelRatio);\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, outerWidth, outerHeight);\n ctx.translate(margin.left, margin.top);\n layers.forEach(function (layer) {\n if (layer === 'grid' && theme.grid.line.strokeWidth > 0) {\n ctx.lineWidth = theme.grid.line.strokeWidth;\n ctx.strokeStyle = theme.grid.line.stroke;\n enableGridX && renderGridLinesToCanvas(ctx, {\n width: innerWidth,\n height: innerHeight,\n scale: xScale,\n axis: 'x',\n values: gridXValues\n });\n enableGridY && renderGridLinesToCanvas(ctx, {\n width: innerWidth,\n height: innerHeight,\n scale: yScale,\n axis: 'y',\n values: gridYValues\n });\n }\n if (layer === 'axes') {\n renderAxesToCanvas(ctx, {\n xScale: xScale,\n yScale: yScale,\n width: innerWidth,\n height: innerHeight,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft,\n theme: theme\n });\n }\n if (layer === 'areas' && enableArea === true) {\n ctx.save();\n ctx.globalAlpha = areaOpacity;\n areaGenerator.context(ctx);\n series.forEach(function (serie) {\n ctx.fillStyle = serie.color;\n ctx.beginPath();\n areaGenerator(serie.data.map(function (d) {\n return d.position;\n }));\n ctx.fill();\n });\n ctx.restore();\n }\n if (layer === 'lines') {\n lineGenerator.context(ctx);\n series.forEach(function (serie) {\n ctx.strokeStyle = serie.color;\n ctx.lineWidth = lineWidth;\n ctx.beginPath();\n lineGenerator(serie.data.map(function (d) {\n return d.position;\n }));\n ctx.stroke();\n });\n }\n if (layer === 'points' && enablePoints === true && pointSize > 0) {\n points.forEach(function (point) {\n ctx.fillStyle = point.color;\n ctx.beginPath();\n ctx.arc(point.x, point.y, pointSize / 2, 0, 2 * Math.PI);\n ctx.fill();\n if (pointBorderWidth > 0) {\n ctx.strokeStyle = point.borderColor;\n ctx.lineWidth = pointBorderWidth;\n ctx.stroke();\n }\n });\n }\n if (layer === 'mesh' && debugMesh === true) {\n renderVoronoiToCanvas(ctx, voronoi);\n if (currentPoint) {\n renderVoronoiCellToCanvas(ctx, voronoi, currentPoint.index);\n }\n }\n if (layer === 'legends') {\n var legendData = series.map(function (serie) {\n return {\n id: serie.id,\n label: serie.id,\n color: serie.color\n };\n }).reverse();\n legends.forEach(function (legend) {\n renderLegendToCanvas(ctx, _objectSpread$3({}, legend, {\n data: legend.data || legendData,\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n theme: theme\n }));\n });\n }\n });\n }, [canvasEl, outerWidth, outerHeight, layers, theme, lineGenerator, series, xScale, yScale, enableGridX, gridXValues, enableGridY, gridYValues, axisTop, axisRight, axisBottom, axisLeft, legends, points, enablePoints, pointSize, currentPoint]);\n var getPointFromMouseEvent = useCallback(function (event) {\n var _getRelativeCursor = getRelativeCursor(canvasEl.current, event),\n _getRelativeCursor2 = _slicedToArray$2(_getRelativeCursor, 2),\n x = _getRelativeCursor2[0],\n y = _getRelativeCursor2[1];\n if (!isCursorInRect(margin.left, margin.top, innerWidth, innerHeight, x, y)) return null;\n var pointIndex = delaunay.find(x - margin.left, y - margin.top);\n return points[pointIndex];\n }, [canvasEl, margin, innerWidth, innerHeight, delaunay]);\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n var handleMouseHover = useCallback(function (event) {\n var point = getPointFromMouseEvent(event);\n setCurrentPoint(point);\n if (point) {\n showTooltipFromEvent(React.createElement(tooltip, {\n point: point\n }), event);\n } else {\n hideTooltip();\n }\n }, [getPointFromMouseEvent, setCurrentPoint, showTooltipFromEvent, hideTooltip, tooltip]);\n var handleMouseLeave = useCallback(function (event) {\n hideTooltip();\n setCurrentPoint(null);\n currentPoint && onMouseLeave && onMouseLeave(currentPoint, event);\n }, [hideTooltip, setCurrentPoint, onMouseLeave]);\n var handleClick = useCallback(function (event) {\n if (onClick) {\n var point = getPointFromMouseEvent(event);\n point && onClick(point, event);\n }\n }, [getPointFromMouseEvent, onClick]);\n return React.createElement(\"canvas\", {\n ref: canvasEl,\n width: outerWidth * pixelRatio,\n height: outerHeight * pixelRatio,\n style: {\n width: outerWidth,\n height: outerHeight,\n cursor: isInteractive ? 'auto' : 'normal'\n },\n onMouseEnter: isInteractive ? handleMouseHover : undefined,\n onMouseMove: isInteractive ? handleMouseHover : undefined,\n onMouseLeave: isInteractive ? handleMouseLeave : undefined,\n onClick: isInteractive ? handleClick : undefined\n });\n};\nLineCanvas.propTypes = LineCanvasPropTypes;\nLineCanvas.defaultProps = LineCanvasDefaultProps;\nvar LineCanvas$1 = withContainer(LineCanvas);\n\nfunction _extends$3() { _extends$3 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }\nvar ResponsiveLineCanvas = function ResponsiveLineCanvas(props) {\n return React.createElement(ResponsiveWrapper, null, function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return React.createElement(LineCanvas$1, _extends$3({\n width: width,\n height: height\n }, props));\n });\n};\n\nexport { Line$1 as Line, LineCanvas$1 as LineCanvas, LineCanvasDefaultProps, LineCanvasPropTypes, LineDefaultProps, LinePropTypes, ResponsiveLine, ResponsiveLineCanvas, useAreaGenerator, useLine, useLineGenerator, useSlices };\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import React, { memo, useState, useMemo, createContext, useCallback, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport Measure from 'react-measure';\nimport { Motion, spring } from 'react-motion';\nimport { useTheme, useMotionConfig, useValueFormatter } from '@nivo/core';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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 TOOLTIP_OFFSET = 14;\nvar tooltipStyle = {\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 10,\n top: 0,\n left: 0\n};\nvar TooltipWrapper = memo(function (_ref) {\n var position = _ref.position,\n anchor = _ref.anchor,\n children = _ref.children;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n dimensions = _useState2[0],\n setDimensions = _useState2[1];\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var x = Math.round(position[0]);\n var y = Math.round(position[1]);\n if (dimensions !== null) {\n if (anchor === 'top') {\n x -= dimensions[0] / 2;\n y -= dimensions[1] + TOOLTIP_OFFSET;\n } else if (anchor === 'right') {\n x += TOOLTIP_OFFSET;\n y -= dimensions[1] / 2;\n } else if (anchor === 'bottom') {\n x -= dimensions[0] / 2;\n y += TOOLTIP_OFFSET;\n } else if (anchor === 'left') {\n x -= dimensions[0] + TOOLTIP_OFFSET;\n y -= dimensions[1] / 2;\n } else if (anchor === 'center') {\n x -= dimensions[0] / 2;\n y -= dimensions[1] / 2;\n }\n }\n var style = useMemo(function () {\n return _objectSpread({}, tooltipStyle, theme.tooltip, {\n transform: \"translate(\".concat(x, \"px, \").concat(y, \"px)\"),\n opacity: dimensions === null ? 0 : 1\n });\n }, [x, y, dimensions, theme.tooltip]);\n if (animate !== true || dimensions === null) {\n return React.createElement(Measure, {\n client: false,\n offset: false,\n bounds: true,\n margin: false,\n onResize: function onResize(_ref2) {\n var bounds = _ref2.bounds;\n setDimensions([bounds.width, bounds.height]);\n }\n }, function (_ref3) {\n var measureRef = _ref3.measureRef;\n return React.createElement(\"div\", {\n ref: measureRef,\n style: style\n }, children);\n });\n }\n return React.createElement(Motion, {\n style: {\n x: spring(x, springConfig),\n y: spring(y, springConfig)\n }\n }, function (animatedPosition) {\n return React.createElement(Measure, {\n client: false,\n offset: false,\n bounds: true,\n margin: false,\n onResize: function onResize(_ref4) {\n var bounds = _ref4.bounds;\n setDimensions([bounds.width, bounds.height]);\n }\n }, function (_ref5) {\n var measureRef = _ref5.measureRef;\n return React.createElement(\"div\", {\n ref: measureRef,\n style: _objectSpread({}, tooltipStyle, theme.tooltip, {\n transform: \"translate3d(\".concat(animatedPosition.x, \"px, \").concat(animatedPosition.y, \"px, 0)\")\n })\n }, children);\n });\n });\n});\nTooltipWrapper.displayName = 'TooltipWrapper';\nTooltipWrapper.propTypes = {\n position: PropTypes.array.isRequired,\n anchor: PropTypes.oneOf(['top', 'right', 'bottom', 'left', 'center']).isRequired,\n children: PropTypes.node.isRequired\n};\nTooltipWrapper.defaultProps = {\n anchor: 'top'\n};\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; }\nfunction _defineProperty$1(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; }\nvar Chip = memo(function (_ref) {\n var size = _ref.size,\n color = _ref.color,\n style = _ref.style;\n return React.createElement(\"span\", {\n style: _objectSpread$1({\n display: 'block',\n width: size,\n height: size,\n background: color\n }, style)\n });\n});\nChip.propTypes = {\n size: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n style: PropTypes.object.isRequired\n};\nChip.defaultProps = {\n size: 12,\n style: {}\n};\nChip.displayName = 'Chip';\n\nvar BasicTooltip = memo(function (_ref) {\n var id = _ref.id,\n _value = _ref.value,\n format = _ref.format,\n enableChip = _ref.enableChip,\n color = _ref.color,\n renderContent = _ref.renderContent;\n var theme = useTheme();\n var formatValue = useValueFormatter(format);\n var content;\n if (typeof renderContent === 'function') {\n content = renderContent();\n } else {\n var value = _value;\n if (formatValue !== undefined && value !== undefined) {\n value = formatValue(value);\n }\n content = React.createElement(\"div\", {\n style: theme.tooltip.basic\n }, enableChip && React.createElement(Chip, {\n color: color,\n style: theme.tooltip.chip\n }), value !== undefined ? React.createElement(\"span\", null, id, \": \", React.createElement(\"strong\", null, isNaN(value) ? String(value) : value)) : id);\n }\n return React.createElement(\"div\", {\n style: theme.tooltip.container\n }, content);\n});\nBasicTooltip.displayName = 'BasicTooltip';\nBasicTooltip.propTypes = {\n id: PropTypes.node.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n enableChip: PropTypes.bool.isRequired,\n color: PropTypes.string,\n format: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n renderContent: PropTypes.func\n};\nBasicTooltip.defaultProps = {\n enableChip: false\n};\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; }\nfunction _defineProperty$2(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; }\nvar tableStyle = {\n width: '100%',\n borderCollapse: 'collapse'\n};\nvar TableTooltip = memo(function (_ref) {\n var title = _ref.title,\n rows = _ref.rows,\n renderContent = _ref.renderContent;\n var theme = useTheme();\n if (!rows.length) return null;\n var content;\n if (typeof renderContent === 'function') {\n content = renderContent();\n } else {\n content = React.createElement(\"div\", null, title && title, React.createElement(\"table\", {\n style: _objectSpread$2({}, tableStyle, theme.tooltip.table)\n }, React.createElement(\"tbody\", null, rows.map(function (row, i) {\n return React.createElement(\"tr\", {\n key: i\n }, row.map(function (column, j) {\n return React.createElement(\"td\", {\n key: j,\n style: theme.tooltip.tableCell\n }, column);\n }));\n }))));\n }\n return React.createElement(\"div\", {\n style: theme.tooltip.container\n }, content);\n});\nTableTooltip.propTypes = {\n title: PropTypes.node,\n rows: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.node)).isRequired,\n renderContent: PropTypes.func\n};\nTableTooltip.displayName = 'TableTooltip';\n\nvar crosshairTypes = ['x', 'y', 'top-left', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'cross'];\nvar crosshairPropTypes = {\n type: PropTypes.oneOf(crosshairTypes)\n};\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(Object(source)); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; }\nfunction _defineProperty$3(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; }\nvar CrosshairLine = memo(function (_ref) {\n var x0 = _ref.x0,\n x1 = _ref.x1,\n y0 = _ref.y0,\n y1 = _ref.y1;\n var theme = useTheme();\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.springConfig;\n var style = useMemo(function () {\n return _objectSpread$3({}, theme.crosshair.line, {\n pointerEvents: 'none'\n });\n }, [theme.crosshair.line]);\n if (animate !== true) {\n return React.createElement(\"line\", {\n x1: x0,\n x2: x1,\n y1: y0,\n y2: y1,\n fill: \"none\",\n style: style\n });\n }\n return React.createElement(Motion, {\n style: {\n x0: spring(x0, springConfig),\n x1: spring(x1, springConfig),\n y0: spring(y0, springConfig),\n y1: spring(y1, springConfig)\n }\n }, function (line) {\n return React.createElement(\"line\", {\n x1: line.x0,\n x2: line.x1,\n y1: line.y0,\n y2: line.y1,\n fill: \"none\",\n style: style\n });\n });\n});\nCrosshairLine.displayName = 'CrosshairLine';\nCrosshairLine.propTypes = {\n x0: PropTypes.number.isRequired,\n x1: PropTypes.number.isRequired,\n y0: PropTypes.number.isRequired,\n y1: PropTypes.number.isRequired\n};\n\nvar Crosshair = memo(function (_ref) {\n var width = _ref.width,\n height = _ref.height,\n type = _ref.type,\n x = _ref.x,\n y = _ref.y;\n var xLine;\n var yLine;\n if (type === 'cross') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: height\n };\n yLine = {\n x0: 0,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'top-left') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: y\n };\n yLine = {\n x0: 0,\n x1: x,\n y0: y,\n y1: y\n };\n } else if (type === 'top') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: y\n };\n } else if (type === 'top-right') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: y\n };\n yLine = {\n x0: x,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'right') {\n yLine = {\n x0: x,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'bottom-right') {\n xLine = {\n x0: x,\n x1: x,\n y0: y,\n y1: height\n };\n yLine = {\n x0: x,\n x1: width,\n y0: y,\n y1: y\n };\n } else if (type === 'bottom') {\n xLine = {\n x0: x,\n x1: x,\n y0: y,\n y1: height\n };\n } else if (type === 'bottom-left') {\n xLine = {\n x0: x,\n x1: x,\n y0: y,\n y1: height\n };\n yLine = {\n x0: 0,\n x1: x,\n y0: y,\n y1: y\n };\n } else if (type === 'left') {\n yLine = {\n x0: 0,\n x1: x,\n y0: y,\n y1: y\n };\n } else if (type === 'x') {\n xLine = {\n x0: x,\n x1: x,\n y0: 0,\n y1: height\n };\n } else if (type === 'y') {\n yLine = {\n x0: 0,\n x1: width,\n y0: y,\n y1: y\n };\n }\n return React.createElement(React.Fragment, null, xLine && React.createElement(CrosshairLine, {\n x0: xLine.x0,\n x1: xLine.x1,\n y0: xLine.y0,\n y1: xLine.y1\n }), yLine && React.createElement(CrosshairLine, {\n x0: yLine.x0,\n x1: yLine.x1,\n y0: yLine.y0,\n y1: yLine.y1\n }));\n});\nCrosshair.displayName = 'Crosshair';\nCrosshair.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n type: crosshairPropTypes.type.isRequired\n};\nCrosshair.defaultProps = {\n type: 'cross'\n};\n\nvar tooltipContext = createContext();\n\nfunction _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); }\nfunction _nonIterableRest$1() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\nfunction _iterableToArrayLimit$1(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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$1(arr) { if (Array.isArray(arr)) return arr; }\nvar useTooltipHandlers = function useTooltipHandlers(container) {\n var _useState = useState({\n isVisible: false,\n content: null,\n position: {}\n }),\n _useState2 = _slicedToArray$1(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n var showTooltipAt = useCallback(function (content, _ref, anchor) {\n var _ref2 = _slicedToArray$1(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n setState({\n isVisible: true,\n position: [x, y],\n anchor: anchor,\n content: content\n });\n }, []);\n var showTooltipFromEvent = useCallback(function (content, event, anchor) {\n var bounds = container.current.getBoundingClientRect();\n var x = event.clientX - bounds.left;\n var y = event.clientY - bounds.top;\n if (anchor === 'left' || anchor === 'right') {\n if (x < bounds.width / 2) anchor = 'right';else anchor = 'left';\n }\n setState({\n isVisible: true,\n position: [x, y],\n anchor: anchor,\n content: content\n });\n }, [container]);\n var hideTooltip = useCallback(function () {\n setState({\n isVisible: false,\n content: null\n });\n });\n return {\n showTooltipAt: showTooltipAt,\n showTooltipFromEvent: showTooltipFromEvent,\n hideTooltip: hideTooltip,\n isTooltipVisible: state.isVisible,\n tooltipPosition: state.position,\n tooltipAnchor: state.anchor,\n tooltipContent: state.content\n };\n};\nvar useTooltip = function useTooltip() {\n return useContext(tooltipContext);\n};\n\nexport { BasicTooltip, Chip, Crosshair, TableTooltip, TooltipWrapper, crosshairPropTypes, crosshairTypes, tooltipContext, useTooltip, useTooltipHandlers };\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","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 _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};","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","// 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","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","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\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","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","import colors from \"../colors.js\";\n\nexport default colors(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"d8b365f5f5f55ab4ac\",\n \"a6611adfc27d80cdc1018571\",\n \"a6611adfc27df5f5f580cdc1018571\",\n \"8c510ad8b365f6e8c3c7eae55ab4ac01665e\",\n \"8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e\",\n \"8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e\",\n \"8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e\",\n \"5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30\",\n \"5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"af8dc3f7f7f77fbf7b\",\n \"7b3294c2a5cfa6dba0008837\",\n \"7b3294c2a5cff7f7f7a6dba0008837\",\n \"762a83af8dc3e7d4e8d9f0d37fbf7b1b7837\",\n \"762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837\",\n \"762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837\",\n \"762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837\",\n \"40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b\",\n \"40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e9a3c9f7f7f7a1d76a\",\n \"d01c8bf1b6dab8e1864dac26\",\n \"d01c8bf1b6daf7f7f7b8e1864dac26\",\n \"c51b7de9a3c9fde0efe6f5d0a1d76a4d9221\",\n \"c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221\",\n \"c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221\",\n \"c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221\",\n \"8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419\",\n \"8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"998ec3f7f7f7f1a340\",\n \"5e3c99b2abd2fdb863e66101\",\n \"5e3c99b2abd2f7f7f7fdb863e66101\",\n \"542788998ec3d8daebfee0b6f1a340b35806\",\n \"542788998ec3d8daebf7f7f7fee0b6f1a340b35806\",\n \"5427888073acb2abd2d8daebfee0b6fdb863e08214b35806\",\n \"5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806\",\n \"2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08\",\n \"2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62f7f7f767a9cf\",\n \"ca0020f4a58292c5de0571b0\",\n \"ca0020f4a582f7f7f792c5de0571b0\",\n \"b2182bef8a62fddbc7d1e5f067a9cf2166ac\",\n \"b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac\",\n \"b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac\",\n \"b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac\",\n \"67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061\",\n \"67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ef8a62ffffff999999\",\n \"ca0020f4a582bababa404040\",\n \"ca0020f4a582ffffffbababa404040\",\n \"b2182bef8a62fddbc7e0e0e09999994d4d4d\",\n \"b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d\",\n \"b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d\",\n \"b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d\",\n \"67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a\",\n \"67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91bfdb\",\n \"d7191cfdae61abd9e92c7bb6\",\n \"d7191cfdae61ffffbfabd9e92c7bb6\",\n \"d73027fc8d59fee090e0f3f891bfdb4575b4\",\n \"d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4\",\n \"d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4\",\n \"d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4\",\n \"a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695\",\n \"a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf91cf60\",\n \"d7191cfdae61a6d96a1a9641\",\n \"d7191cfdae61ffffbfa6d96a1a9641\",\n \"d73027fc8d59fee08bd9ef8b91cf601a9850\",\n \"d73027fc8d59fee08bffffbfd9ef8b91cf601a9850\",\n \"d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850\",\n \"d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850\",\n \"a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837\",\n \"a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fc8d59ffffbf99d594\",\n \"d7191cfdae61abdda42b83ba\",\n \"d7191cfdae61ffffbfabdda42b83ba\",\n \"d53e4ffc8d59fee08be6f59899d5943288bd\",\n \"d53e4ffc8d59fee08bffffbfe6f59899d5943288bd\",\n \"d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd\",\n \"d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd\",\n \"9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2\",\n \"9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2\"\n).map(colors);\n\nexport default ramp(scheme);\n","import {interpolateRgbBasis} from \"d3-interpolate\";\n\nexport default function(scheme) {\n return interpolateRgbBasis(scheme[scheme.length - 1]);\n}\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5f999d8c92ca25f\",\n \"edf8fbb2e2e266c2a4238b45\",\n \"edf8fbb2e2e266c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a42ca25f006d2c\",\n \"edf8fbccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824\",\n \"f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0ecf49ebcda8856a7\",\n \"edf8fbb3cde38c96c688419d\",\n \"edf8fbb3cde38c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68856a7810f7c\",\n \"edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b\",\n \"f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e0f3dba8ddb543a2ca\",\n \"f0f9e8bae4bc7bccc42b8cbe\",\n \"f0f9e8bae4bc7bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc443a2ca0868ac\",\n \"f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e\",\n \"f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee8c8fdbb84e34a33\",\n \"fef0d9fdcc8afc8d59d7301f\",\n \"fef0d9fdcc8afc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59e34a33b30000\",\n \"fef0d9fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000\",\n \"fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece7f2a6bddb2b8cbe\",\n \"f1eef6bdc9e174a9cf0570b0\",\n \"f1eef6bdc9e174a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d\",\n \"f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b\",\n \"fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ece2f0a6bddb1c9099\",\n \"f6eff7bdc9e167a9cf02818a\",\n \"f6eff7bdc9e167a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf1c9099016c59\",\n \"f6eff7d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450\",\n \"fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e7e1efc994c7dd1c77\",\n \"f1eef6d7b5d8df65b0ce1256\",\n \"f1eef6d7b5d8df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0dd1c77980043\",\n \"f1eef6d4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f\",\n \"f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fde0ddfa9fb5c51b8a\",\n \"feebe2fbb4b9f768a1ae017e\",\n \"feebe2fbb4b9f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1c51b8a7a0177\",\n \"feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177\",\n \"fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f7fcb9addd8e31a354\",\n \"ffffccc2e69978c679238443\",\n \"ffffccc2e69978c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67931a354006837\",\n \"ffffccd9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32\",\n \"ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"edf8b17fcdbb2c7fb8\",\n \"ffffcca1dab441b6c4225ea8\",\n \"ffffcca1dab441b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c42c7fb8253494\",\n \"ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84\",\n \"ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fff7bcfec44fd95f0e\",\n \"ffffd4fed98efe9929cc4c02\",\n \"ffffd4fed98efe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929d95f0e993404\",\n \"ffffd4fee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04\",\n \"ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"ffeda0feb24cf03b20\",\n \"ffffb2fecc5cfd8d3ce31a1c\",\n \"ffffb2fecc5cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cf03b20bd0026\",\n \"ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026\",\n \"ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026\"\n).map(colors);\n\nexport default ramp(scheme);\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport default interpolateCubehelixLong(cubehelix(300, 0.5, 0.0), cubehelix(-240, 0.5, 1.0));\n","import {cubehelix} from \"d3-color\";\nimport {interpolateCubehelixLong} from \"d3-interpolate\";\n\nexport var warm = interpolateCubehelixLong(cubehelix(-100, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nexport var cool = interpolateCubehelixLong(cubehelix(260, 0.75, 0.35), cubehelix(80, 1.50, 0.8));\n\nvar c = cubehelix();\n\nexport default function(t) {\n if (t < 0 || t > 1) t -= Math.floor(t);\n var ts = Math.abs(t - 0.5);\n c.h = 360 * t - 100;\n c.s = 1.5 - 1.5 * ts;\n c.l = 0.8 - 0.9 * ts;\n return c + \"\";\n}\n","import {rgb} from \"d3-color\";\n\nvar c = rgb(),\n pi_1_3 = Math.PI / 3,\n pi_2_3 = Math.PI * 2 / 3;\n\nexport default function(t) {\n var x;\n t = (0.5 - t) * Math.PI;\n c.r = 255 * (x = Math.sin(t)) * x;\n c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;\n c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;\n return c + \"\";\n}\n","import colors from \"../colors.js\";\n\nfunction ramp(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n\nexport default ramp(colors(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\"));\n\nexport var magma = ramp(colors(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\"));\n\nexport var inferno = ramp(colors(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\"));\n\nexport var plasma = ramp(colors(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\"));\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"deebf79ecae13182bd\",\n \"eff3ffbdd7e76baed62171b5\",\n \"eff3ffbdd7e76baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed63182bd08519c\",\n \"eff3ffc6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594\",\n \"f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"e5f5e0a1d99b31a354\",\n \"edf8e9bae4b374c476238b45\",\n \"edf8e9bae4b374c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47631a354006d2c\",\n \"edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32\",\n \"f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"f0f0f0bdbdbd636363\",\n \"f7f7f7cccccc969696525252\",\n \"f7f7f7cccccc969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696636363252525\",\n \"f7f7f7d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525\",\n \"fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee6cefdae6be6550d\",\n \"feeddefdbe85fd8d3cd94701\",\n \"feeddefdbe85fd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3ce6550da63603\",\n \"feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04\",\n \"fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"efedf5bcbddc756bb1\",\n \"f2f0f7cbc9e29e9ac86a51a3\",\n \"f2f0f7cbc9e29e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8756bb154278f\",\n \"f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486\",\n \"fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import colors from \"../colors.js\";\nimport ramp from \"../ramp.js\";\n\nexport var scheme = new Array(3).concat(\n \"fee0d2fc9272de2d26\",\n \"fee5d9fcae91fb6a4acb181d\",\n \"fee5d9fcae91fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4ade2d26a50f15\",\n \"fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d\",\n \"fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d\"\n).map(colors);\n\nexport default ramp(scheme);\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","var dateLongFormatter = function (pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function (pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function (pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\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 * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\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 is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return ((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode()).activeElement || document.activeElement;\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date && compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\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","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/**\n * 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\nexport default eq;\n","import eq from './eq.js';\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\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\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\nexport default ListCache;\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\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheSet;\n","import coreJsData from './_coreJsData.js';\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\nexport default isMasked;\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\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\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\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\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\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\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\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\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\nexport default getNative;\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\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\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\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default 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\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashSet;\n","import isKeyable from './_isKeyable.js';\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\nexport default getMapData;\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\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\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\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\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\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\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\nexport default Stack;\n","import ListCache from './_ListCache.js';\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\nexport default 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\nexport default 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\nexport default 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\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\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\nexport default stackSet;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** 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\nexport default 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\nexport default isArray;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\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\nexport default isBuffer;\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\nexport default stubFalse;\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\nexport default isIndex;\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\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsTypedArray;\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\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\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\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\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\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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\nexport default arrayLikeKeys;\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\nexport default baseTimes;\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\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * 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\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\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\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import root from './_root.js';\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 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\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\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\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\nexport default getSymbols;\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\nexport default arrayFilter;\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\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\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 and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\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\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\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\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\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\nexport default getTag;\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 * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\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 * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\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/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\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 supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import { Children, createContext, useContext, useRef, useEffect, useReducer, useCallback, useMemo, useImperativeHandle, createElement, useLayoutEffect, forwardRef, Component } from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport clone from 'lodash-es/clone';\nimport toPath from 'lodash-es/toPath';\nimport invariant from 'tiny-warning';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/** @private is the value an empty array? */\n\nvar isEmptyArray = function isEmptyArray(value) {\n return Array.isArray(value) && value.length === 0;\n};\n/** @private is the given object a Function? */\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n/** @private is the given object an Object? */\n\nvar isObject = function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n};\n/** @private is the given object an integer? */\n\nvar isInteger = function isInteger(obj) {\n return String(Math.floor(Number(obj))) === obj;\n};\n/** @private is the given object a string? */\n\nvar isString = function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n};\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\n\nvar isNaN$1 = function isNaN(obj) {\n return obj !== obj;\n};\n/** @private Does a React component have exactly 0 children? */\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return Children.count(children) === 0;\n};\n/** @private is the given object/value a promise? */\n\nvar isPromise = function isPromise(value) {\n return isObject(value) && isFunction(value.then);\n};\n/** @private is the given object/value a type of synthetic event? */\n\nvar isInputEvent = function isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n};\n/**\r\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\r\n * not safe to call document.activeElement if there is nothing focused.\r\n *\r\n * The activeElement will be null only if the document or document body is not\r\n * yet defined.\r\n *\r\n * @param {?Document} doc Defaults to current document.\r\n * @return {Element | null}\r\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\r\n */\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n/**\r\n * Deeply get a value from an object via its path.\r\n */\n\nfunction getIn(obj, key, def, p) {\n if (p === void 0) {\n p = 0;\n }\n\n var path = toPath(key);\n\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n\n return obj === undefined ? def : obj;\n}\n/**\r\n * Deeply set a value from in object via it's path. If the value at `path`\r\n * has changed, return a shallow copy of obj with `value` set at `path`.\r\n * If `value` has not changed, return the original `obj`.\r\n *\r\n * Existing objects / arrays along `path` are also shallow copied. Sibling\r\n * objects along path retain the same internal js reference. Since new\r\n * objects / arrays are only created along `path`, we can test if anything\r\n * changed in a nested structure by comparing the object's reference in\r\n * the old and new object, similar to how russian doll cache invalidation\r\n * works.\r\n *\r\n * In earlier versions of this function, which used cloneDeep, there were\r\n * issues whereby settings a nested value would mutate the parent\r\n * instead of creating a new object. `clone` avoids that bug making a\r\n * shallow copy of the objects along the update path\r\n * so no object is mutated in place.\r\n *\r\n * Before changing this function, please read through the following\r\n * discussions.\r\n *\r\n * @see https://github.com/developit/linkstate\r\n * @see https://github.com/jaredpalmer/formik/pull/123\r\n */\n\nfunction setIn(obj, path, value) {\n var res = clone(obj); // this keeps inheritance when obj is a class\n\n var resVal = res;\n var i = 0;\n var pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n var currentPath = pathArray[i];\n var currentObj = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n var nextPath = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n } // Return original object if new value is the same as current\n\n\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n } // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n\n\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n/**\r\n * Recursively a set the same value for all keys and arrays nested object, cloning\r\n * @param object\r\n * @param value\r\n * @param visited\r\n * @param response\r\n */\n\nfunction setNestedObjectValues(object, value, visited, response) {\n if (visited === void 0) {\n visited = new WeakMap();\n }\n\n if (response === void 0) {\n response = {};\n }\n\n for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n var val = object[k];\n\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true); // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n\nvar FormikContext = /*#__PURE__*/createContext(undefined);\nFormikContext.displayName = 'FormikContext';\nvar FormikProvider = FormikContext.Provider;\nvar FormikConsumer = FormikContext.Consumer;\nfunction useFormikContext() {\n var formik = useContext(FormikContext);\n !!!formik ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Formik context is undefined, please verify you are calling useFormikContext() as child of a component.\") : invariant(false) : void 0;\n return formik;\n}\n\nfunction formikReducer(state, msg) {\n switch (msg.type) {\n case 'SET_VALUES':\n return _extends({}, state, {\n values: msg.payload\n });\n\n case 'SET_TOUCHED':\n return _extends({}, state, {\n touched: msg.payload\n });\n\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return _extends({}, state, {\n errors: msg.payload\n });\n\n case 'SET_STATUS':\n return _extends({}, state, {\n status: msg.payload\n });\n\n case 'SET_ISSUBMITTING':\n return _extends({}, state, {\n isSubmitting: msg.payload\n });\n\n case 'SET_ISVALIDATING':\n return _extends({}, state, {\n isValidating: msg.payload\n });\n\n case 'SET_FIELD_VALUE':\n return _extends({}, state, {\n values: setIn(state.values, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_TOUCHED':\n return _extends({}, state, {\n touched: setIn(state.touched, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_ERROR':\n return _extends({}, state, {\n errors: setIn(state.errors, msg.payload.field, msg.payload.value)\n });\n\n case 'RESET_FORM':\n return _extends({}, state, msg.payload);\n\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n\n case 'SUBMIT_ATTEMPT':\n return _extends({}, state, {\n touched: setNestedObjectValues(state.values, true),\n isSubmitting: true,\n submitCount: state.submitCount + 1\n });\n\n case 'SUBMIT_FAILURE':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n case 'SUBMIT_SUCCESS':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n default:\n return state;\n }\n} // Initial empty states // objects\n\n\nvar emptyErrors = {};\nvar emptyTouched = {};\nfunction useFormik(_ref) {\n var _ref$validateOnChange = _ref.validateOnChange,\n validateOnChange = _ref$validateOnChange === void 0 ? true : _ref$validateOnChange,\n _ref$validateOnBlur = _ref.validateOnBlur,\n validateOnBlur = _ref$validateOnBlur === void 0 ? true : _ref$validateOnBlur,\n _ref$validateOnMount = _ref.validateOnMount,\n validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,\n isInitialValid = _ref.isInitialValid,\n _ref$enableReinitiali = _ref.enableReinitialize,\n enableReinitialize = _ref$enableReinitiali === void 0 ? false : _ref$enableReinitiali,\n onSubmit = _ref.onSubmit,\n rest = _objectWithoutPropertiesLoose(_ref, [\"validateOnChange\", \"validateOnBlur\", \"validateOnMount\", \"isInitialValid\", \"enableReinitialize\", \"onSubmit\"]);\n\n var props = _extends({\n validateOnChange: validateOnChange,\n validateOnBlur: validateOnBlur,\n validateOnMount: validateOnMount,\n onSubmit: onSubmit\n }, rest);\n\n var initialValues = useRef(props.initialValues);\n var initialErrors = useRef(props.initialErrors || emptyErrors);\n var initialTouched = useRef(props.initialTouched || emptyTouched);\n var initialStatus = useRef(props.initialStatus);\n var isMounted = useRef(false);\n var fieldRegistry = useRef({});\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n !(typeof isInitialValid === 'undefined') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.') : invariant(false) : void 0; // eslint-disable-next-line\n }, []);\n }\n\n useEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n\n var _React$useReducer = useReducer(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0\n }),\n state = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n var runValidateHandler = useCallback(function (values, field) {\n return new Promise(function (resolve, reject) {\n var maybePromisedErrors = props.validate(values, field);\n\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n maybePromisedErrors.then(function (errors) {\n resolve(errors || emptyErrors);\n }, function (actualException) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Warning: An unhandled error was caught during validation in \", actualException);\n }\n\n reject(actualException);\n });\n } else {\n resolve(maybePromisedErrors);\n }\n });\n }, [props.validate]);\n /**\r\n * Run validation against a Yup schema and optionally run a function if successful\r\n */\n\n var runValidationSchema = useCallback(function (values, field) {\n var validationSchema = props.validationSchema;\n var schema = isFunction(validationSchema) ? validationSchema(field) : validationSchema;\n var promise = field && schema.validateAt ? schema.validateAt(field, values) : validateYupSchema(values, schema);\n return new Promise(function (resolve, reject) {\n promise.then(function () {\n resolve(emptyErrors);\n }, function (err) {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Warning: An unhandled error was caught during validation in \", err);\n }\n\n reject(err);\n }\n });\n });\n }, [props.validationSchema]);\n var runSingleFieldLevelValidation = useCallback(function (field, value) {\n return new Promise(function (resolve) {\n return resolve(fieldRegistry.current[field].validate(value));\n });\n }, []);\n var runFieldLevelValidations = useCallback(function (values) {\n var fieldKeysWithValidation = Object.keys(fieldRegistry.current).filter(function (f) {\n return isFunction(fieldRegistry.current[f].validate);\n }); // Construct an array with all of the field validation functions\n\n var fieldValidations = fieldKeysWithValidation.length > 0 ? fieldKeysWithValidation.map(function (f) {\n return runSingleFieldLevelValidation(f, getIn(values, f));\n }) : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then(function (fieldErrorsList) {\n return fieldErrorsList.reduce(function (prev, curr, index) {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n\n return prev;\n }, {});\n });\n }, [runSingleFieldLevelValidation]); // Run all validations and return the result\n\n var runAllValidations = useCallback(function (values) {\n return Promise.all([runFieldLevelValidations(values), props.validationSchema ? runValidationSchema(values) : {}, props.validate ? runValidateHandler(values) : {}]).then(function (_ref2) {\n var fieldErrors = _ref2[0],\n schemaErrors = _ref2[1],\n validateErrors = _ref2[2];\n var combinedErrors = deepmerge.all([fieldErrors, schemaErrors, validateErrors], {\n arrayMerge: arrayMerge\n });\n return combinedErrors;\n });\n }, [props.validate, props.validationSchema, runFieldLevelValidations, runValidateHandler, runValidationSchema]); // Run all validations methods and update state accordingly\n\n var validateFormWithHighPriority = useEventCallback(function (values) {\n if (values === void 0) {\n values = state.values;\n }\n\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runAllValidations(values).then(function (combinedErrors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n dispatch({\n type: 'SET_ERRORS',\n payload: combinedErrors\n });\n }\n\n return combinedErrors;\n });\n });\n useEffect(function () {\n if (validateOnMount && isMounted.current === true && isEqual(initialValues.current, props.initialValues)) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n var resetForm = useCallback(function (nextState) {\n var values = nextState && nextState.values ? nextState.values : initialValues.current;\n var errors = nextState && nextState.errors ? nextState.errors : initialErrors.current ? initialErrors.current : props.initialErrors || {};\n var touched = nextState && nextState.touched ? nextState.touched : initialTouched.current ? initialTouched.current : props.initialTouched || {};\n var status = nextState && nextState.status ? nextState.status : initialStatus.current ? initialStatus.current : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n var dispatchFn = function dispatchFn() {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors: errors,\n touched: touched,\n status: status,\n values: values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount: !!nextState && !!nextState.submitCount && typeof nextState.submitCount === 'number' ? nextState.submitCount : 0\n }\n });\n };\n\n if (props.onReset) {\n var maybePromisedOnReset = props.onReset(state.values, imperativeMethods);\n\n if (isPromise(maybePromisedOnReset)) {\n maybePromisedOnReset.then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n }, [props.initialErrors, props.initialStatus, props.initialTouched]);\n useEffect(function () {\n if (isMounted.current === true && !isEqual(initialValues.current, props.initialValues)) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [enableReinitialize, props.initialValues, resetForm, validateOnMount, validateFormWithHighPriority]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialErrors.current, props.initialErrors)) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialTouched.current, props.initialTouched)) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialStatus.current, props.initialStatus)) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n var validateField = useEventCallback(function (name) {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n if (fieldRegistry.current[name] && isFunction(fieldRegistry.current[name].validate)) {\n var value = getIn(state.values, name);\n var maybePromise = fieldRegistry.current[name].validate(value);\n\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return maybePromise.then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise\n }\n });\n return Promise.resolve(maybePromise);\n }\n } else if (props.validationSchema) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runValidationSchema(state.values, name).then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error[name]\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n }\n\n return Promise.resolve();\n });\n var registerField = useCallback(function (name, _ref3) {\n var validate = _ref3.validate;\n fieldRegistry.current[name] = {\n validate: validate\n };\n }, []);\n var unregisterField = useCallback(function (name) {\n delete fieldRegistry.current[name];\n }, []);\n var setTouched = useEventCallback(function (touched, shouldValidate) {\n dispatch({\n type: 'SET_TOUCHED',\n payload: touched\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var setErrors = useCallback(function (errors) {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors\n });\n }, []);\n var setValues = useEventCallback(function (values, shouldValidate) {\n var resolvedValues = isFunction(values) ? values(state.values) : values;\n dispatch({\n type: 'SET_VALUES',\n payload: resolvedValues\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(resolvedValues) : Promise.resolve();\n });\n var setFieldError = useCallback(function (field, value) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: field,\n value: value\n }\n });\n }, []);\n var setFieldValue = useEventCallback(function (field, value, shouldValidate) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: field,\n value: value\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(setIn(state.values, field, value)) : Promise.resolve();\n });\n var executeChange = useCallback(function (eventOrTextValue, maybePath) {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n var field = maybePath;\n var val = eventOrTextValue;\n var parsed; // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if (eventOrTextValue.persist) {\n eventOrTextValue.persist();\n }\n\n var target = eventOrTextValue.target ? eventOrTextValue.target : eventOrTextValue.currentTarget;\n var type = target.type,\n name = target.name,\n id = target.id,\n value = target.value,\n checked = target.checked,\n outerHTML = target.outerHTML,\n options = target.options,\n multiple = target.multiple;\n field = maybePath ? maybePath : name ? name : id;\n\n if (!field && process.env.NODE_ENV !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange'\n });\n }\n\n val = /number|range/.test(type) ? (parsed = parseFloat(value), isNaN(parsed) ? '' : parsed) : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field), checked, value) : options && multiple // \" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"