{"version":3,"sources":["webpack://crc/webpack/bootstrap","webpack://crc/./node_modules/@paypal/sdk-constants/src/funding.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/locale.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/order.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/params.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/defaults.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/env.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/fpti.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/observability.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/platform.js","webpack://crc/./node_modules/@krakenjs/belter/src/device.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://crc/./node_modules/@krakenjs/belter/src/constants.js","webpack://crc/./node_modules/@krakenjs/belter/src/util.js","webpack://crc/./node_modules/@krakenjs/belter/src/dom.js","webpack://crc/./node_modules/@krakenjs/belter/src/storage.js","webpack://crc/./node_modules/@krakenjs/belter/src/experiment.js","webpack://crc/./node_modules/@krakenjs/belter/src/http.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/utils.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/exceptions.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/flush.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/promise.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://crc/./node_modules/@krakenjs/cross-domain-utils/src/constants.js","webpack://crc/./node_modules/@krakenjs/cross-domain-utils/src/utils.js","webpack://crc/./node_modules/core-js-pure/internals/fails.js","webpack://crc/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://crc/./node_modules/core-js-pure/internals/is-callable.js","webpack://crc/./src/utils/constants.js","webpack://crc/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://crc/./node_modules/@paypal/sdk-client/src/config.js","webpack://crc/./node_modules/@paypal/sdk-client/src/script.js","webpack://crc/./node_modules/@paypal/sdk-client/src/global.js","webpack://crc/./node_modules/@paypal/sdk-client/src/logger.js","webpack://crc/./node_modules/@paypal/sdk-client/src/domains.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://crc/./node_modules/@paypal/sdk-client/src/constants.js","webpack://crc/./node_modules/@paypal/sdk-client/src/fraudnet.js","webpack://crc/./node_modules/@paypal/sdk-client/src/api.js","webpack://crc/./node_modules/@paypal/sdk-client/src/events.js","webpack://crc/./node_modules/@paypal/sdk-client/src/dpop.js","webpack://crc/./src/utils/sdk.js","webpack://crc/./node_modules/core-js-pure/internals/global.js","webpack://crc/./node_modules/core-js-pure/internals/descriptors.js","webpack://crc/./node_modules/core-js-pure/internals/export.js","webpack://crc/./src/utils/functional.js","webpack://crc/./node_modules/core-js-pure/internals/is-object.js","webpack://crc/./node_modules/core-js-pure/stable/array/includes.js","webpack://crc/./node_modules/core-js-pure/stable/object/entries.js","webpack://crc/./node_modules/core-js-pure/internals/function-call.js","webpack://crc/./node_modules/core-js-pure/internals/has-own-property.js","webpack://crc/./node_modules/core-js-pure/stable/array/from.js","webpack://crc/./node_modules/core-js-pure/stable/array/find.js","webpack://crc/./node_modules/core-js-pure/internals/an-object.js","webpack://crc/./node_modules/@krakenjs/cross-domain-safe-weakmap/src/util.js","webpack://crc/./node_modules/@krakenjs/cross-domain-safe-weakmap/src/weakmap.js","webpack://crc/./node_modules/@krakenjs/cross-domain-safe-weakmap/src/native.js","webpack://crc/./node_modules/core-js-pure/internals/to-object.js","webpack://crc/./node_modules/core-js-pure/internals/classof-raw.js","webpack://crc/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://crc/./node_modules/core-js-pure/internals/path.js","webpack://crc/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://crc/./node_modules/core-js-pure/internals/object-define-property.js","webpack://crc/./node_modules/core-js-pure/internals/length-of-array-like.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://crc/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://crc/./node_modules/core-js-pure/internals/a-callable.js","webpack://crc/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://crc/./node_modules/core-js-pure/internals/entry-unbind.js","webpack://crc/./node_modules/core-js-pure/internals/iterators.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://crc/./src/utils/debug.js","webpack://crc/./node_modules/core-js-pure/internals/get-built-in.js","webpack://crc/./node_modules/core-js-pure/internals/is-pure.js","webpack://crc/./node_modules/core-js-pure/internals/classof.js","webpack://crc/./src/utils/objects.js","webpack://crc/./src/utils/elements.js","webpack://crc/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://crc/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://crc/./node_modules/core-js-pure/internals/to-string.js","webpack://crc/./node_modules/core-js-pure/stable/string/starts-with.js","webpack://crc/./node_modules/core-js-pure/internals/is-null-or-undefined.js","webpack://crc/./node_modules/core-js-pure/internals/object-keys.js","webpack://crc/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://crc/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://crc/./src/utils/miscellaneous.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/constants.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/config.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/util.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/logger.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/http.js","webpack://crc/./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","webpack://crc/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://crc/./node_modules/core-js-pure/internals/indexed-object.js","webpack://crc/./node_modules/core-js-pure/internals/to-property-key.js","webpack://crc/./node_modules/core-js-pure/internals/get-method.js","webpack://crc/./node_modules/core-js-pure/internals/shared-store.js","webpack://crc/./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack://crc/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://crc/./node_modules/core-js-pure/internals/shared-key.js","webpack://crc/./node_modules/core-js-pure/stable/object/assign.js","webpack://crc/./node_modules/core-js-pure/stable/string/includes.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/node.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/constants.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/renderers/dom.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/util.js","webpack://crc/./node_modules/core-js-pure/internals/try-to-string.js","webpack://crc/./node_modules/core-js-pure/internals/uid.js","webpack://crc/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://crc/./node_modules/core-js-pure/internals/internal-state.js","webpack://crc/./node_modules/core-js-pure/internals/object-create.js","webpack://crc/./node_modules/core-js-pure/internals/define-built-in.js","webpack://crc/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://crc/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://crc/./node_modules/core-js-pure/internals/document-all.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://crc/./node_modules/core-js-pure/internals/is-symbol.js","webpack://crc/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://crc/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://crc/./node_modules/core-js-pure/internals/symbol-constructor-detection.js","webpack://crc/./node_modules/core-js-pure/internals/shared.js","webpack://crc/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://crc/./node_modules/core-js-pure/internals/document-create-element.js","webpack://crc/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://crc/./node_modules/core-js-pure/internals/array-includes.js","webpack://crc/./node_modules/core-js-pure/internals/to-length.js","webpack://crc/./node_modules/core-js-pure/internals/array-species-create.js","webpack://crc/./node_modules/core-js-pure/internals/is-array.js","webpack://crc/./node_modules/core-js-pure/internals/is-constructor.js","webpack://crc/./node_modules/core-js-pure/internals/not-a-regexp.js","webpack://crc/./node_modules/core-js-pure/internals/correct-is-regexp-logic.js","webpack://crc/./node_modules/core-js-pure/internals/iterator-define.js","webpack://crc/./node_modules/core-js-pure/internals/iterators-core.js","webpack://crc/./node_modules/core-js-pure/internals/create-iter-result-object.js","webpack://crc/./node_modules/core-js-pure/stable/array/flat-map.js","webpack://crc/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://crc/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://crc/./node_modules/core-js-pure/internals/array-iteration.js","webpack://crc/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://crc/./node_modules/core-js-pure/internals/iterator-close.js","webpack://crc/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://crc/./node_modules/core-js-pure/internals/create-property.js","webpack://crc/./node_modules/core-js-pure/internals/get-iterator.js","webpack://crc/./node_modules/core-js-pure/es/object/assign.js","webpack://crc/./node_modules/core-js-pure/modules/es.object.assign.js","webpack://crc/./node_modules/core-js-pure/internals/function-apply.js","webpack://crc/./node_modules/core-js-pure/internals/to-primitive.js","webpack://crc/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://crc/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://crc/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://crc/./node_modules/core-js-pure/internals/define-global-property.js","webpack://crc/./node_modules/core-js-pure/internals/is-forced.js","webpack://crc/./node_modules/core-js-pure/internals/object-assign.js","webpack://crc/./node_modules/core-js-pure/internals/math-trunc.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://crc/./node_modules/core-js-pure/es/array/find.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.find.js","webpack://crc/./node_modules/core-js-pure/internals/array-species-constructor.js","webpack://crc/./node_modules/core-js-pure/internals/inspect-source.js","webpack://crc/./node_modules/core-js-pure/es/array/includes.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.includes.js","webpack://crc/./node_modules/core-js-pure/es/string/includes.js","webpack://crc/./node_modules/core-js-pure/modules/es.string.includes.js","webpack://crc/./node_modules/core-js-pure/internals/is-regexp.js","webpack://crc/./node_modules/core-js-pure/es/object/entries.js","webpack://crc/./node_modules/core-js-pure/modules/es.object.entries.js","webpack://crc/./node_modules/core-js-pure/internals/object-to-array.js","webpack://crc/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://crc/./node_modules/core-js-pure/es/array/from.js","webpack://crc/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://crc/./node_modules/core-js-pure/internals/weak-map-basic-detection.js","webpack://crc/./node_modules/core-js-pure/internals/function-name.js","webpack://crc/./node_modules/core-js-pure/internals/iterator-create-constructor.js","webpack://crc/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://crc/./node_modules/core-js-pure/internals/html.js","webpack://crc/./node_modules/core-js-pure/internals/object-to-string.js","webpack://crc/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://crc/./node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","webpack://crc/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.from.js","webpack://crc/./node_modules/core-js-pure/internals/array-from.js","webpack://crc/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://crc/./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack://crc/./node_modules/core-js-pure/es/string/starts-with.js","webpack://crc/./node_modules/core-js-pure/modules/es.string.starts-with.js","webpack://crc/./node_modules/core-js-pure/es/array/flat-map.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.flat-map.js","webpack://crc/./node_modules/core-js-pure/internals/flatten-into-array.js","webpack://crc/./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js","webpack://crc/./src/utils/activeTags.js","webpack://crc/./src/utils/performance.js","webpack://crc/./src/components/message/index.js","webpack://crc/./src/components/message/Message.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","hasOwnProperty","p","s","COUNTRY","AD","AE","AG","AI","AL","AM","AN","AO","AR","AT","AU","AW","AZ","BA","BB","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CG","CH","CI","CK","CL","CM","CN","CO","CR","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GI","GL","GM","GN","GP","GR","GT","GW","GY","HK","HN","HR","HU","ID","IE","IL","IN","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LC","LI","LK","LS","LT","LU","LV","MA","MC","MD","ME","MG","MH","MK","ML","MN","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PL","PM","PN","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SZ","TC","TD","TG","TH","TJ","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","VA","VC","VE","VG","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","LANG","CS","DA","EL","EN","HE","JA","KO","SQ","TL","VI","ZH","ZH_HANT","COUNTRY_LANGS","INTENT","CAPTURE","AUTHORIZE","ORDER","TOKENIZE","SUBSCRIPTION","SDK_SETTINGS","AMOUNT","API_STAGE_HOST","CLIENT_METADATA_ID","CLIENT_TOKEN","CSP_NONCE","ENABLE_3DS","JS_SDK_LIBRARY","MERCHANT_ID","NAMESPACE","PAGE_TYPE","PARTNER_ATTRIBUTION_ID","POPUPS_DISABLED","SDK_INTEGRATION_SOURCE","SDK_TOKEN","SHOPPER_SESSION_ID","STAGE_HOST","USER_EXPERIENCE_FLOW","USER_ID_TOKEN","SDK_DATA_ATTRIBUTES","SDK_QUERY_KEYS","COMPONENTS","ENV","DEBUG","CACHEBUST","CLIENT_ID","LOCALE","CURRENCY","COMMIT","VAULT","BUYER_COUNTRY","ENABLE_FUNDING","DISABLE_FUNDING","DISABLE_CARD","INTEGRATION_DATE","STAGE_ALIAS","CDN_REGISTRY","VERSION","QUERY_BOOL","TRUE","FALSE","UNKNOWN","PROTOCOL","HTTP","HTTPS","PAGE_TYPES","HOME","PRODUCT","CART","CHECKOUT","PRODUCT_LISTING","SEARCH_RESULTS","PRODUCT_DETAILS","MINI_CART","DEFAULT_CURRENCY","DEFAULT_INTENT","DEFAULT_SALE_COMMIT","DEFAULT_NONSALE_COMMIT","DEFAULT_VAULT","LOCAL","STAGE","SANDBOX","PRODUCTION","TEST","FPTI_KEY","BUTTON_LAYOUT","BUTTON_MESSAGE_AMOUNT","BUTTON_MESSAGE_CREDIT_PRODUCT_IDENTIFIER","BUTTON_MESSAGE_COLOR","BUTTON_MESSAGE_CURRENCY","BUTTON_MESSAGE_ALIGN","BUTTON_MESSAGE_POSITION","BUTTON_MESSAGE_OFFER_COUNTRY","BUTTON_MESSAGE_OFFER_TYPE","BUTTON_MESSAGE_TYPE","BUTTON_SESSION_UID","BUTTON_SOURCE","BUTTON_TYPE","BUTTON_VERSION","CHECKOUT_APP","CHOSEN_FI_TYPE","CHOSEN_FUNDING","CONTEXT_CORRID","CONTEXT_ID","CONTEXT_TYPE","CPL_CHUNK_METRICS","CPL_COMP_METRICS","CPL_QUERY_METRICS","DATA_SOURCE","ERROR_CODE","ERROR_DESC","EVENT_NAME","EXPERIMENT_EXPERIENCE","EXPERIMENT_NAME","EXPERIMENT_TREATMENT","FEED","FI_ID","FI_LIST","FIELDS_COMPONENT_SESSION_ID","FUNDING_COUNT","FUNDING_LIST","HOSTED_BUTTON_ID","INTEGRATION_IDENTIFIER","IS_VAULT","MERCHANT_DOMAIN","MOBILE_APP_VERSION","MOBILE_BUNDLE_IDENTIFIER","OPTION_SELECTED","PAGE","PAGE_LOAD_TIME","PAY_ID","PAY_NOW","PAYMENT_FLOW","POTENTIAL_PAYMENT_METHODS","RECOMMENDED_PAYMENT","REFERER","REFERRER_DOMAIN","RESPONSE_DURATION","SDK_CACHE","SDK_ENVIRONMENT","SDK_LOAD_TIME","SDK_NAME","SDK_VERSION","SELECTED_FI","SELLER_ID","SESSION_UID","STATE","STICKINESS_ID","TIMESTAMP","TOKEN","TRANSITION","TRANSITION_TIME","TREATMENT_NAME","USER_ACTION","USER_AGENT","USER_IDENTITY_METHOD","AVAILABLE_PAYMENT_NETWORKS","SELECTED_CARD_TYPE","FPTI_USER_ACTION","CONTINUE","FPTI_DATA_SOURCE","PAYMENTS_SDK","FPTI_FEED","FPTI_SDK_NAME","BASE_SDK_METRIC_NAMESPACE","payPalWebV5Dimensions","sdk_platform","major_version","PLATFORM","DESKTOP","MOBILE","getUserAgent","window","navigator","mockUserAgent","userAgent","isDevice","match","isIosWebview","ua","test","isIos","isGoogleSearchApp","isAndroidWebview","isAndroid","isOperaMini","isIE","document","documentMode","Boolean","isIEIntranet","status","err","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","prototype","toString","e","_construct","Parent","args","Class","isNativeReflectConstruct","a","push","apply","instance","Function","arguments","_wrapNativeSuper","_cache","Map","undefined","indexOf","TypeError","has","set","Wrapper","this","constructor","writable","configurable","objectIDs","ATTRIBUTES","UID","getFunctionName","fn","__name__","displayName","setFunctionName","base64encode","str","btoa","encodeURIComponent","replace","p1","String","fromCharCode","parseInt","Buffer","from","Error","base64decode","atob","decodeURIComponent","Array","map","charCodeAt","slice","join","uniqueID","chars","charAt","Math","floor","random","length","toISOString","toLowerCase","getGlobal","global","__GLOBAL__","serializeArgs","JSON","stringify","subkey","val","obj","WeakMap","uid","getObjectID","element","passed","Element","nodeType","style","ownerDocument","_","isElement","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","method","options","simpleCache","thisCache","_options$thisNamespac","thisNamespace","cacheTime","time","memoizeIndex","memoizedFunction","_len","_key","cache","cacheKey","getOrSet","_unused","cacheResult","now","reset","inlineMemoize","logic","__inline_memoize_cache__","noop","stringifyError","level","stack","message","newErr","stringifyErrorMessage","defaultMessage","values","result","objFilter","filter","promiseDebounce","delay","promise","timeout","clearTimeout","localPromise","ZalgoPromise","setTimeout","try","then","resolve","reject","safeInterval","loop","cancel","eventEmitter","triggered","handlers","emitter","on","eventName","handler","handlerList","cancelled","splice","once","listener","trigger","_len3","_key3","promises","_loop","_i2","all","triggerOnce","_len4","_key4","concat","debounce","_arguments3","_this3","clear","_ExtendableError","ExtendableError","_Error","_this6","captureStackTrace","_inheritsLoose","isDocumentReady","body","readyState","isDocumentInteractive","urlEncode","waitForWindowReady","addEventListener","parseQuery","queryString","params","_queryString$split2","split","pair","extendQuery","originalQuery","props","keys","_extends","extendUrl","url","originalUrl","originalHash","query","hash","_url$split","_originalUrl$split","hashString","getPerformance","performance","timing","connectEnd","navigationStart","abs","isBrowser","location","getScript","_ref","_ref$host","host","path","_ref$reverse","reverse","scripts","getElementsByTagName","_i4","script","src","isLocalStorageEnabled","localStorage","setItem","getItem","removeItem","getBrowserLocales","nav","locales","languages","language","userLanguage","locale","_locale$split","country","lang","destroyElement","parentNode","removeChild","getResourceLoadTime","getEntries","entries","entry","duration","interval","setInterval","clearInterval","currentScript","getCurrentScript","getStackTrace","stackDetails","exec","scriptLocation","_i22","_Array$prototype$slic2","inferCurrentScript","currentUID","getCurrentScriptUID","getAttribute","hashedString","total","strHashStr","dataset","setAttribute","getStorage","_ref$lifetime","lifetime","stickySessionId","accessedStorage","STORAGE_KEY","newStateID","getState","storage","localStorageEnabled","rawStorage","parse","id","getID","getSession","session","__session__","created","guid","isStateFresh","getSessionState","state","getSessionID","getBelterExperimentStorage","isEventUnique","loggedBeacons","getRandomInteger","range","experiment","group","_ref$sample","sample","_ref$logTreatment","logTreatment","_ref$logCheckpoint","logCheckpoint","_ref$sticky","sticky","throttle","throttlePercentiles","getThrottlePercentile","treatment","started","forced","exp","isEnabled","isDisabled","getTreatment","log","checkpoint","payload","logStart","logComplete","headerBuilders","request","_ref$method","_ref$headers","headers","json","data","_ref$win","win","_ref$timeout","normalizedHeaders","_Object$keys2","_i6","builtHeaders","headerBuilder","_i8","_Object$keys4","xhr","XMLHttpRequest","responseHeaders","rawHeaders","_rawHeaders$trim$spli2","trim","_line$split","parseHeaders","getAllResponseHeaders","contentType","isJSON","responseBody","responseText","evt","open","setRequestHeader","ontimeout","send","isPromise","item","Promise","Window","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","startActive","endActive","_this","resolved","rejected","errorHandled","error","dispatching","isAsync","res","_proto","dispatch","_this2","j","dispatchPossiblyUnhandledError","asyncReject","chain","firstPromise","secondPromise","_handlers$i","onSuccess","onError","promiseResult","catch","finally","onFinally","toPromise","lazy","count","results","prom","awaitPromises","items","onPossiblyUnhandledException","context","flush","assign","target","source","IE_WIN_ACCESS_ERROR","getActualProtocol","protocol","getProtocol","mockDomain","isAboutProtocol","canReadFromWindow","getActualDomain","parent","getParent","getDomain","domain","isSameDomain","desc","getOwnPropertyDescriptor","isMockProtocol","isActuallySameDomain","assertSameDomain","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","mockclosed","top","iframeIndex","collection","safeIndexOf","frame","contentWindow","doc","documentElement","contains","isFrameWindowClosed","linkFrameWindow","cleanIframes","isWindow","self","__cross_domain_utils_window_check__","isCurrentDomain","NATIVE_BIND","require","FunctionPrototype","uncurryThisWithBind","$documentAll","documentAll","IS_HTMLDDA","argument","OFFER","PAY_LATER_LONG_TERM","PAY_LATER_SHORT_TERM","PAY_LATER_PAY_IN_1","PAYPAL_CREDIT_NO_INTEREST","PAY_LATER","REWARDS","TAG","MESSAGE","MODAL","TREATEMENTS","shared","hasOwn","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","getSDKScript","errorString","buildScriptNotFoundError","__SDK_HOST__","__PATH__","_sdkScript$attributes2","attributes","attr","token","_JSON$parse$options","customer_id","getLogger","loggerUrl","__PAYPAL_DOMAIN__","Logger","metricNamespacePrefix","asyncGeneratorStep","gen","_next","_throw","arg","info","done","_asyncToGenerator","FRAUDNET_URL","_FRAUDNET_URL","_ref3","env","cspNonce","_ref3$queryStringPara","queryStringParams","_ref$cspNonce","clientMetadataID","appName","_document$body","config","f","io","cb1","sandbox","configScript","createElement","text","appendChild","createConfigScript","_collect","fraudnetPromise","_ref2","_ref2$queryStringPara","_document$body2","fraudnetScript","fraudnetUrl","fnCallback","createFraudnetScript","warn","collect","PAYPAL","asyncData","clientID","basicAuth","__PAYPAL_API_DOMAIN__","Authorization","grant_type","access_token","keyPair","_ref5","KEY_OPTIONS","alg","modulusLength","publicExponent","Uint8Array","extractable","sign","usages","generateKeyPair","_yield$window$crypto$","crypto","subtle","generateKey","publicKey","privateKey","stringToBytes","string","bytesToString","bytes","base64encodeUrlSafe","sha256","digest","binaryString","_x","jsonWebKeyThumbprint","jwk","crv","kty","x","y","_x2","createJWT","_ref4","accessToken","nonce","uri","exportKey","encodedHeader","typ","ath","cnf","jkt","htm","htu","iat","jti","randomUUID","encodedPayload","signature","_x3","_ref6","_yield$generateKeyPai","jwt","DPoP","getDisableSetCookie","getAccount","getPageType","getPartnerAccount","querySelector","getCurrency","getNamespace","_getScript","getLibraryVersion","__MESSAGES__","isZoidComponent","some","tag","startsWith","getBelterStorage","getOrCreateDeviceID","isScriptBeingDestroyed","getPayPalDomain","__ENV__","toUpperCase","check","it","globalThis","fails","uncurryThis","isCallable","isForced","createNonEnumerableProperty","wrapConstructor","NativeConstructor","b","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","descriptor","TARGET","GLOBAL","STATIC","stat","PROTO","proto","nativeSource","targetPrototype","dontCallGetSet","wrap","real","partial","_len2","intialArgs","_key2","nextArgs","curry","arity","curried","_len5","_key5","prop","toObject","isObject","$String","$TypeError","CrossDomainSafeWeakMap","weakmap","freeze","testWeakMap","testKey","hasNativeWeakMap","_cleanupClosedWindows","delete","isSafeToReadWrite","index","requireObjectCoercible","$Object","stringSlice","IndexedObject","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","O","P","Attributes","current","toLength","_setPrototypeOf","_objectWithoutPropertiesLoose","excluded","sourceKeys","isNullOrUndefined","tryToString","aCallable","that","getBuiltIn","subClass","superClass","ppDebug","_temp","inZoid","debugObj","search","console","aFunction","variable","namespace","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","CORRECT_ARGUMENTS","tryGet","callee","objectClone","objectEntries","reduce","accumulator","_extends9","_extends7","_extends8","isArray","objectMerge","deepMerge","targetObject","mergingObject","_extends13","_extends10","_extends11","_extends12","flattenedToObject","option","attributeValue","delimiter","firstIndex","getWindowFromElement","node","_node$ownerDocument","defaultView","el","HTMLElement","nodeName","getInlineOptions","container","attributeNameOverride","buyercountry","merchantid","cspnonce","ectoken","contextualcomponents","customerid","fontfamily","fontsource","onclick","onapply","onrender","pagetype","inlineEventHandlers","dataOptions","arrayFrom","stringStartsWith","nodeValue","_attributeNameOverrid","attributeName","arrayIncludes","getOptionValue","firstElementChild","tagName","markup","textContent","prefix","className","getElementsByClassName","elem","insertBefore","firstChild","forEach","span","innerHTML","appendImage","alt","srcset","logo","Image","_url$dimensions","dimensions","width","height","svgWrapper","canvas","elementContains","parentEl","childEl","Node","ELEMENT_NODE","parentBounds","left","bottom","innerHeight","right","innerWidth","getBoundingClientRect","childBounds","elementOutside","getRoot","baseElement","elementWindow","domPath","_el","offsetHeight","biggestEl","computedRoot","arrayFind","elements","_elements","child","root","bitmap","classof","internalObjectKeys","enumBugKeys","createState","initialState","objectAssign","withCredentials","xhttp","onreadystatechange","header","_extends2","_header$trim$split","stringIncludes","parseObjFromEncoding","encodedStr","binary","decodedStr","Uint16Array","buffer","dynamicImport","getCurrentTime","getTime","getEventListenerPassiveOptionIfSupported","viewport","content","render","dom","head","_viewport$getAttribut","_document$body$style$","_document$body$style$2","__pp_prev_content__","__pp_prev_overflow__","overflow","__pp_prev_msOverflowStyle__","msOverflowStyle","setProperty","passiveIfSupported","passive","getTsCookieFromStorage","_getStorage$getState","_document$cookie$spli","_document$cookie$spli2","cookieVal","ts","cookie","find","cookieStr","fromEntries","URLSearchParams","LOG_LEVEL","INFO","WARN","ERROR","AUTO_FLUSH_LEVEL","LOG_LEVEL_PRIORITY","DEFAULT_LOG_LEVEL","extendIfDefined","_ref$logLevel","logLevel","_ref$transport","transport","_ref$enableSendBeacon","enableSendBeacon","httpWindow","beaconResult","hasHeaders","sendBeacon","Blob","canUseSendBeacon","_ref2$win","_ref2$useBlob","useBlob","blob","type","_ref$flushInterval","flushInterval","events","tracking","metrics","payloadBuilders","metaBuilders","trackingBuilders","metricDimensionBuilders","print","event","warning","immediateFlush","meta","builder","logger","logPayload","timestamp","enqueue","addBuilder","builders","metric","metricPayload","metricNamespace","_i10","debug","track","trackingPayload","metricCounter","_metricPayload$value","metricEventName","metricValue","metricType","metricGauge","metricHistogram","addPayloadBuilder","addMetaBuilder","addMetricDimensionBuilder","addTrackingBuilder","addHeaderBuilder","setTransport","newTransport","configure","opts","__buffer__","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","V","toPrimitive","isSymbol","func","defineGlobalProperty","store","trunc","number","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","renderChildren","children","renderer","renderedChild","subchild","ElementNode","onRender","FragmentNode","TextNode","ComponentNode","component","_proto4","renderComponent","normalizeChildren","normalizeChild","_normalizeChildren2","ELEMENT_DEFAULT_XML_NAMESPACE","_ELEMENT_DEFAULT_XML_","ATTRIBUTE_DEFAULT_XML_NAMESPACE","_ATTRIBUTE_DEFAULT_XM","createTextElement","createTextNode","addProps","xmlNamespace","setAttributeNS","ADD_CHILDREN","_ADD_CHILDREN","docElement","_node$renderChildren2","addChildren","html","ELEMENT_PROP","_el$querySelectorAll2","querySelectorAll","newScript","replaceChild","fixScripts","_opts$doc","xmlNamespaceDomRenderer","childNode","createElementNS","createElementWithXMLNamespace","domRenderer","postfix","NATIVE_WEAK_MAP","hiddenKeys","metadata","facade","enforce","getterFor","TYPE","activeXDocument","definePropertiesModule","documentCreateElement","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","display","F","Properties","SET_METHOD","getMethod","Iterators","ITERATOR","propertyIsEnumerableModule","toIndexedObject","isPrototypeOf","$Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","IS_PURE","version","copyright","license","EXISTS","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","includes","toIntegerOrInfinity","min","arraySpeciesConstructor","originalArray","inspectSource","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","isRegExp","MATCH","METHOD_NAME","regexp","error1","error2","$","FunctionName","createIteratorConstructor","setToStringTag","defineBuiltIn","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","NAME","IteratorConstructor","next","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","names","max","integer","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","every","findIndex","filterReject","InternalStateModule","defineIterator","createIterResultObject","setInternalState","getInternalState","iterated","point","kind","innerResult","innerError","ArrayPrototype","propertyKey","getIteratorMethod","usingIterator","iteratorMethod","ordinaryToPrimitive","TO_PRIMITIVE","input","pref","exoticToPrim","process","Deno","versions","v8","valueOf","replacement","feature","detection","normalize","POLYFILL","NATIVE","objectKeys","getOwnPropertySymbolsModule","$assign","A","B","chr","T","argumentsLength","S","ceil","entryUnbind","$find","addToUnscopables","SKIPS_HOLES","isConstructor","SPECIES","$Array","C","functionToString","$includes","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","$entries","objectGetPrototypeOf","IE_BUG","TO_ENTRIES","IE_WORKAROUND","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","getDescriptor","ENUMERABLE_NEXT","defineProperties","uncurryThisAccessor","aPossiblePrototype","setter","CORRECT_SETTER","checkCorrectnessOfIteration","iterable","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iteratorClose","ENTRIES","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","flattenIntoArray","flatMap","sourceLen","doesNotExceedSafeInteger","original","start","depth","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","getTagSize","classList","visibleElement","getComputedStyle","getPropertyValue","getActiveTags","subHeadline","disclaimer","getRequestDuration","validateMetric","requests","entryType","_ref2$","requestStart","responseStart","setupMessage","_window$xprops$amount","_window$xprops$curren","_window$xprops$buyerC","_window$xprops$ignore","_window$xprops$offer","_window$xprops$payerI","_window$xprops$client","_window$xprops$mercha","_window$xprops$mercha2","_window$xprops$disabl","_window$xprops$featur","_window$xprops$contex","_window$xprops$pageTy","_window$xprops$style","parentStyles","warnings","_window$xprops","xprops","onClick","onReady","onHover","onMarkup","onProps","resize","messageRequestId","dimensionsRef","_createState","amount","currency","buyerCountry","ignoreCache","offer","payerId","clientId","merchantId","merchantConfigHash","disableSetCookie","features","contextualComponents","pageType","setProps","_createState2","serverData","setServerData","handleHover","button","background","padding","border","outline","textAlign","align","fontFamily","fontSize","activeTags","requestDuration","styles","focus","stageTag","channel","treatmentsHash","newMessageRequestId","message_request_id","buyer_country","ignore_cache","credit_type","payer_id","client_id","merchant_id","merchant_config","contextual_components","deviceID","treatments","page_type","acc","origin","_data$markup","_data$parentStyles3","_data$warnings3","_data$markup3","_data$meta3","resData","jsonData","_data$meta","_data$parentStyles","_data$warnings","_data$markup2","_data$meta2","_data$parentStyles2","_data$warnings2","buttonWidth","offsetWidth","buttonHeight","createMessage"],"mappings":"uBACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,MAAOjB,GAAiBkB,eAAezB,KAAKuB,EAAQC,IAGzG/B,EAAoBiC,EAAI,GAIjBjC,EAAoBA,EAAoBkC,EAAI,K,i3BChF9C,ICCMC,EAAU,CACrBC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACL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","file":"smart-credit-message.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 195);\n","/* @flow */\n\nexport const FUNDING = {\n PAYPAL: (\"paypal\": \"paypal\"),\n VENMO: (\"venmo\": \"venmo\"),\n APPLEPAY: (\"applepay\": \"applepay\"),\n ITAU: (\"itau\": \"itau\"),\n CREDIT: (\"credit\": \"credit\"),\n PAYLATER: (\"paylater\": \"paylater\"),\n CARD: (\"card\": \"card\"),\n IDEAL: (\"ideal\": \"ideal\"),\n SEPA: (\"sepa\": \"sepa\"),\n BANCONTACT: (\"bancontact\": \"bancontact\"),\n GIROPAY: (\"giropay\": \"giropay\"),\n SOFORT: (\"sofort\": \"sofort\"),\n EPS: (\"eps\": \"eps\"),\n MYBANK: (\"mybank\": \"mybank\"),\n P24: (\"p24\": \"p24\"),\n PAYU: (\"payu\": \"payu\"),\n BLIK: (\"blik\": \"blik\"),\n TRUSTLY: (\"trustly\": \"trustly\"),\n OXXO: (\"oxxo\": \"oxxo\"),\n BOLETO: (\"boleto\": \"boleto\"),\n BOLETOBANCARIO: (\"boletobancario\": \"boletobancario\"),\n WECHATPAY: (\"wechatpay\": \"wechatpay\"),\n MERCADOPAGO: (\"mercadopago\": \"mercadopago\"),\n MULTIBANCO: (\"multibanco\": \"multibanco\"),\n SATISPAY: (\"satispay\": \"satispay\"),\n PAIDY: (\"paidy\": \"paidy\"),\n // deprecated APMs will be removed soon\n ZIMPLER: (\"zimpler\": \"zimpler\"),\n MAXIMA: (\"maxima\": \"maxima\"),\n};\n\nexport const FUNDING_BRAND_LABEL = {\n PAYPAL: (\"PayPal\": \"PayPal\"),\n CREDIT: (\"PayPal Credit\": \"PayPal Credit\"),\n};\n\nexport const CARD = {\n VISA: (\"visa\": \"visa\"),\n MASTERCARD: (\"mastercard\": \"mastercard\"),\n AMEX: (\"amex\": \"amex\"),\n DISCOVER: (\"discover\": \"discover\"),\n HIPER: (\"hiper\": \"hiper\"),\n ELO: (\"elo\": \"elo\"),\n JCB: (\"jcb\": \"jcb\"),\n CUP: (\"cup\": \"cup\"),\n DINERS: (\"diners\": \"diners\"),\n MAESTRO: (\"maestro\": \"maestro\"),\n EFTPOS: (\"eftpos\": \"eftpos\"),\n CB_NATIONALE: (\"cb_nationale\": \"cb_nationale\"),\n};\n\nexport const WALLET_INSTRUMENT = {\n BALANCE: (\"balance\": \"balance\"),\n CARD: (\"card\": \"card\"),\n BANK: (\"bank\": \"bank\"),\n CREDIT: (\"credit\": \"credit\"),\n};\n\nexport const FUNDING_PRODUCTS = {\n PAY_IN_3: (\"payIn3\": \"payIn3\"),\n PAY_IN_4: (\"payIn4\": \"payIn4\"),\n PAYLATER: (\"paylater\": \"paylater\"),\n CREDIT: (\"credit\": \"credit\"),\n};\n","/* @flow */\n/* eslint max-lines: 0 */\n\nexport const COUNTRY = {\n AD: (\"AD\": \"AD\"),\n AE: (\"AE\": \"AE\"),\n AG: (\"AG\": \"AG\"),\n AI: (\"AI\": \"AI\"),\n AL: (\"AL\": \"AL\"),\n AM: (\"AM\": \"AM\"),\n AN: (\"AN\": \"AN\"),\n AO: (\"AO\": \"AO\"),\n AR: (\"AR\": \"AR\"),\n AT: (\"AT\": \"AT\"),\n AU: (\"AU\": \"AU\"),\n AW: (\"AW\": \"AW\"),\n AZ: (\"AZ\": \"AZ\"),\n BA: (\"BA\": \"BA\"),\n BB: (\"BB\": \"BB\"),\n BE: (\"BE\": \"BE\"),\n BF: (\"BF\": \"BF\"),\n BG: (\"BG\": \"BG\"),\n BH: (\"BH\": \"BH\"),\n BI: (\"BI\": \"BI\"),\n BJ: (\"BJ\": \"BJ\"),\n BM: (\"BM\": \"BM\"),\n BN: (\"BN\": \"BN\"),\n BO: (\"BO\": \"BO\"),\n BR: (\"BR\": \"BR\"),\n BS: (\"BS\": \"BS\"),\n BT: (\"BT\": \"BT\"),\n BW: (\"BW\": \"BW\"),\n BY: (\"BY\": \"BY\"),\n BZ: (\"BZ\": \"BZ\"),\n CA: (\"CA\": \"CA\"),\n CD: (\"CD\": \"CD\"),\n CG: (\"CG\": \"CG\"),\n CH: (\"CH\": \"CH\"),\n CI: (\"CI\": \"CI\"),\n CK: (\"CK\": \"CK\"),\n CL: (\"CL\": \"CL\"),\n CM: (\"CM\": \"CM\"),\n CN: (\"CN\": \"CN\"),\n CO: (\"CO\": \"CO\"),\n CR: (\"CR\": \"CR\"),\n CV: (\"CV\": \"CV\"),\n CY: (\"CY\": \"CY\"),\n CZ: (\"CZ\": \"CZ\"),\n DE: (\"DE\": \"DE\"),\n DJ: (\"DJ\": \"DJ\"),\n DK: (\"DK\": \"DK\"),\n DM: (\"DM\": \"DM\"),\n DO: (\"DO\": \"DO\"),\n DZ: (\"DZ\": \"DZ\"),\n EC: (\"EC\": \"EC\"),\n EE: (\"EE\": \"EE\"),\n EG: (\"EG\": \"EG\"),\n ER: (\"ER\": \"ER\"),\n ES: (\"ES\": \"ES\"),\n ET: (\"ET\": \"ET\"),\n FI: (\"FI\": \"FI\"),\n FJ: (\"FJ\": \"FJ\"),\n FK: (\"FK\": \"FK\"),\n FM: (\"FM\": \"FM\"),\n FO: (\"FO\": \"FO\"),\n FR: (\"FR\": \"FR\"),\n GA: (\"GA\": \"GA\"),\n GB: (\"GB\": \"GB\"),\n GD: (\"GD\": \"GD\"),\n GE: (\"GE\": \"GE\"),\n GF: (\"GF\": \"GF\"),\n GI: (\"GI\": \"GI\"),\n GL: (\"GL\": \"GL\"),\n GM: (\"GM\": \"GM\"),\n GN: (\"GN\": \"GN\"),\n GP: (\"GP\": \"GP\"),\n GR: (\"GR\": \"GR\"),\n GT: (\"GT\": \"GT\"),\n GW: (\"GW\": \"GW\"),\n GY: (\"GY\": \"GY\"),\n HK: (\"HK\": \"HK\"),\n HN: (\"HN\": \"HN\"),\n HR: (\"HR\": \"HR\"),\n HU: (\"HU\": \"HU\"),\n ID: (\"ID\": \"ID\"),\n IE: (\"IE\": \"IE\"),\n IL: (\"IL\": \"IL\"),\n IN: (\"IN\": \"IN\"),\n IS: (\"IS\": \"IS\"),\n IT: (\"IT\": \"IT\"),\n JM: (\"JM\": \"JM\"),\n JO: (\"JO\": \"JO\"),\n JP: (\"JP\": \"JP\"),\n KE: (\"KE\": \"KE\"),\n KG: (\"KG\": \"KG\"),\n KH: (\"KH\": \"KH\"),\n KI: (\"KI\": \"KI\"),\n KM: (\"KM\": \"KM\"),\n KN: (\"KN\": \"KN\"),\n KR: (\"KR\": \"KR\"),\n KW: (\"KW\": \"KW\"),\n KY: (\"KY\": \"KY\"),\n KZ: (\"KZ\": \"KZ\"),\n LA: (\"LA\": \"LA\"),\n LC: (\"LC\": \"LC\"),\n LI: (\"LI\": \"LI\"),\n LK: (\"LK\": \"LK\"),\n LS: (\"LS\": \"LS\"),\n LT: (\"LT\": \"LT\"),\n LU: (\"LU\": \"LU\"),\n LV: (\"LV\": \"LV\"),\n MA: (\"MA\": \"MA\"),\n MC: (\"MC\": \"MC\"),\n MD: (\"MD\": \"MD\"),\n ME: (\"ME\": \"ME\"),\n MG: (\"MG\": \"MG\"),\n MH: (\"MH\": \"MH\"),\n MK: (\"MK\": \"MK\"),\n ML: (\"ML\": \"ML\"),\n MN: (\"MN\": \"MN\"),\n MQ: (\"MQ\": \"MQ\"),\n MR: (\"MR\": \"MR\"),\n MS: (\"MS\": \"MS\"),\n MT: (\"MT\": \"MT\"),\n MU: (\"MU\": \"MU\"),\n MV: (\"MV\": \"MV\"),\n MW: (\"MW\": \"MW\"),\n MX: (\"MX\": \"MX\"),\n MY: (\"MY\": \"MY\"),\n MZ: (\"MZ\": \"MZ\"),\n NA: (\"NA\": \"NA\"),\n NC: (\"NC\": \"NC\"),\n NE: (\"NE\": \"NE\"),\n NF: (\"NF\": \"NF\"),\n NG: (\"NG\": \"NG\"),\n NI: (\"NI\": \"NI\"),\n NL: (\"NL\": \"NL\"),\n NO: (\"NO\": \"NO\"),\n NP: (\"NP\": \"NP\"),\n NR: (\"NR\": \"NR\"),\n NU: (\"NU\": \"NU\"),\n NZ: (\"NZ\": \"NZ\"),\n OM: (\"OM\": \"OM\"),\n PA: (\"PA\": \"PA\"),\n PE: (\"PE\": \"PE\"),\n PF: (\"PF\": \"PF\"),\n PG: (\"PG\": \"PG\"),\n PH: (\"PH\": \"PH\"),\n PL: (\"PL\": \"PL\"),\n PM: (\"PM\": \"PM\"),\n PN: (\"PN\": \"PN\"),\n PT: (\"PT\": \"PT\"),\n PW: (\"PW\": \"PW\"),\n PY: (\"PY\": \"PY\"),\n QA: (\"QA\": \"QA\"),\n RE: (\"RE\": \"RE\"),\n RO: (\"RO\": \"RO\"),\n RS: (\"RS\": \"RS\"),\n RU: (\"RU\": \"RU\"),\n RW: (\"RW\": \"RW\"),\n SA: (\"SA\": \"SA\"),\n SB: (\"SB\": \"SB\"),\n SC: (\"SC\": \"SC\"),\n SE: (\"SE\": \"SE\"),\n SG: (\"SG\": \"SG\"),\n SH: (\"SH\": \"SH\"),\n SI: (\"SI\": \"SI\"),\n SJ: (\"SJ\": \"SJ\"),\n SK: (\"SK\": \"SK\"),\n SL: (\"SL\": \"SL\"),\n SM: (\"SM\": \"SM\"),\n SN: (\"SN\": \"SN\"),\n SO: (\"SO\": \"SO\"),\n SR: (\"SR\": \"SR\"),\n ST: (\"ST\": \"ST\"),\n SV: (\"SV\": \"SV\"),\n SZ: (\"SZ\": \"SZ\"),\n TC: (\"TC\": \"TC\"),\n TD: (\"TD\": \"TD\"),\n TG: (\"TG\": \"TG\"),\n TH: (\"TH\": \"TH\"),\n TJ: (\"TJ\": \"TJ\"),\n TM: (\"TM\": \"TM\"),\n TN: (\"TN\": \"TN\"),\n TO: (\"TO\": \"TO\"),\n TR: (\"TR\": \"TR\"),\n TT: (\"TT\": \"TT\"),\n TV: (\"TV\": \"TV\"),\n TW: (\"TW\": \"TW\"),\n TZ: (\"TZ\": \"TZ\"),\n UA: (\"UA\": \"UA\"),\n UG: (\"UG\": \"UG\"),\n US: (\"US\": \"US\"),\n UY: (\"UY\": \"UY\"),\n VA: (\"VA\": \"VA\"),\n VC: (\"VC\": \"VC\"),\n VE: (\"VE\": \"VE\"),\n VG: (\"VG\": \"VG\"),\n VN: (\"VN\": \"VN\"),\n VU: (\"VU\": \"VU\"),\n WF: (\"WF\": \"WF\"),\n WS: (\"WS\": \"WS\"),\n YE: (\"YE\": \"YE\"),\n YT: (\"YT\": \"YT\"),\n ZA: (\"ZA\": \"ZA\"),\n ZM: (\"ZM\": \"ZM\"),\n ZW: (\"ZW\": \"ZW\"),\n};\n\nexport const LANG = {\n AR: (\"ar\": \"ar\"),\n BG: (\"bg\": \"bg\"),\n CS: (\"cs\": \"cs\"),\n DA: (\"da\": \"da\"),\n DE: (\"de\": \"de\"),\n EL: (\"el\": \"el\"),\n EN: (\"en\": \"en\"),\n ES: (\"es\": \"es\"),\n ET: (\"et\": \"et\"),\n FI: (\"fi\": \"fi\"),\n FR: (\"fr\": \"fr\"),\n HE: (\"he\": \"he\"),\n HU: (\"hu\": \"hu\"),\n ID: (\"id\": \"id\"),\n IT: (\"it\": \"it\"),\n JA: (\"ja\": \"ja\"),\n KO: (\"ko\": \"ko\"),\n LT: (\"lt\": \"lt\"),\n LV: (\"lv\": \"lv\"),\n MS: (\"ms\": \"ms\"),\n NL: (\"nl\": \"nl\"),\n NO: (\"no\": \"no\"),\n PL: (\"pl\": \"pl\"),\n PT: (\"pt\": \"pt\"),\n RO: (\"ro\": \"ro\"),\n RU: (\"ru\": \"ru\"),\n SI: (\"si\": \"si\"),\n SK: (\"sk\": \"sk\"),\n SL: (\"sl\": \"sl\"),\n SQ: (\"sq\": \"sq\"),\n SV: (\"sv\": \"sv\"),\n TH: (\"th\": \"th\"),\n TL: (\"tl\": \"tl\"),\n TR: (\"tr\": \"tr\"),\n VI: (\"vi\": \"vi\"),\n ZH: (\"zh\": \"zh\"),\n ZH_HANT: (\"zh_Hant\": \"zh_Hant\"),\n};\n\nexport type CountryLangs = {|\n AD: \"en\" | \"fr\" | \"es\" | \"zh\",\n AE: \"en\" | \"fr\" | \"es\" | \"zh\" | \"ar\",\n AG: \"en\" | \"fr\" | \"es\" | \"zh\",\n AI: \"en\" | \"fr\" | \"es\" | \"zh\",\n AL: \"sq\" | \"en\",\n AM: \"en\" | \"fr\" | \"es\" | \"zh\",\n AN: \"en\" | \"fr\" | \"es\" | \"zh\",\n AO: \"en\" | \"fr\" | \"es\" | \"zh\",\n AR: \"es\" | \"en\",\n AT: \"de\" | \"en\",\n AU: \"en\",\n AW: \"en\" | \"fr\" | \"es\" | \"zh\",\n AZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n BA: \"en\",\n BB: \"en\" | \"fr\" | \"es\" | \"zh\",\n BE: \"en\" | \"nl\" | \"fr\",\n BF: \"fr\" | \"en\" | \"es\" | \"zh\",\n BG: \"bg\" | \"en\",\n BH: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n BI: \"fr\" | \"en\" | \"es\" | \"zh\",\n BJ: \"fr\" | \"en\" | \"es\" | \"zh\",\n BM: \"en\" | \"fr\" | \"es\" | \"zh\",\n BN: \"ms\" | \"en\",\n BO: \"es\" | \"en\" | \"fr\" | \"zh\",\n BR: \"pt\" | \"en\",\n BS: \"en\" | \"fr\" | \"es\" | \"zh\",\n BT: \"en\",\n BW: \"en\" | \"fr\" | \"es\" | \"zh\",\n BY: \"en\",\n BZ: \"en\" | \"es\" | \"fr\" | \"zh\",\n CA: \"en\" | \"fr\",\n CD: \"fr\" | \"en\" | \"es\" | \"zh\",\n CG: \"en\" | \"fr\" | \"es\" | \"zh\",\n CH: \"de\" | \"fr\" | \"en\",\n CI: \"fr\" | \"en\",\n CK: \"en\" | \"fr\" | \"es\" | \"zh\",\n CL: \"es\" | \"en\" | \"fr\" | \"zh\",\n CM: \"fr\" | \"en\",\n CN: \"zh\",\n CO: \"es\" | \"en\" | \"fr\" | \"zh\",\n CR: \"es\" | \"en\" | \"fr\" | \"zh\",\n CV: \"en\" | \"fr\" | \"es\" | \"zh\",\n CY: \"en\",\n CZ: \"cs\" | \"en\",\n DE: \"de\" | \"en\",\n DJ: \"fr\" | \"en\" | \"es\" | \"zh\",\n DK: \"da\" | \"en\",\n DM: \"en\" | \"fr\" | \"es\" | \"zh\",\n DO: \"es\" | \"en\" | \"fr\" | \"zh\",\n DZ: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n EC: \"es\" | \"en\" | \"fr\" | \"zh\",\n EE: \"et\" | \"en\" | \"ru\",\n EG: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n ER: \"en\" | \"fr\" | \"es\" | \"zh\",\n ES: \"es\" | \"en\",\n ET: \"en\" | \"fr\" | \"es\" | \"zh\",\n FI: \"fi\" | \"en\",\n FJ: \"en\" | \"fr\" | \"es\" | \"zh\",\n FK: \"en\" | \"fr\" | \"es\" | \"zh\",\n FM: \"en\",\n FO: \"da\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n FR: \"fr\" | \"en\",\n GA: \"fr\" | \"en\" | \"es\" | \"zh\",\n GB: \"en\",\n GD: \"en\" | \"fr\" | \"es\" | \"zh\",\n GE: \"en\" | \"fr\" | \"es\" | \"zh\",\n GF: \"en\" | \"fr\" | \"es\" | \"zh\",\n GI: \"en\" | \"fr\" | \"es\" | \"zh\",\n GL: \"da\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n GM: \"en\" | \"fr\" | \"es\" | \"zh\",\n GN: \"fr\" | \"en\" | \"es\" | \"zh\",\n GP: \"en\" | \"fr\" | \"es\" | \"zh\",\n GR: \"el\" | \"en\",\n GT: \"es\" | \"en\" | \"fr\" | \"zh\",\n GW: \"en\" | \"fr\" | \"es\" | \"zh\",\n GY: \"en\" | \"fr\" | \"es\" | \"zh\",\n HK: \"en\" | \"zh_Hant\",\n HN: \"es\" | \"en\" | \"fr\" | \"zh\",\n HR: \"en\",\n HU: \"hu\" | \"en\",\n ID: \"id\" | \"en\",\n IE: \"en\" | \"fr\" | \"es\" | \"zh\",\n IL: \"he\" | \"en\",\n IN: \"en\",\n IS: \"en\",\n IT: \"it\" | \"en\",\n JM: \"en\" | \"es\" | \"fr\" | \"zh\",\n JO: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n JP: \"ja\" | \"en\",\n KE: \"en\" | \"fr\" | \"es\" | \"zh\",\n KG: \"en\" | \"fr\" | \"es\" | \"zh\",\n KH: \"en\",\n KI: \"en\" | \"fr\" | \"es\" | \"zh\",\n KM: \"fr\" | \"en\" | \"es\" | \"zh\",\n KN: \"en\" | \"fr\" | \"es\" | \"zh\",\n KR: \"ko\" | \"en\",\n KW: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n KY: \"en\" | \"fr\" | \"es\" | \"zh\",\n KZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n LA: \"en\",\n LC: \"en\" | \"fr\" | \"es\" | \"zh\",\n LI: \"en\" | \"fr\" | \"es\" | \"zh\",\n LK: \"si\" | \"en\",\n LS: \"en\" | \"fr\" | \"es\" | \"zh\",\n LT: \"lt\" | \"en\" | \"ru\" | \"zh\",\n LU: \"en\" | \"de\" | \"fr\" | \"es\" | \"zh\",\n LV: \"lv\" | \"en\" | \"ru\",\n MA: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n MC: \"fr\" | \"en\",\n MD: \"en\",\n ME: \"en\",\n MG: \"en\" | \"fr\" | \"es\" | \"zh\",\n MH: \"en\" | \"fr\" | \"es\" | \"zh\",\n MK: \"en\",\n ML: \"fr\" | \"en\" | \"es\" | \"zh\",\n MN: \"en\",\n MQ: \"en\" | \"fr\" | \"es\" | \"zh\",\n MR: \"en\" | \"fr\" | \"es\" | \"zh\",\n MS: \"en\" | \"fr\" | \"es\" | \"zh\",\n MT: \"en\",\n MU: \"en\" | \"fr\" | \"es\" | \"zh\",\n MV: \"en\",\n MW: \"en\" | \"fr\" | \"es\" | \"zh\",\n MX: \"es\" | \"en\",\n MY: \"ms\" | \"en\",\n MZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n NA: \"en\" | \"fr\" | \"es\" | \"zh\",\n NC: \"en\" | \"fr\" | \"es\" | \"zh\",\n NE: \"fr\" | \"en\" | \"es\" | \"zh\",\n NF: \"en\" | \"fr\" | \"es\" | \"zh\",\n NG: \"en\",\n NI: \"es\" | \"en\" | \"fr\" | \"zh\",\n NL: \"nl\" | \"en\",\n NO: \"no\" | \"en\",\n NP: \"en\",\n NR: \"en\" | \"fr\" | \"es\" | \"zh\",\n NU: \"en\" | \"fr\" | \"es\" | \"zh\",\n NZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n OM: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n PA: \"es\" | \"en\" | \"fr\" | \"zh\",\n PE: \"es\" | \"en\" | \"fr\" | \"zh\",\n PF: \"en\" | \"fr\" | \"es\" | \"zh\",\n PG: \"en\" | \"fr\" | \"es\" | \"zh\",\n PH: \"tl\" | \"en\",\n PL: \"pl\" | \"en\",\n PM: \"en\" | \"fr\" | \"es\" | \"zh\",\n PN: \"en\" | \"fr\" | \"es\" | \"zh\",\n PT: \"pt\" | \"en\",\n PW: \"en\" | \"fr\" | \"es\" | \"zh\",\n PY: \"es\" | \"en\",\n QA: \"en\" | \"fr\" | \"es\" | \"zh\" | \"ar\",\n RE: \"en\" | \"fr\" | \"es\" | \"zh\",\n RO: \"ro\" | \"en\",\n RS: \"en\" | \"fr\" | \"es\" | \"zh\",\n RU: \"ru\" | \"en\",\n RW: \"fr\" | \"en\" | \"es\" | \"zh\",\n SA: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n SB: \"en\" | \"fr\" | \"es\" | \"zh\",\n SC: \"fr\" | \"en\" | \"es\" | \"zh\",\n SE: \"sv\" | \"en\",\n SG: \"en\",\n SH: \"en\" | \"fr\" | \"es\" | \"zh\",\n SI: \"sl\" | \"en\",\n SJ: \"en\" | \"fr\" | \"es\" | \"zh\",\n SK: \"sk\" | \"en\",\n SL: \"en\" | \"fr\" | \"es\" | \"zh\",\n SM: \"en\" | \"fr\" | \"es\" | \"zh\",\n SN: \"fr\" | \"en\" | \"es\" | \"zh\",\n SO: \"en\" | \"fr\" | \"es\" | \"zh\",\n SR: \"en\" | \"fr\" | \"es\" | \"zh\",\n ST: \"en\" | \"fr\" | \"es\" | \"zh\",\n SV: \"es\" | \"en\" | \"fr\" | \"zh\",\n SZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n TC: \"en\" | \"fr\" | \"es\" | \"zh\",\n TD: \"fr\" | \"en\" | \"es\" | \"zh\",\n TG: \"fr\" | \"en\" | \"es\" | \"zh\",\n TH: \"th\" | \"en\",\n TJ: \"en\" | \"fr\" | \"es\" | \"zh\",\n TM: \"en\" | \"fr\" | \"es\" | \"zh\",\n TN: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n TO: \"en\",\n TR: \"tr\" | \"en\",\n TT: \"en\" | \"fr\" | \"es\" | \"zh\",\n TV: \"en\" | \"fr\" | \"es\" | \"zh\",\n TW: \"zh_Hant\" | \"en\",\n TZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n UA: \"en\" | \"ru\" | \"fr\" | \"es\" | \"zh\",\n UG: \"en\" | \"fr\" | \"es\" | \"zh\",\n US: \"en\" | \"fr\" | \"es\" | \"zh\",\n UY: \"es\" | \"en\" | \"fr\" | \"zh\",\n VA: \"en\" | \"fr\" | \"es\" | \"zh\",\n VC: \"en\" | \"fr\" | \"es\" | \"zh\",\n VE: \"es\" | \"en\" | \"fr\" | \"zh\",\n VG: \"en\" | \"fr\" | \"es\" | \"zh\",\n VN: \"vi\" | \"en\",\n VU: \"en\" | \"fr\" | \"es\" | \"zh\",\n WF: \"en\" | \"fr\" | \"es\" | \"zh\",\n WS: \"en\",\n YE: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n YT: \"en\" | \"fr\" | \"es\" | \"zh\",\n ZA: \"en\" | \"fr\" | \"es\" | \"zh\",\n ZM: \"en\" | \"fr\" | \"es\" | \"zh\",\n ZW: \"en\",\n|};\n\ntype CountryMap = {\n [$Values]: $ReadOnlyArray<$Values>,\n};\n\nexport const COUNTRY_LANGS: CountryMap = {\n AD: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH, LANG.AR],\n AG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AL: [LANG.SQ, LANG.EN],\n AM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AN: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AO: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AR: [LANG.ES, LANG.EN],\n AT: [LANG.DE, LANG.EN],\n AU: [LANG.EN],\n AW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BA: [LANG.EN],\n BB: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BE: [LANG.EN, LANG.NL, LANG.FR],\n BF: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n BG: [LANG.BG, LANG.EN],\n BH: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BI: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n BJ: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n BM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BN: [LANG.MS, LANG.EN],\n BO: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n BR: [LANG.PT, LANG.EN],\n BS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BT: [LANG.EN],\n BW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BY: [LANG.EN],\n BZ: [LANG.EN, LANG.ES, LANG.FR, LANG.ZH],\n CA: [LANG.EN, LANG.FR],\n CD: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n CG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n CH: [LANG.DE, LANG.FR, LANG.EN],\n CI: [LANG.FR, LANG.EN],\n CK: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n CL: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n CM: [LANG.FR, LANG.EN],\n CN: [LANG.ZH],\n CO: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n CR: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n CV: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n CY: [LANG.EN],\n CZ: [LANG.CS, LANG.EN],\n DE: [LANG.DE, LANG.EN],\n DJ: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n DK: [LANG.DA, LANG.EN],\n DM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n DO: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n DZ: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n EC: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n EE: [LANG.ET, LANG.EN, LANG.RU],\n EG: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ER: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ES: [LANG.ES, LANG.EN],\n ET: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FI: [LANG.FI, LANG.EN],\n FJ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FK: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FM: [LANG.EN],\n FO: [LANG.DA, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FR: [LANG.FR, LANG.EN],\n GA: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n GB: [LANG.EN],\n GD: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GL: [LANG.DA, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GN: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n GP: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GR: [LANG.EL, LANG.EN],\n GT: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n GW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GY: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n HK: [LANG.EN, LANG.ZH_HANT, LANG.ZH],\n HN: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n HR: [LANG.EN],\n HU: [LANG.HU, LANG.EN],\n ID: [LANG.ID, LANG.EN],\n IE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n IL: [LANG.HE, LANG.EN],\n IN: [LANG.EN],\n IS: [LANG.EN],\n IT: [LANG.IT, LANG.EN],\n JM: [LANG.EN, LANG.ES, LANG.FR, LANG.ZH],\n JO: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n JP: [LANG.JA, LANG.EN],\n KE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KH: [LANG.EN],\n KI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KM: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n KN: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KR: [LANG.KO, LANG.EN],\n KW: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KY: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LA: [LANG.EN],\n LC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LK: [LANG.SI, LANG.EN],\n LS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LT: [LANG.LT, LANG.EN, LANG.RU, LANG.ZH],\n LU: [LANG.EN, LANG.DE, LANG.FR, LANG.ES, LANG.ZH],\n LV: [LANG.LV, LANG.EN, LANG.RU],\n MA: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MC: [LANG.FR, LANG.EN],\n MD: [LANG.EN],\n ME: [LANG.EN],\n MG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MH: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MK: [LANG.EN],\n ML: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n MN: [LANG.EN],\n MQ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MR: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MT: [LANG.EN],\n MU: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MV: [LANG.EN],\n MW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MX: [LANG.ES, LANG.EN],\n MY: [LANG.MS, LANG.EN],\n MZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NE: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n NF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NG: [LANG.EN],\n NI: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n NL: [LANG.NL, LANG.EN],\n NO: [LANG.NO, LANG.EN],\n NP: [LANG.EN],\n NR: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NU: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n OM: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PA: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n PE: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n PF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PH: [LANG.TL, LANG.EN],\n PL: [LANG.PL, LANG.EN],\n PM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PN: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PT: [LANG.PT, LANG.EN],\n PW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PY: [LANG.ES, LANG.EN],\n QA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH, LANG.AR],\n RE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n RO: [LANG.RO, LANG.EN],\n RS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n RU: [LANG.RU, LANG.EN],\n RW: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n SA: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SB: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SC: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n SE: [LANG.SV, LANG.EN],\n SG: [LANG.EN],\n SH: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SI: [LANG.SL, LANG.EN],\n SJ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SK: [LANG.SK, LANG.EN],\n SL: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SN: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n SO: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SR: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ST: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SV: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n SZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TD: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n TG: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n TH: [LANG.TH, LANG.EN],\n TJ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TN: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TO: [LANG.EN],\n TR: [LANG.TR, LANG.EN],\n TT: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TV: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TW: [LANG.ZH_HANT, LANG.ZH, LANG.EN],\n TZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n UA: [LANG.EN, LANG.RU, LANG.FR, LANG.ES, LANG.ZH],\n UG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n US: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n UY: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n VA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n VC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n VE: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n VG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n VN: [LANG.VI, LANG.EN],\n VU: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n WF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n WS: [LANG.EN],\n YE: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n YT: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ZA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ZM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ZW: [LANG.EN],\n};\n\nexport type LocaleType = {|\n country: $Values,\n lang: $Values,\n|};\n","/* @flow */\n\nexport const INTENT = {\n CAPTURE: (\"capture\": \"capture\"),\n AUTHORIZE: (\"authorize\": \"authorize\"),\n ORDER: (\"order\": \"order\"),\n TOKENIZE: (\"tokenize\": \"tokenize\"),\n SUBSCRIPTION: (\"subscription\": \"subscription\"),\n};\n\nexport const COMMIT = {\n TRUE: (true: true),\n FALSE: (false: false),\n};\n\nexport const VAULT = {\n TRUE: (true: true),\n FALSE: (false: false),\n};\n\nexport const CURRENCY = {\n AED: (\"AED\": \"AED\"),\n AFN: (\"AFN\": \"AFN\"),\n ALL: (\"ALL\": \"ALL\"),\n AMD: (\"AMD\": \"AMD\"),\n ANG: (\"ANG\": \"ANG\"),\n ARS: (\"ARS\": \"ARS\"),\n AOA: (\"AOA\": \"AOA\"),\n AUD: (\"AUD\": \"AUD\"),\n AWG: (\"AWG\": \"AWG\"),\n AZN: (\"AZN\": \"AZN\"),\n BAM: (\"BAM\": \"BAM\"),\n BBD: (\"BBD\": \"BBD\"),\n BDT: (\"BDT\": \"BDT\"),\n BGN: (\"BGN\": \"BGN\"),\n BHD: (\"BHD\": \"BHD\"),\n BIF: (\"BIF\": \"BIF\"),\n BMD: (\"BMD\": \"BMD\"),\n BND: (\"BND\": \"BND\"),\n BOB: (\"BOB\": \"BOB\"),\n BRL: (\"BRL\": \"BRL\"),\n BSD: (\"BSD\": \"BSD\"),\n BTN: (\"BTN\": \"BTN\"),\n BWP: (\"BWP\": \"BWP\"),\n BZD: (\"BZD\": \"BZD\"),\n CAD: (\"CAD\": \"CAD\"),\n CDF: (\"CDF\": \"CDF\"),\n CHF: (\"CHF\": \"CHF\"),\n CLP: (\"CLP\": \"CLP\"),\n COP: (\"COP\": \"COP\"),\n CRC: (\"CRC\": \"CRC\"),\n CVE: (\"CVE\": \"CVE\"),\n CZK: (\"CZK\": \"CZK\"),\n DJF: (\"DJF\": \"DJF\"),\n DKK: (\"DKK\": \"DKK\"),\n DOP: (\"DOP\": \"DOP\"),\n DZD: (\"DZD\": \"DZD\"),\n EGP: (\"EGP\": \"EGP\"),\n ETB: (\"ETB\": \"ETB\"),\n ERN: (\"ERN\": \"ERN\"),\n EUR: (\"EUR\": \"EUR\"),\n FJD: (\"FJD\": \"FJD\"),\n FKP: (\"FKP\": \"FKP\"),\n GBP: (\"GBP\": \"GBP\"),\n GEL: (\"GEL\": \"GEL\"),\n GHS: (\"GHS\": \"GHS\"),\n GIP: (\"GIP\": \"GIP\"),\n GMD: (\"GMD\": \"GMD\"),\n GNF: (\"GNF\": \"GNF\"),\n GTQ: (\"GTQ\": \"GTQ\"),\n GYD: (\"GYD\": \"GYD\"),\n HKD: (\"HKD\": \"HKD\"),\n HNL: (\"HNL\": \"HNL\"),\n HRK: (\"HRK\": \"HRK\"),\n HTG: (\"HTG\": \"HTG\"),\n HUF: (\"HUF\": \"HUF\"),\n IDR: (\"IDR\": \"IDR\"),\n ILS: (\"ILS\": \"ILS\"),\n INR: (\"INR\": \"INR\"),\n ISK: (\"ISK\": \"ISK\"),\n JMD: (\"JMD\": \"JMD\"),\n JOD: (\"JOD\": \"JOD\"),\n JPY: (\"JPY\": \"JPY\"),\n KGS: (\"KGS\": \"KGS\"),\n KES: (\"KES\": \"KES\"),\n KHR: (\"KHR\": \"KHR\"),\n KMF: (\"KMF\": \"KMF\"),\n KRW: (\"KRW\": \"KRW\"),\n KWD: (\"KWD\": \"KWD\"),\n KYD: (\"KYD\": \"KYD\"),\n KZT: (\"KZT\": \"KZT\"),\n LAK: (\"LAK\": \"LAK\"),\n LKR: (\"LKR\": \"LKR\"),\n LRD: (\"LRD\": \"LRD\"),\n LSL: (\"LSL\": \"LSL\"),\n MAD: (\"MAD\": \"MAD\"),\n MDL: (\"MDL\": \"MDL\"),\n MGA: (\"MGA\": \"MGA\"),\n MKD: (\"MKD\": \"MKD\"),\n MNT: (\"MNT\": \"MNT\"),\n MOP: (\"MOP\": \"MOP\"),\n MRO: (\"MRO\": \"MRO\"),\n MRU: (\"MRU\": \"MRU\"),\n MUR: (\"MUR\": \"MUR\"),\n MVR: (\"MVR\": \"MVR\"),\n MWK: (\"MWK\": \"MWK\"),\n MXN: (\"MXN\": \"MXN\"),\n MYR: (\"MYR\": \"MYR\"),\n MZN: (\"MZN\": \"MZN\"),\n NAD: (\"NAD\": \"NAD\"),\n NGN: (\"NGN\": \"NGN\"),\n NIO: (\"NIO\": \"NIO\"),\n NOK: (\"NOK\": \"NOK\"),\n NPR: (\"NPR\": \"NPR\"),\n NZD: (\"NZD\": \"NZD\"),\n OMR: (\"OMR\": \"OMR\"),\n PAB: (\"PAB\": \"PAB\"),\n PEN: (\"PEN\": \"PEN\"),\n PGK: (\"PGK\": \"PGK\"),\n PHP: (\"PHP\": \"PHP\"),\n PKR: (\"PKR\": \"PKR\"),\n PLN: (\"PLN\": \"PLN\"),\n PYG: (\"PYG\": \"PYG\"),\n QAR: (\"QAR\": \"QAR\"),\n RON: (\"RON\": \"RON\"),\n RSD: (\"RSD\": \"RSD\"),\n RUB: (\"RUB\": \"RUB\"),\n RWF: (\"RWF\": \"RWF\"),\n SAR: (\"SAR\": \"SAR\"),\n SBD: (\"SBD\": \"SBD\"),\n SCR: (\"SCR\": \"SCR\"),\n SEK: (\"SEK\": \"SEK\"),\n SGD: (\"SGD\": \"SGD\"),\n SHP: (\"SHP\": \"SHP\"),\n SLE: (\"SLE\": \"SLE\"),\n SLL: (\"SLL\": \"SLL\"),\n SOS: (\"SOS\": \"SOS\"),\n SRD: (\"SRD\": \"SRD\"),\n STN: (\"STN\": \"STN\"),\n SVC: (\"SVC\": \"SVC\"),\n SZL: (\"SZL\": \"SZL\"),\n THB: (\"THB\": \"THB\"),\n TMT: (\"TMT\": \"TMT\"),\n TJS: (\"TJS\": \"TJS\"),\n TND: (\"TND\": \"TND\"),\n TOP: (\"TOP\": \"TOP\"),\n TTD: (\"TTD\": \"TTD\"),\n TWD: (\"TWD\": \"TWD\"),\n TZS: (\"TZS\": \"TZS\"),\n UAH: (\"UAH\": \"UAH\"),\n UGX: (\"UGX\": \"UGX\"),\n USD: (\"USD\": \"USD\"),\n UYU: (\"UYU\": \"UYU\"),\n UZS: (\"UZS\": \"UZS\"),\n VES: (\"VES\": \"VES\"),\n VND: (\"VND\": \"VND\"),\n VUV: (\"VUV\": \"VUV\"),\n WST: (\"WST\": \"WST\"),\n XAF: (\"XAF\": \"XAF\"),\n XCD: (\"XCD\": \"XCD\"),\n XOF: (\"XOF\": \"XOF\"),\n XPF: (\"XPF\": \"XPF\"),\n YER: (\"YER\": \"YER\"),\n ZAR: (\"ZAR\": \"ZAR\"),\n ZMW: (\"ZMW\": \"ZMW\"),\n};\n","/* @flow */\n\nexport const SDK_PATH = (\"/sdk/js\": \"/sdk/js\");\nexport const WEB_SDK_BRIDGE_PATH = (\"/web-sdk/v6/bridge\": \"/web-sdk/v6/bridge\");\n\nexport const SDK_SETTINGS = {\n AMOUNT: (\"data-amount\": \"data-amount\"),\n API_STAGE_HOST: (\"data-api-stage-host\": \"data-api-stage-host\"),\n CLIENT_METADATA_ID: (\"data-client-metadata-id\": \"data-client-metadata-id\"),\n CLIENT_TOKEN: (\"data-client-token\": \"data-client-token\"),\n CSP_NONCE: (\"data-csp-nonce\": \"data-csp-nonce\"),\n ENABLE_3DS: (\"data-enable-3ds\": \"data-enable-3ds\"),\n JS_SDK_LIBRARY: (\"data-js-sdk-library\": \"data-js-sdk-library\"),\n MERCHANT_ID: (\"data-merchant-id\": \"data-merchant-id\"),\n NAMESPACE: (\"data-namespace\": \"data-namespace\"),\n PAGE_TYPE: (\"data-page-type\": \"data-page-type\"),\n PARTNER_ATTRIBUTION_ID:\n (\"data-partner-attribution-id\": \"data-partner-attribution-id\"),\n POPUPS_DISABLED: (\"data-popups-disabled\": \"data-popups-disabled\"),\n SDK_INTEGRATION_SOURCE:\n (\"data-sdk-integration-source\": \"data-sdk-integration-source\"),\n SDK_TOKEN: (\"data-sdk-client-token\": \"data-sdk-client-token\"),\n SHOPPER_SESSION_ID: (\"data-shopper-session-id\": \"data-shopper-session-id\"),\n STAGE_HOST: (\"data-stage-host\": \"data-stage-host\"),\n USER_EXPERIENCE_FLOW:\n (\"data-user-experience-flow\": \"data-user-experience-flow\"),\n USER_ID_TOKEN: (\"data-user-id-token\": \"data-user-id-token\"),\n};\n\n// Why do we call these settings instead of what they are, data attributes?\n// all other constants in this file are named after what they are\nexport const SDK_DATA_ATTRIBUTES = SDK_SETTINGS;\n\nexport const SDK_QUERY_KEYS = {\n COMPONENTS: (\"components\": \"components\"),\n\n ENV: (\"env\": \"env\"),\n DEBUG: (\"debug\": \"debug\"),\n CACHEBUST: (\"cachebust\": \"cachebust\"),\n\n CLIENT_ID: (\"client-id\": \"client-id\"),\n MERCHANT_ID: (\"merchant-id\": \"merchant-id\"),\n\n LOCALE: (\"locale\": \"locale\"),\n\n CURRENCY: (\"currency\": \"currency\"),\n INTENT: (\"intent\": \"intent\"),\n COMMIT: (\"commit\": \"commit\"),\n VAULT: (\"vault\": \"vault\"),\n\n BUYER_COUNTRY: (\"buyer-country\": \"buyer-country\"),\n\n ENABLE_FUNDING: (\"enable-funding\": \"enable-funding\"),\n DISABLE_FUNDING: (\"disable-funding\": \"disable-funding\"),\n DISABLE_CARD: (\"disable-card\": \"disable-card\"),\n\n INTEGRATION_DATE: (\"integration-date\": \"integration-date\"),\n STAGE_HOST: (\"stage-host\": \"stage-host\"),\n STAGE_ALIAS: (\"stage-alias\": \"stage-alias\"),\n CDN_REGISTRY: (\"cdn-registry\": \"cdn-registry\"),\n VERSION: (\"version\": \"version\"),\n};\n\nexport const COMPONENTS = {\n BUTTONS: (\"buttons\": \"buttons\"),\n CARD_FIELDS: (\"card-fields\": \"card-fields\"),\n HOSTED_BUTTONS: (\"hosted-buttons\": \"hosted-buttons\"),\n HOSTED_FIELDS: (\"hosted-fields\": \"hosted-fields\"),\n};\n\nexport const DEBUG = {\n TRUE: (true: true),\n FALSE: (false: false),\n};\n\nexport const QUERY_BOOL = {\n TRUE: (\"true\": \"true\"),\n FALSE: (\"false\": \"false\"),\n};\n\nexport const UNKNOWN = (\"unknown\": \"unknown\");\n\nexport const PROTOCOL = {\n HTTP: (\"http\": \"http\"),\n HTTPS: (\"https\": \"https\"),\n};\n\nexport const PAGE_TYPES = {\n HOME: (\"home\": \"home\"),\n PRODUCT: (\"product\": \"product\"),\n CART: (\"cart\": \"cart\"),\n CHECKOUT: (\"checkout\": \"checkout\"),\n PRODUCT_LISTING: (\"product-listing\": \"product-listing\"),\n SEARCH_RESULTS: (\"search-results\": \"search-results\"),\n PRODUCT_DETAILS: (\"product-details\": \"product-details\"),\n MINI_CART: (\"mini-cart\": \"mini-cart\"),\n};\n\nexport const MERCHANT_ID_MAX = 10;\n\nexport const DISPLAY_ONLY_VALUES = {\n VAULTABLE: (\"vaultable\": \"vaultable\"),\n};\n","/* @flow */\n\nimport { COUNTRY } from \"./locale\";\nimport { CURRENCY, INTENT, COMMIT, VAULT } from \"./order\";\nimport { COMPONENTS, DEBUG } from \"./params\";\n\nexport const DEFAULT_COUNTRY = COUNTRY.US;\nexport const DEFAULT_CURRENCY = CURRENCY.USD;\nexport const DEFAULT_INTENT = INTENT.CAPTURE;\nexport const DEFAULT_COMMIT = COMMIT.TRUE;\nexport const DEFAULT_SALE_COMMIT = COMMIT.TRUE;\nexport const DEFAULT_NONSALE_COMMIT = COMMIT.TRUE;\nexport const DEFAULT_VAULT = VAULT.FALSE;\nexport const DEFAULT_COMPONENTS = COMPONENTS.BUTTONS;\nexport const DEFAULT_DEBUG = DEBUG.FALSE;\n","/* @flow */\n\nexport const ENV = {\n LOCAL: (\"local\": \"local\"),\n STAGE: (\"stage\": \"stage\"),\n SANDBOX: (\"sandbox\": \"sandbox\"),\n PRODUCTION: (\"production\": \"production\"),\n TEST: (\"test\": \"test\"),\n};\n\nexport const MOBILE_ENV = {\n ANDROID: (\"android\": \"android\"),\n IOS: (\"iOS\": \"iOS\"),\n};\n","/* @flow */\n\nexport const FPTI_KEY = {\n BUTTON_LAYOUT: (\"button_layout\": \"button_layout\"),\n BUTTON_MESSAGE_AMOUNT: (\"button_message_amount\": \"button_message_amount\"),\n BUTTON_MESSAGE_CREDIT_PRODUCT_IDENTIFIER:\n (\"button_message_credit_product_identifier\": \"button_message_credit_product_identifier\"),\n BUTTON_MESSAGE_COLOR: (\"button_message_color\": \"button_message_color\"),\n BUTTON_MESSAGE_CURRENCY:\n (\"button_message_currency\": \"button_message_currency\"),\n BUTTON_MESSAGE_ALIGN: (\"button_message_align\": \"button_message_align\"),\n BUTTON_MESSAGE_POSITION:\n (\"button_message_position\": \"button_message_position\"),\n BUTTON_MESSAGE_OFFER_COUNTRY:\n (\"button_message_offer_country\": \"button_message_offer_country\"),\n BUTTON_MESSAGE_OFFER_TYPE:\n (\"button_message_offer_type\": \"button_message_offer_type\"),\n BUTTON_MESSAGE_TYPE: (\"button_message_type\": \"button_message_type\"),\n BUTTON_SESSION_UID: (\"button_session_id\": \"button_session_id\"),\n BUTTON_SOURCE: (\"button_source\": \"button_source\"),\n BUTTON_TYPE: (\"button_type\": \"button_type\"),\n BUTTON_VERSION: (\"button_version\": \"button_version\"),\n BUYER_COUNTRY: (\"buyer_cntry\": \"buyer_cntry\"),\n CHECKOUT_APP: (\"checkout_app\": \"checkout_app\"),\n CHOSEN_FI_TYPE: (\"chosen_fi_type\": \"chosen_fi_type\"),\n CHOSEN_FUNDING: (\"selected_payment_method\": \"selected_payment_method\"),\n CLIENT_ID: (\"client_id\": \"client_id\"),\n CONTEXT_CORRID: (\"context_correlation_id\": \"context_correlation_id\"),\n CONTEXT_ID: (\"context_id\": \"context_id\"),\n CONTEXT_TYPE: (\"context_type\": \"context_type\"),\n CPL_CHUNK_METRICS: (\"cpl_chunk_metrics\": \"cpl_chunk_metrics\"),\n CPL_COMP_METRICS: (\"cpl_comp_metrics\": \"cpl_comp_metrics\"),\n CPL_QUERY_METRICS: (\"cpl_query_metrics\": \"cpl_query_metrics\"),\n DATA_SOURCE: (\"serverside_data_source\": \"serverside_data_source\"),\n DISABLE_CARD: (\"disable_card\": \"disable_card\"),\n DISABLE_FUNDING: (\"disable_funding\": \"disable_funding\"),\n ERROR_CODE: (\"ext_error_code\": \"ext_error_code\"),\n ERROR_DESC: (\"ext_error_desc\": \"ext_error_desc\"),\n EVENT_NAME: (\"event_name\": \"event_name\"),\n EXPERIMENT_EXPERIENCE:\n (\"experimentation_experience\": \"experimentation_experience\"),\n EXPERIMENT_NAME: (\"pxp_exp_id\": \"pxp_exp_id\"),\n EXPERIMENT_TREATMENT:\n (\"experimentation_treatment\": \"experimentation_treatment\"),\n FEED: (\"feed_name\": \"feed_name\"),\n FI_ID: (\"fi_id\": \"fi_id\"),\n FI_LIST: (\"fi_list\": \"fi_list\"),\n FIELDS_COMPONENT_SESSION_ID:\n (\"fields_component_session_id\": \"fields_component_session_id\"),\n FUNDING_COUNT: (\"eligible_payment_count\": \"eligible_payment_count\"),\n FUNDING_LIST: (\"eligible_payment_methods\": \"eligible_payment_methods\"),\n HOSTED_BUTTON_ID: (\"hosted_button_id\": \"hosted_button_id\"),\n INTEGRATION_IDENTIFIER: (\"integration_identifier\": \"integration_identifier\"),\n IS_VAULT: (\"is_vault\": \"is_vault\"),\n JS_SDK_LIBRARY: (\"js_sdk_library\": \"js_sdk_library\"),\n LOCALE: (\"locale\": \"locale\"),\n MERCHANT_DOMAIN: (\"merchant_domain\": \"merchant_domain\"),\n MOBILE_APP_VERSION: (\"mobile_app_version\": \"mobile_app_version\"),\n MOBILE_BUNDLE_IDENTIFIER: (\"mapv\": \"mapv\"),\n OPTION_SELECTED: (\"optsel\": \"optsel\"),\n PAGE: (\"page_name\": \"page_name\"),\n PAGE_LOAD_TIME: (\"page_load_time\": \"page_load_time\"),\n PAGE_TYPE: (\"pp_placement\": \"pp_placement\"),\n PARTNER_ATTRIBUTION_ID: (\"bn_code\": \"bn_code\"),\n PAY_ID: (\"pay_id\": \"pay_id\"),\n PAY_NOW: (\"pay_now\": \"pay_now\"),\n PAYMENT_FLOW: (\"payment_flow\": \"payment_flow\"),\n POTENTIAL_PAYMENT_METHODS:\n (\"potential_payment_methods\": \"potential_payment_methods\"),\n PRODUCT: (\"product\": \"product\"),\n RECOMMENDED_PAYMENT: (\"recommended_payment\": \"recommended_payment\"),\n REFERER: (\"referer_url\": \"referer_url\"),\n REFERRER_DOMAIN: (\"referrer_domain\", \"referrer_domain\"),\n RESPONSE_DURATION: (\"response_duration\": \"response_duration\"),\n SDK_CACHE: (\"sdk_cache\": \"sdk_cache\"),\n SDK_ENVIRONMENT: (\"sdk_environment\": \"sdk_environment\"),\n SDK_INTEGRATION_SOURCE: (\"sdk_integration_source\": \"sdk_integration_source\"),\n SDK_LOAD_TIME: (\"sdk_load_time\": \"sdk_load_time\"),\n SDK_NAME: (\"sdk_name\": \"sdk_name\"),\n SDK_VERSION: (\"sdk_version\": \"sdk_version\"),\n SELECTED_FI:\n (\"merchant_selected_funding_source\": \"merchant_selected_funding_source\"),\n SELLER_ID: (\"seller_id\": \"seller_id\"),\n SESSION_UID: (\"page_session_id\": \"page_session_id\"),\n STATE: (\"state_name\": \"state_name\"),\n STICKINESS_ID: (\"stickiness_id\": \"stickiness_id\"),\n TIMESTAMP: (\"t\": \"t\"),\n TOKEN: (\"token\": \"token\"),\n TRANSITION: (\"transition_name\": \"transition_name\"),\n TRANSITION_TIME: (\"transition_time\": \"transition_time\"),\n TREATMENT_NAME: (\"pxp_trtmnt_id\": \"pxp_trtmnt_id\"),\n USER_ACTION: (\"user_action\": \"user_action\"),\n USER_AGENT: (\"user_agent\": \"user_agent\"),\n USER_IDENTITY_METHOD: (\"user_identity_method\": \"user_identity_method\"),\n VERSION: (\"checkoutjs_version\": \"checkoutjs_version\"),\n AVAILABLE_PAYMENT_NETWORKS:\n (\"available_payment_networks\": \"available_payment_networks\"),\n SELECTED_CARD_TYPE: (\"selected_card_type\": \"selected_card_type\"),\n CURRENCY: (\"currency\": \"currency\"),\n AMOUNT: (\"amount\": \"amount\"),\n};\n\nexport const FPTI_USER_ACTION = {\n COMMIT: (\"commit\": \"commit\"),\n CONTINUE: (\"continue\": \"continue\"),\n};\n\nexport const FPTI_DATA_SOURCE = {\n PAYMENTS_SDK: (\"checkout\": \"checkout\"),\n};\n\nexport const FPTI_FEED = {\n PAYMENTS_SDK: (\"payments_sdk\": \"payments_sdk\"),\n};\n\nexport const FPTI_SDK_NAME = {\n PAYMENTS_SDK: (\"payments_sdk\": \"payments_sdk\"),\n};\n","/* @flow */\n\nexport const BASE_SDK_METRIC_NAMESPACE = \"pp.sdks.ppcp\";\n\nexport const payPalWebV5Dimensions = {\n sdk_platform: \"web\",\n major_version: \"5\",\n};\n","/* @flow */\n\nexport const PLATFORM = {\n DESKTOP: (\"desktop\": \"desktop\"),\n MOBILE: (\"mobile\": \"mobile\"),\n};\n","/* @flow */\nimport { sfvcScreens } from \"./screenHeights\";\n\nexport function getUserAgent(): string {\n return window.navigator.mockUserAgent || window.navigator.userAgent;\n}\n\nconst TABLET_PATTERN =\n /ip(a|ro)d|silk|xoom|playbook|tablet|kindle|Nexus 7|GT-P10|SC-01C|SHW-M180S|SM-T320|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC( Flyer|_Flyer)|Sprint ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos S7|Dell Streak 7|Advent Vega|A101IT|A70BHT|MID7015|Next2|nook|FOLIO|MB511.*RUTEM|Mac OS.*Silk/i;\n\nexport function isDevice(userAgent?: string = getUserAgent()): boolean {\n if (\n userAgent.match(\n /Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i\n )\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function isTablet(userAgent?: string = getUserAgent()): boolean {\n return TABLET_PATTERN.test(userAgent);\n}\n\nexport function isWebView(ua?: string = getUserAgent()): boolean {\n return (\n /(iPhone|iPod|iPad|Macintosh).*AppleWebKit(?!.*Safari)|.*WKWebView/i.test(\n ua\n ) ||\n /\\bwv\\b/.test(ua) ||\n /Android.*Version\\/(\\d)\\.(\\d)/i.test(ua)\n );\n}\n\nexport function isStandAlone(): boolean {\n return (\n window.navigator.standalone === true ||\n window.matchMedia(\"(display-mode: standalone)\").matches\n );\n}\n\nexport function isFacebookWebView(ua?: string = getUserAgent()): boolean {\n return /FBAN/.test(ua) || /FBAV/.test(ua);\n}\n\nexport function isInstagramWebView(ua?: string = getUserAgent()): boolean {\n return /Instagram/.test(ua);\n}\n\nexport function isMetaWebView(ua?: string = getUserAgent()): boolean {\n return isFacebookWebView(ua) || isInstagramWebView(ua);\n}\n\nexport function isMetaInAppBrowser(ua?: string = getUserAgent()): boolean {\n return /IABMV/.test(ua);\n}\n\nexport function isFirefox(ua?: string = getUserAgent()): boolean {\n return /Firefox/i.test(ua);\n}\n\nexport function isFirefoxIOS(ua?: string = getUserAgent()): boolean {\n return /FxiOS/i.test(ua);\n}\n\nexport function isEdgeIOS(ua?: string = getUserAgent()): boolean {\n return /EdgiOS/i.test(ua);\n}\n\nexport function isOperaMini(ua?: string = getUserAgent()): boolean {\n return /Opera Mini/i.test(ua);\n}\n\nexport function isAndroid(ua?: string = getUserAgent()): boolean {\n return /Android/.test(ua);\n}\n\nexport function isFirefoxAndroid(ua?: string = getUserAgent()): boolean {\n return isAndroid(ua) && isFirefox(ua);\n}\n\nexport function isIos(ua?: string = getUserAgent()): boolean {\n return /iPhone|iPod|iPad/.test(ua);\n}\n\nexport function isIOS14(ua?: string = getUserAgent()): boolean {\n return /iPhone.*OS.*(1)?(?:(1)[0-4]| [0-9])_/.test(ua);\n}\n\nexport function isGoogleSearchApp(ua?: string = getUserAgent()): boolean {\n return /\\bGSA\\b/.test(ua);\n}\n\nexport function isQQBrowser(ua?: string = getUserAgent()): boolean {\n return /QQBrowser/.test(ua);\n}\n\nexport function isIosWebview(ua?: string = getUserAgent()): boolean {\n if (isIos(ua)) {\n if (isGoogleSearchApp(ua)) {\n return true;\n }\n return /.+AppleWebKit(?!.*Safari)|.*WKWebView/.test(ua);\n }\n return false;\n}\n\nexport function isSFVC(ua?: string = getUserAgent()): boolean {\n if (isIos(ua)) {\n const height = window.innerHeight;\n const scale =\n Math.round((window.screen.width / window.innerWidth) * 100) / 100;\n const computedHeight = Math.round(height * scale);\n\n let device = null;\n if (isIOS14(ua)) {\n device = sfvcScreens[window.outerHeight];\n } else {\n if (scale !== 1) {\n return true;\n }\n\n device = sfvcScreens[window.outerHeight];\n }\n\n if (!device) {\n return true;\n }\n\n if (scale > 1 && device.zoomHeight && device.zoomHeight[scale]) {\n return device.zoomHeight[scale].indexOf(computedHeight) !== -1;\n } else {\n return (\n device.textSizeHeights.indexOf(computedHeight) !== -1 ||\n device.textSizeHeightsNoTabs.indexOf(computedHeight) !== -1\n );\n }\n }\n return false;\n}\n\nexport function isSFVCorSafari(ua?: string = getUserAgent()): boolean {\n if (isIos(ua)) {\n const sfvc = isSFVC(ua);\n\n const device = isIOS14(ua) ? sfvcScreens[window.outerHeight] : null;\n\n if (!device) {\n return false;\n }\n\n const height = window.innerHeight;\n const scale =\n Math.round((window.screen.width / window.innerWidth) * 100) / 100;\n\n const computedHeight = Math.round(height * scale);\n const possibleSafariSizes = device.maybeSafari;\n\n let maybeSafari = false;\n if (\n scale > 1 &&\n possibleSafariSizes[scale] &&\n possibleSafariSizes[scale].indexOf(computedHeight) !== -1\n ) {\n maybeSafari = true;\n }\n\n return sfvc || maybeSafari;\n }\n return false;\n}\n\nexport function isAndroidWebview(ua?: string = getUserAgent()): boolean {\n if (isAndroid(ua)) {\n return /Version\\/[\\d.]+/.test(ua) && !isOperaMini(ua);\n }\n return false;\n}\n\nexport function isIE(): boolean {\n if (window.document.documentMode) {\n return true;\n }\n\n return Boolean(\n window.navigator &&\n window.navigator.userAgent &&\n /Edge|MSIE|rv:11/i.test(window.navigator.userAgent)\n );\n}\n\nexport function isIECompHeader(): boolean {\n const mHttp = window.document.querySelector(\n 'meta[http-equiv=\"X-UA-Compatible\"]'\n );\n const mContent = window.document.querySelector('meta[content=\"IE=edge\"]');\n if (mHttp && mContent) {\n return true;\n }\n return false;\n}\n\nexport function isElectron(): boolean {\n if (\n typeof process !== \"undefined\" &&\n process.versions &&\n process.versions.electron\n ) {\n return true;\n }\n return false;\n}\n\nexport function isIEIntranet(): boolean {\n // This status check only works for older versions of IE with document.documentMode set\n\n if (window.document.documentMode) {\n try {\n const status = window.status;\n\n window.status = \"testIntranetMode\";\n\n if (window.status === \"testIntranetMode\") {\n window.status = status;\n\n return true;\n }\n\n return false;\n } catch (err) {\n return false;\n }\n }\n\n return false;\n}\n\nexport function isMacOsCna(): boolean {\n const userAgent = getUserAgent();\n return /Macintosh.*AppleWebKit(?!.*Safari)/i.test(userAgent);\n}\n\nexport function supportsPopups(ua?: string = getUserAgent()): boolean {\n return !(\n isWebView(ua) ||\n isIosWebview(ua) ||\n isAndroidWebview(ua) ||\n isOperaMini(ua) ||\n isFirefoxIOS(ua) ||\n isFirefoxAndroid(ua) ||\n isEdgeIOS(ua) ||\n isFacebookWebView(ua) ||\n isQQBrowser(ua) ||\n isElectron() ||\n isMacOsCna() ||\n isStandAlone()\n );\n}\n\nexport function isChrome(ua?: string = getUserAgent()): boolean {\n return (\n /Chrome|Chromium|CriOS/.test(ua) && !/SamsungBrowser|Silk|EdgA/.test(ua)\n );\n}\n\nexport function isSafari(ua?: string = getUserAgent()): boolean {\n return /Safari/.test(ua) && !isChrome(ua) && !/Silk|FxiOS|EdgiOS/.test(ua);\n}\n\nexport function isIpadOs(ua?: string = getUserAgent()): boolean {\n // Safari on iOS13+ on an iPad will return a useragent that is the same as Safari on MacOS\n // Adding the maxTouchPoints will determine that it is a touch device\n if (!/iPhone|iPod/.test(ua)) {\n if (/iPad/.test(ua) || (isSafari(ua) && navigator.maxTouchPoints >= 1)) {\n return true;\n }\n }\n return false;\n}\n\nexport function isApplePaySupported(): boolean {\n try {\n if (\n window.ApplePaySession &&\n window.ApplePaySession.supportsVersion(3) &&\n window.ApplePaySession.canMakePayments()\n ) {\n return true;\n }\n } catch (e) {\n return false;\n }\n\n return false;\n}\n\nexport function isCrossSiteTrackingEnabled(expectedCookieKey: string): boolean {\n return window.document.cookie.indexOf(expectedCookieKey) === -1;\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/* @flow */\n\nexport const KEY_CODES = {\n ENTER: 13,\n SPACE: 32,\n};\n\nexport const ATTRIBUTES = {\n UID: \"data-uid\",\n};\n\nexport const UID_HASH_LENGTH = 30;\n\n/* eslint-disable no-control-regex*/\nexport const invalidProtocolRegex: RegExp =\n /([^\\w]*)(javascript|data|vbscript)/im;\nexport const htmlEntitiesRegex: RegExp = /&#(\\w+)(^\\w|;)?/g;\nexport const htmlCtrlEntityRegex: RegExp = /&(newline|tab);/gi;\nexport const ctrlCharactersRegex: RegExp =\n /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexport const urlSchemeRegex: RegExp = /^.+(:|:)/gim;\nexport const relativeFirstCharacters = [\".\", \"/\"];\nexport const BLANK_URL = \"about:blank\";\n/* eslint-enable no-control-regex*/\n","/* @flow */\n/* eslint max-lines: 0 */\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { WeakMap } from \"@krakenjs/cross-domain-safe-weakmap/src\";\n\nimport {\n BLANK_URL,\n ctrlCharactersRegex,\n htmlCtrlEntityRegex,\n htmlEntitiesRegex,\n invalidProtocolRegex,\n relativeFirstCharacters,\n urlSchemeRegex,\n} from \"./constants\";\nimport type { CancelableType } from \"./types\";\n\nexport function isElement(element: mixed): boolean {\n let passed = false;\n\n try {\n if (element instanceof window.Element) {\n passed = true;\n } else if (\n element !== null &&\n typeof element === \"object\" &&\n element.nodeType === 1 &&\n typeof element.style === \"object\" &&\n typeof element.ownerDocument === \"object\"\n ) {\n passed = true;\n }\n } catch (_) {\n // we don't have an element\n }\n\n return passed;\n}\n\nexport function getFunctionName(fn: T): string {\n return fn.name || fn.__name__ || fn.displayName || \"anonymous\";\n}\n\nexport function setFunctionName(fn: T, name: string): T {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {\n // pass\n }\n\n fn.__name__ = fn.displayName = name;\n return fn;\n}\n\nexport function base64encode(str: string): string {\n if (typeof btoa === \"function\") {\n return btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (m, p1) => {\n return String.fromCharCode(parseInt(p1, 16));\n })\n ).replace(/[=]/g, \"\");\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(str, \"utf8\").toString(\"base64\").replace(/[=]/g, \"\");\n }\n\n throw new Error(`Can not find window.btoa or Buffer`);\n}\n\nexport function base64decode(str: string): string {\n if (typeof atob === \"function\") {\n return decodeURIComponent(\n // $FlowFixMe[method-unbinding]\n Array.prototype.map\n .call(atob(str), (c) => {\n // eslint-disable-next-line prefer-template\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\")\n );\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(str, \"base64\").toString(\"utf8\");\n }\n\n throw new Error(`Can not find window.atob or Buffer`);\n}\n\nexport function uniqueID(): string {\n const chars = \"0123456789abcdef\";\n\n const randomID = \"xxxxxxxxxx\".replace(/./g, () => {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n\n const timeID = base64encode(\n new Date().toISOString().slice(11, 19).replace(\"T\", \".\")\n )\n .replace(/[^a-zA-Z0-9]/g, \"\")\n .toLowerCase();\n\n return `uid_${randomID}_${timeID}`;\n}\n\nexport function getGlobal(): Object {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof __GLOBAL__ !== \"undefined\") {\n return __GLOBAL__;\n }\n throw new Error(`No global found`);\n}\n\nlet objectIDs;\n\nexport function getObjectID(obj: Object): string {\n objectIDs = objectIDs || new WeakMap();\n\n if (\n obj === null ||\n obj === undefined ||\n (typeof obj !== \"object\" && typeof obj !== \"function\")\n ) {\n throw new Error(`Invalid object`);\n }\n\n let uid = objectIDs.get(obj);\n\n if (!uid) {\n uid = `${typeof obj}:${uniqueID()}`;\n objectIDs.set(obj, uid);\n }\n\n return uid;\n}\n\nfunction serializeArgs(args: $ReadOnlyArray): string {\n try {\n // $FlowFixMe[method-unbinding]\n return JSON.stringify(Array.prototype.slice.call(args), (subkey, val) => {\n // Treat each distinct function as unique for purposes of memoization\n // e.g. even if someFunction.stringify() is the same, we may use a different memoize cache\n // if the actual function is different.\n if (typeof val === \"function\") {\n return `memoize[${getObjectID(val)}]`;\n }\n\n // By default JSON.stringify(domElement) returns '{}'. This ensures that stays true even for non-standard\n // elements (e.g. React-rendered dom elements) with custom properties\n if (isElement(val)) {\n return {};\n }\n\n return val;\n });\n } catch (err) {\n throw new Error(`Arguments not serializable -- can not be used to memoize`);\n }\n}\n\nexport function getEmptyObject(): {||} {\n // $FlowFixMe\n return {};\n}\n\ntype MemoizeOptions = {|\n name?: string,\n time?: number,\n thisNamespace?: boolean,\n|};\n\nconst getDefaultMemoizeOptions = (): MemoizeOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport type Memoized = F & {| reset: () => void |};\n\nlet memoizeGlobalIndex = 0;\nlet memoizeGlobalIndexValidFrom = 0;\n\nexport function memoize(\n method: F,\n options?: MemoizeOptions = getDefaultMemoizeOptions()\n): Memoized {\n const { thisNamespace = false, time: cacheTime } = options;\n\n let simpleCache;\n let thisCache;\n\n let memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n\n const memoizedFunction = function memoizedFunction(...args): mixed {\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n\n let cache;\n\n if (thisNamespace) {\n thisCache = thisCache || new WeakMap();\n cache = thisCache.getOrSet(this, getEmptyObject);\n } else {\n cache = simpleCache = simpleCache || {};\n }\n\n let cacheKey;\n\n try {\n cacheKey = serializeArgs(args);\n } catch {\n return method.apply(this, arguments);\n }\n\n let cacheResult = cache[cacheKey];\n\n if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n\n if (cacheResult) {\n return cacheResult.value;\n }\n\n const time = Date.now();\n const value = method.apply(this, arguments);\n\n cache[cacheKey] = { time, value };\n\n return value;\n };\n\n memoizedFunction.reset = () => {\n simpleCache = null;\n thisCache = null;\n };\n\n // $FlowFixMe\n const result: F = memoizedFunction;\n\n return setFunctionName(\n result,\n `${options.name || getFunctionName(method)}::memoized`\n );\n}\n\nmemoize.clear = () => {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n};\n\nexport function promiseIdentity(\n item: ZalgoPromise | T\n): ZalgoPromise {\n // $FlowFixMe\n return ZalgoPromise.resolve(item);\n}\n\nexport function memoizePromise(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => ZalgoPromise\n // eslint-disable-next-line flowtype/no-weak-types\n): (...args: $ReadOnlyArray) => ZalgoPromise {\n let cache = {};\n\n function memoizedPromiseFunction(\n // eslint-disable-next-line flowtype/no-weak-types\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n const key: string = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n cache[key] = ZalgoPromise.try(() => method.apply(this, arguments)).finally(\n () => {\n delete cache[key];\n }\n );\n\n return cache[key];\n }\n\n memoizedPromiseFunction.reset = () => {\n cache = {};\n };\n\n return setFunctionName(\n memoizedPromiseFunction,\n `${getFunctionName(method)}::promiseMemoized`\n );\n}\n\ntype PromisifyOptions = {|\n name?: string,\n|};\n\nconst getDefaultPromisifyOptions = (): PromisifyOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport function promisify(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => R,\n options: PromisifyOptions = getDefaultPromisifyOptions()\n // eslint-disable-next-line flowtype/no-weak-types\n): (...args: $ReadOnlyArray) => ZalgoPromise {\n function promisifiedFunction(): ZalgoPromise {\n return ZalgoPromise.try(method, this, arguments);\n }\n\n if (options.name) {\n promisifiedFunction.displayName = `${options.name}:promisified`;\n }\n\n return setFunctionName(\n promisifiedFunction,\n `${getFunctionName(method)}::promisified`\n );\n}\n\nexport function inlineMemoize(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => R,\n // eslint-disable-next-line flowtype/no-weak-types\n logic: (...args: $ReadOnlyArray) => R,\n // eslint-disable-next-line flowtype/no-weak-types\n args: $ReadOnlyArray = []\n): R {\n // $FlowFixMe\n const cache: {| [string]: R |} = (method.__inline_memoize_cache__ =\n // $FlowFixMe\n method.__inline_memoize_cache__ || {});\n const key = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n const result = (cache[key] = logic(...args));\n\n return result;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args: $ReadOnlyArray) {\n // pass\n}\n\nexport function once(method: Function): Function {\n let called = false;\n\n const onceFunction = function (): mixed {\n if (!called) {\n called = true;\n return method.apply(this, arguments);\n }\n };\n\n return setFunctionName(onceFunction, `${getFunctionName(method)}::once`);\n}\n\nexport function hashStr(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash += str[i].charCodeAt(0) * Math.pow((i % 10) + 1, 5);\n }\n return Math.floor(Math.pow(Math.sqrt(hash), 5));\n}\n\nexport function strHashStr(str: string): string {\n let hash = \"\";\n\n for (let i = 0; i < str.length; i++) {\n let total = str[i].charCodeAt(0) * i;\n\n if (str[i + 1]) {\n total += str[i + 1].charCodeAt(0) * (i - 1);\n }\n\n hash += String.fromCharCode(97 + (Math.abs(total) % 26));\n }\n\n return hash;\n}\n\nexport function match(str: string, pattern: RegExp): ?string {\n const regmatch = str.match(pattern);\n if (regmatch) {\n return regmatch[1];\n }\n}\n\nexport function awaitKey(obj: Object, key: string): ZalgoPromise {\n return new ZalgoPromise((resolve) => {\n let value = obj[key];\n\n if (value) {\n return resolve(value);\n }\n\n delete obj[key];\n\n Object.defineProperty(obj, key, {\n configurable: true,\n\n set(item) {\n value = item;\n\n if (value) {\n resolve(value);\n }\n },\n\n get(): T {\n return value;\n },\n });\n });\n}\n\nexport function stringifyError(err: mixed, level: number = 1): string {\n if (level >= 3) {\n return \"stringifyError stack overflow\";\n }\n\n try {\n if (!err) {\n // $FlowFixMe[method-unbinding]\n return ``;\n }\n\n if (typeof err === \"string\") {\n return err;\n }\n\n if (err instanceof Error) {\n const stack = err && err.stack;\n const message = err && err.message;\n\n if (stack && message) {\n if (stack.indexOf(message) !== -1) {\n return stack;\n } else {\n return `${message}\\n${stack}`;\n }\n } else if (stack) {\n return stack;\n } else if (message) {\n return message;\n }\n }\n\n if (err && err.toString && typeof err.toString === \"function\") {\n // $FlowFixMe\n return err.toString();\n }\n\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(err);\n } catch (newErr) {\n return `Error while stringifying error: ${stringifyError(\n newErr,\n level + 1\n )}`;\n }\n}\n\nexport function stringifyErrorMessage(err: mixed): string {\n // $FlowFixMe[method-unbinding]\n const defaultMessage = ``;\n\n if (!err) {\n return defaultMessage;\n }\n\n if (err instanceof Error) {\n return err.message || defaultMessage;\n }\n\n if (typeof err.message === \"string\") {\n return err.message || defaultMessage;\n }\n\n return defaultMessage;\n}\n\nexport function stringify(item: mixed): string {\n if (typeof item === \"string\") {\n return item;\n }\n\n if (item && item.toString && typeof item.toString === \"function\") {\n // $FlowFixMe\n return item.toString();\n }\n\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(item);\n}\n\nexport function domainMatches(hostname: string, domain: string): boolean {\n hostname = hostname.split(\"://\")[1];\n const index = hostname.indexOf(domain);\n return index !== -1 && hostname.slice(index) === domain;\n}\n\nexport function patchMethod(obj: Object, name: string, handler: Function) {\n const original = obj[name];\n\n obj[name] = function patchedMethod(): mixed {\n return handler({\n context: this,\n // $FlowFixMe[method-unbinding]\n args: Array.prototype.slice.call(arguments),\n original,\n callOriginal: () => original.apply(this, arguments),\n });\n };\n}\n\nexport function extend(obj: T, source: Object): T {\n if (!source) {\n return obj;\n }\n\n if (Object.assign) {\n return Object.assign(obj, source);\n }\n\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n obj[key] = source[key];\n }\n }\n\n return obj;\n}\n\nexport function values(obj: { [string]: T }): $ReadOnlyArray {\n if (Object.values) {\n // $FlowFixMe\n return Object.values(obj);\n }\n\n const result: Array = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n // $FlowFixMe[escaped-generic]\n result.push(obj[key]);\n }\n }\n\n // $FlowFixMe\n return result;\n}\n\n// eslint-disable-next-line no-undef\nexport const memoizedValues: ({ [string]: T }) => $ReadOnlyArray =\n memoize(values);\n\nexport function perc(pixels: number, percentage: number): number {\n return Math.round((pixels * percentage) / 100);\n}\n\nexport function min(...args: $ReadOnlyArray): number {\n return Math.min(...args);\n}\n\nexport function max(...args: $ReadOnlyArray): number {\n return Math.max(...args);\n}\n\nexport function roundUp(num: number, nearest: number): number {\n const remainder = num % nearest;\n return remainder ? num - remainder + nearest : num;\n}\n\nexport function regexMap(\n str: string,\n regexp: RegExp,\n handler: () => T\n): $ReadOnlyArray {\n const results = [];\n\n // $FlowFixMe\n str.replace(regexp, function regexMapMatcher(item) {\n results.push(handler ? handler.apply(null, arguments) : item);\n });\n\n // $FlowFixMe\n return results;\n}\n\nexport function svgToBase64(svg: string): string {\n return `data:image/svg+xml;base64,${base64encode(svg)}`;\n}\n\nexport function objFilter(\n obj: { [string]: T },\n filter?: (T, ?string) => mixed = Boolean\n): { [string]: R } {\n const result = {};\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || !filter(obj[key], key)) {\n continue;\n }\n\n result[key] = obj[key];\n }\n\n return result;\n}\n\nexport function identity(item: T): T {\n return item;\n}\n\nexport function regexTokenize(\n text: string,\n regexp: RegExp\n): $ReadOnlyArray {\n const result = [];\n text.replace(regexp, (token) => {\n result.push(token);\n return \"\";\n });\n return result;\n}\n\nexport function promiseDebounce(\n method: () => ZalgoPromise | T,\n delay: number = 50\n): () => ZalgoPromise {\n let promise;\n let timeout;\n\n const promiseDebounced = function (): ZalgoPromise {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n const localPromise = (promise = promise || new ZalgoPromise());\n\n timeout = setTimeout(() => {\n promise = null;\n timeout = null;\n\n ZalgoPromise.try(method).then(\n (result) => {\n localPromise.resolve(result);\n },\n (err) => {\n localPromise.reject(err);\n }\n );\n }, delay);\n\n return localPromise;\n };\n\n return setFunctionName(\n promiseDebounced,\n `${getFunctionName(method)}::promiseDebounced`\n );\n}\n\nexport function safeInterval(\n method: Function,\n time: number\n): {| cancel: () => void |} {\n let timeout;\n\n function loop() {\n timeout = setTimeout(() => {\n method();\n loop();\n }, time);\n }\n\n loop();\n\n return {\n cancel() {\n clearTimeout(timeout);\n },\n };\n}\n\nexport function isInteger(str: string): boolean {\n return Boolean(str.match(/^[0-9]+$/));\n}\n\nexport function isFloat(str: string): boolean {\n return Boolean(str.match(/^[0-9]+\\.[0-9]+$/));\n}\n\nexport function serializePrimitive(value: string | number | boolean): string {\n return value.toString();\n}\n\nexport function deserializePrimitive(value: string): string | number | boolean {\n if (value === \"true\") {\n return true;\n } else if (value === \"false\") {\n return false;\n } else if (isInteger(value)) {\n return parseInt(value, 10);\n } else if (isFloat(value)) {\n return parseFloat(value);\n } else {\n return value;\n }\n}\n\nexport function dotify(\n obj: Object,\n prefix: string = \"\",\n newobj: Object = {}\n): { [string]: string } {\n prefix = prefix ? `${prefix}.` : prefix;\n for (const key in obj) {\n if (\n !obj.hasOwnProperty(key) ||\n obj[key] === undefined ||\n obj[key] === null ||\n typeof obj[key] === \"function\"\n ) {\n continue;\n } else if (\n obj[key] &&\n Array.isArray(obj[key]) &&\n obj[key].length &&\n obj[key].every((val) => typeof val !== \"object\")\n ) {\n newobj[`${prefix}${key}[]`] = obj[key].join(\",\");\n } else if (obj[key] && typeof obj[key] === \"object\") {\n newobj = dotify(obj[key], `${prefix}${key}`, newobj);\n } else {\n newobj[`${prefix}${key}`] = serializePrimitive(obj[key]);\n }\n }\n return newobj;\n}\n\nexport function undotify(obj: { [string]: string }): Object {\n const result = {};\n\n for (let key in obj) {\n if (!obj.hasOwnProperty(key) || typeof obj[key] !== \"string\") {\n continue;\n }\n\n let value = obj[key];\n\n if (key.match(/^.+\\[\\]$/)) {\n key = key.slice(0, -2);\n value = value.split(\",\").map(deserializePrimitive);\n } else {\n value = deserializePrimitive(value);\n }\n\n let keyResult = result;\n const parts = key.split(\".\");\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isLast = i + 1 === parts.length;\n const isIndex = !isLast && isInteger(parts[i + 1]);\n\n if (\n part === \"constructor\" ||\n part === \"prototype\" ||\n part === \"__proto__\"\n ) {\n throw new Error(`Disallowed key: ${part}`);\n }\n\n if (isLast) {\n // $FlowFixMe\n keyResult[part] = value;\n } else {\n // $FlowFixMe\n keyResult = keyResult[part] = keyResult[part] || (isIndex ? [] : {});\n }\n }\n }\n\n return result;\n}\n\nexport type EventEmitterType = {|\n on: (eventName: string, handler: Function) => CancelableType,\n once: (eventName: string, handler: Function) => CancelableType,\n trigger: (\n eventName: string,\n ...args: $ReadOnlyArray\n ) => ZalgoPromise,\n triggerOnce: (\n eventName: string,\n ...args: $ReadOnlyArray\n ) => ZalgoPromise,\n reset: () => void,\n|};\n\nexport function eventEmitter(): EventEmitterType {\n const triggered = {};\n let handlers = {};\n\n const emitter = {\n on(eventName: string, handler: Function): CancelableType {\n const handlerList = (handlers[eventName] = handlers[eventName] || []);\n\n handlerList.push(handler);\n\n let cancelled = false;\n\n return {\n cancel() {\n if (!cancelled) {\n cancelled = true;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n },\n };\n },\n\n once(eventName: string, handler: Function): CancelableType {\n const listener = emitter.on(eventName, () => {\n listener.cancel();\n handler();\n });\n\n return listener;\n },\n\n trigger(\n eventName: string,\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n const handlerList = handlers[eventName];\n const promises = [];\n\n if (handlerList) {\n for (const handler of handlerList) {\n promises.push(ZalgoPromise.try(() => handler(...args)));\n }\n }\n\n return ZalgoPromise.all(promises).then(noop);\n },\n\n triggerOnce(\n eventName: string,\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n if (triggered[eventName]) {\n return ZalgoPromise.resolve();\n }\n\n triggered[eventName] = true;\n return emitter.trigger(eventName, ...args);\n },\n\n reset() {\n handlers = {};\n },\n };\n\n return emitter;\n}\n\nexport function camelToDasherize(string: string): string {\n return string.replace(/([A-Z])/g, (g) => {\n return `-${g.toLowerCase()}`;\n });\n}\n\nexport function dasherizeToCamel(string: string): string {\n return string.replace(/-([a-z])/g, (g) => {\n return g[1].toUpperCase();\n });\n}\n\nexport function capitalizeFirstLetter(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n}\n\nexport function get(item: Object, path: string, def: mixed): mixed {\n if (!path) {\n return def;\n }\n\n const pathParts = path.split(\".\");\n\n // Loop through each section of our key path\n\n for (let i = 0; i < pathParts.length; i++) {\n // If we have an object, we can get the key\n if (typeof item === \"object\" && item !== null) {\n item = item[pathParts[i]];\n\n // Otherwise, we should return the default (undefined if not provided)\n } else {\n return def;\n }\n }\n\n // If our final result is undefined, we should return the default\n\n return item === undefined ? def : item;\n}\n\nexport function safeTimeout(method: Function, time: number) {\n const interval = safeInterval(() => {\n time -= 100;\n if (time <= 0) {\n interval.cancel();\n method();\n }\n }, 100);\n}\n\nexport function defineLazyProp(\n obj: Object | $ReadOnlyArray,\n key: string | number,\n getter: () => T\n) {\n if (Array.isArray(obj)) {\n if (typeof key !== \"number\") {\n throw new TypeError(`Array key must be number`);\n }\n } else if (typeof obj === \"object\" && obj !== null) {\n if (typeof key !== \"string\") {\n throw new TypeError(`Object key must be string`);\n }\n }\n\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: true,\n get: () => {\n // $FlowFixMe\n delete obj[key];\n const value = getter();\n // $FlowFixMe\n obj[key] = value;\n return value;\n },\n set: (value: T) => {\n // $FlowFixMe\n delete obj[key];\n // $FlowFixMe\n obj[key] = value;\n },\n });\n}\n\n// eslint-disable-next-line no-undef\nexport function arrayFrom(item: Iterable): $ReadOnlyArray {\n // $FlowFixMe[method-unbinding]\n return Array.prototype.slice.call(item);\n}\n\nexport function isObject(item: mixed): boolean {\n return typeof item === \"object\" && item !== null;\n}\n\nexport function isObjectObject(obj: mixed): boolean {\n return (\n // $FlowFixMe[method-unbinding]\n isObject(obj) && Object.prototype.toString.call(obj) === \"[object Object]\"\n );\n}\n\nexport function isPlainObject(obj: mixed): boolean {\n if (!isObjectObject(obj)) {\n return false;\n }\n\n // $FlowFixMe\n const constructor = obj.constructor;\n\n if (typeof constructor !== \"function\") {\n return false;\n }\n\n const prototype = constructor.prototype;\n\n if (!isObjectObject(prototype)) {\n return false;\n }\n\n if (!prototype.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n\n return true;\n}\n\nexport function replaceObject | Object>(\n item: T,\n replacer: (mixed, string | number, string) => mixed,\n fullKey: string = \"\"\n): T {\n if (Array.isArray(item)) {\n const length = item.length;\n const result: Array = [];\n\n for (let i = 0; i < length; i++) {\n defineLazyProp(result, i, () => {\n const itemKey = fullKey ? `${fullKey}.${i}` : `${i}`;\n const el = item[i];\n\n let child = replacer(el, i, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else if (isPlainObject(item)) {\n const result = {};\n\n for (const key in item) {\n if (!item.hasOwnProperty(key)) {\n continue;\n }\n\n defineLazyProp(result, key, () => {\n const itemKey = fullKey ? `${fullKey}.${key}` : `${key}`;\n // $FlowFixMe\n const el = item[key];\n\n let child = replacer(el, key, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else {\n throw new Error(`Pass an object or array`);\n }\n}\n\nexport function copyProp(\n source: Object,\n target: Object,\n name: string,\n def: mixed\n) {\n if (source.hasOwnProperty(name)) {\n const descriptor = Object.getOwnPropertyDescriptor(source, name);\n // $FlowFixMe\n Object.defineProperty(target, name, descriptor);\n } else {\n target[name] = def;\n }\n}\n\ntype RegexResultType = {|\n text: string,\n groups: $ReadOnlyArray,\n start: number,\n end: number,\n length: number,\n replace: (text: string) => string,\n|};\n\nexport function regex(\n pattern: string | RegExp,\n string: string,\n start: number = 0\n): ?RegexResultType {\n if (typeof pattern === \"string\") {\n // eslint-disable-next-line security/detect-non-literal-regexp\n pattern = new RegExp(pattern);\n }\n\n const result = string.slice(start).match(pattern);\n\n if (!result) {\n return;\n }\n\n // $FlowFixMe\n const index: number = result.index;\n const regmatch = result[0];\n\n return {\n text: regmatch,\n groups: result.slice(1),\n start: start + index,\n end: start + index + regmatch.length,\n length: regmatch.length,\n\n replace(text: string): string {\n if (!regmatch) {\n return \"\";\n }\n\n return `${regmatch.slice(0, start + index)}${text}${regmatch.slice(\n index + regmatch.length\n )}`;\n },\n };\n}\n\nexport function regexAll(\n pattern: string | RegExp,\n string: string\n): $ReadOnlyArray {\n const matches = [];\n let start = 0;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const regmatch = regex(pattern, string, start);\n\n if (!regmatch) {\n break;\n }\n\n matches.push(regmatch);\n start = match.end;\n }\n\n return matches;\n}\n\nexport function isDefined(value: ?mixed): boolean {\n return value !== null && value !== undefined;\n}\n\nexport function cycle(method: Function): ZalgoPromise {\n return ZalgoPromise.try(method).then(() => cycle(method));\n}\n\nexport function debounce(\n method: (...args: $ReadOnlyArray) => T,\n time: number = 100\n): (...args: $ReadOnlyArray) => void {\n let timeout;\n\n const debounceWrapper = function () {\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n return method.apply(this, arguments);\n }, time);\n };\n\n return setFunctionName(\n debounceWrapper,\n `${getFunctionName(method)}::debounced`\n );\n}\n\nexport function isRegex(item: mixed): boolean {\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(item) === \"[object RegExp]\";\n}\n\ntype FunctionProxy = (method: T) => T;\n\nexport const weakMapMemoize: FunctionProxy<*> = (\n // eslint-disable-next-line flowtype/no-weak-types\n method: (arg: any) => R\n // eslint-disable-next-line flowtype/no-weak-types\n): ((...args: $ReadOnlyArray) => R) => {\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoized(arg: any): R {\n return weakmap.getOrSet(arg, () => method.call(this, arg));\n };\n};\n\ntype FunctionPromiseProxy<\n R: mixed,\n T: (...args: $ReadOnlyArray) => ZalgoPromise\n> = (T) => T;\n\nexport const weakMapMemoizePromise: FunctionPromiseProxy<*, *> = (\n // eslint-disable-next-line flowtype/no-weak-types\n method: (arg: any) => ZalgoPromise\n // eslint-disable-next-line flowtype/no-weak-types\n): ((...args: $ReadOnlyArray) => ZalgoPromise) => {\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoizedPromise(arg: any): ZalgoPromise {\n return weakmap.getOrSet(arg, () =>\n method.call(this, arg).finally(() => {\n weakmap.delete(arg);\n })\n );\n };\n};\n\nexport function getOrSet(\n obj: O,\n key: string,\n getter: () => T\n): T {\n if (obj.hasOwnProperty(key)) {\n return obj[key];\n }\n\n const val = getter();\n obj[key] = val;\n return val;\n}\n\nexport type CleanupType = {|\n set: (string, T) => T, // eslint-disable-line no-undef\n register: (Function) => {| cancel: () => void |},\n all: (err?: mixed) => ZalgoPromise,\n|};\n\nexport function cleanup(obj: Object): CleanupType {\n const tasks = [];\n let cleaned = false;\n let cleanErr;\n\n const cleaner = {\n set(name: string, item: T): T {\n if (!cleaned) {\n obj[name] = item;\n cleaner.register(() => {\n delete obj[name];\n });\n }\n return item;\n },\n\n register(method: Function): {| cancel: () => void |} {\n const task = once(() => method(cleanErr));\n\n if (cleaned) {\n method(cleanErr);\n } else {\n tasks.push(task);\n }\n\n return {\n cancel: () => {\n const index = tasks.indexOf(task);\n if (index !== -1) {\n tasks.splice(index, 1);\n }\n },\n };\n },\n\n all(err?: mixed): ZalgoPromise {\n cleanErr = err;\n\n const results = [];\n cleaned = true;\n\n while (tasks.length) {\n const task = tasks.shift();\n results.push(task());\n }\n\n return ZalgoPromise.all(results).then(noop);\n },\n };\n\n return cleaner;\n}\n\nexport function tryCatch(\n fn: () => T\n): {| result: T, error: void |} | {| result: void, error: mixed |} {\n let result;\n let error;\n\n try {\n result = fn();\n } catch (err) {\n error = err;\n }\n\n // $FlowFixMe\n return { result, error };\n}\n\n// eslint-disable-next-line flowtype/no-mutable-array\nexport function removeFromArray>(arr: T, item: X) {\n const index = arr.indexOf(item);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n}\n\nexport function assertExists(name: string, thing: void | null | T): T {\n if (thing === null || typeof thing === \"undefined\") {\n throw new Error(`Expected ${name} to be present`);\n }\n\n return thing;\n}\n\nexport function unique(arr: $ReadOnlyArray): $ReadOnlyArray {\n const result = {};\n for (const item of arr) {\n result[item] = true;\n }\n return Object.keys(result);\n}\n\nexport const constHas = (\n constant: T,\n value: X\n): boolean => {\n return memoizedValues(constant).indexOf(value) !== -1;\n};\n\nexport function dedupeErrors(handler: (mixed) => T): (mixed) => T | void {\n const seenErrors = [];\n const seenStringifiedErrors = {};\n\n return (err) => {\n if (seenErrors.indexOf(err) !== -1) {\n return;\n }\n\n seenErrors.push(err);\n\n const stringifiedError = stringifyError(err);\n if (seenStringifiedErrors[stringifiedError]) {\n return;\n }\n\n seenStringifiedErrors[stringifiedError] = true;\n return handler(err);\n };\n}\n\nexport class ExtendableError extends Error {\n constructor(message: string) {\n super(message);\n // eslint-disable-next-line unicorn/custom-error-definition\n this.name = this.constructor.name;\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error(message).stack;\n }\n }\n}\n\nfunction isRelativeUrlWithoutProtocol(url: string): boolean {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n\nfunction decodeHtmlCharacters(str: string): string {\n const removedNullByte: string = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, (matchRegex, dec) => {\n return String.fromCharCode(dec);\n });\n}\n\nexport function sanitizeUrl(url?: string): string {\n if (!url) {\n return BLANK_URL;\n }\n\n const sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n\n if (!sanitizedUrl) {\n return BLANK_URL;\n }\n\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n\n const urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n\n const urlScheme = urlSchemeParseResults[0];\n\n if (invalidProtocolRegex.test(urlScheme)) {\n return BLANK_URL;\n }\n\n return sanitizedUrl;\n}\n","/* @flow */\n/* eslint max-lines: off */\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport {\n linkFrameWindow,\n isWindowClosed,\n assertSameDomain,\n type SameDomainWindowType,\n type CrossDomainWindowType,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport { WeakMap } from \"@krakenjs/cross-domain-safe-weakmap/src\";\n\nimport {\n isElement,\n inlineMemoize,\n memoize,\n noop,\n stringify,\n capitalizeFirstLetter,\n once,\n extend,\n safeInterval,\n uniqueID,\n arrayFrom,\n ExtendableError,\n strHashStr,\n} from \"./util\";\nimport { isDevice } from \"./device\";\nimport { KEY_CODES, ATTRIBUTES, UID_HASH_LENGTH } from \"./constants\";\nimport type { CancelableType } from \"./types\";\n\ntype ElementRefType = string | HTMLElement;\n\nexport function getBody(): HTMLBodyElement {\n // eslint-disable-next-line compat/compat\n const body = document.body;\n\n if (!body) {\n throw new Error(`Body element not found`);\n }\n\n return body;\n}\n\nexport function isDocumentReady(): boolean {\n // eslint-disable-next-line compat/compat\n return Boolean(document.body) && document.readyState === \"complete\";\n}\n\nexport function isDocumentInteractive(): boolean {\n // eslint-disable-next-line compat/compat\n return Boolean(document.body) && document.readyState === \"interactive\";\n}\n\nexport function urlEncode(str: string): string {\n return encodeURIComponent(str);\n}\n\nexport function waitForWindowReady(): ZalgoPromise {\n return inlineMemoize(waitForWindowReady, (): ZalgoPromise => {\n return new ZalgoPromise((resolve) => {\n if (isDocumentReady()) {\n resolve();\n }\n\n window.addEventListener(\"load\", () => resolve());\n });\n });\n}\n\ntype WaitForDocumentReady = () => ZalgoPromise;\n\nexport const waitForDocumentReady: WaitForDocumentReady = memoize(() => {\n return new ZalgoPromise((resolve) => {\n if (isDocumentReady() || isDocumentInteractive()) {\n return resolve();\n }\n\n const interval = setInterval(() => {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }, 10);\n });\n});\n\nexport function waitForDocumentBody(): ZalgoPromise {\n return ZalgoPromise.try(() => {\n if (document.body) {\n return document.body;\n }\n\n return waitForDocumentReady().then(() => {\n if (document.body) {\n return document.body;\n }\n\n throw new Error(\"Document ready but document.body not present\");\n });\n });\n}\n\nexport function parseQuery(queryString: string): Object {\n return inlineMemoize(\n parseQuery,\n (): Object => {\n const params = {};\n\n if (!queryString) {\n return params;\n }\n\n if (queryString.indexOf(\"=\") === -1) {\n return params;\n }\n\n for (let pair of queryString.split(\"&\")) {\n pair = pair.split(\"=\");\n\n if (pair[0] && pair[1]) {\n params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n\n return params;\n },\n [queryString]\n );\n}\n\nexport function getQueryParam(name: string): string {\n return parseQuery(window.location.search.slice(1))[name];\n}\n\nexport function urlWillRedirectPage(url: string): boolean {\n if (url.indexOf(\"#\") === -1) {\n return true;\n }\n\n if (url.indexOf(\"#\") === 0) {\n return false;\n }\n\n if (url.split(\"#\")[0] === window.location.href.split(\"#\")[0]) {\n return false;\n }\n\n return true;\n}\n\nexport type Query = {\n [string]: boolean | string,\n};\n\nexport function formatQuery(obj: Query = {}): string {\n return Object.keys(obj)\n .filter((key) => {\n return typeof obj[key] === \"string\" || typeof obj[key] === \"boolean\";\n })\n .map((key) => {\n const val = obj[key];\n\n if (typeof val !== \"string\" && typeof val !== \"boolean\") {\n throw new TypeError(`Invalid type for query`);\n }\n\n return `${urlEncode(key)}=${urlEncode(val.toString())}`;\n })\n .join(\"&\");\n}\n\nexport function extendQuery(originalQuery: string, props: Query = {}): string {\n if (!props || !Object.keys(props).length) {\n return originalQuery;\n }\n\n return formatQuery({\n ...parseQuery(originalQuery),\n ...props,\n });\n}\n\nexport function extendUrl(\n url: string,\n options: {| query?: Query, hash?: Query |}\n): string {\n const query = options.query || {};\n const hash = options.hash || {};\n\n let originalUrl;\n let originalQuery;\n let originalHash;\n\n [originalUrl, originalHash] = url.split(\"#\");\n [originalUrl, originalQuery] = originalUrl.split(\"?\");\n\n const queryString = extendQuery(originalQuery, query);\n const hashString = extendQuery(originalHash, hash);\n\n if (queryString) {\n originalUrl = `${originalUrl}?${queryString}`;\n }\n\n if (hashString) {\n originalUrl = `${originalUrl}#${hashString}`;\n }\n\n return originalUrl;\n}\n\nexport function redirect(\n url: string,\n win: CrossDomainWindowType = window\n): ZalgoPromise {\n return new ZalgoPromise((resolve) => {\n win.location = url;\n if (!urlWillRedirectPage(url)) {\n resolve();\n }\n });\n}\n\nexport function hasMetaViewPort(): boolean {\n const meta = document.querySelector(\"meta[name=viewport]\");\n\n if (isDevice() && window.screen.width < 660 && !meta) {\n return false;\n }\n\n return true;\n}\n\nexport function isElementVisible(el: HTMLElement): boolean {\n return Boolean(\n el.offsetWidth || el.offsetHeight || el.getClientRects().length\n );\n}\n\nexport function getPerformance(): ?Performance {\n return inlineMemoize(getPerformance, (): ?Performance => {\n const performance = window.performance;\n\n if (\n performance &&\n performance.now &&\n performance.timing &&\n performance.timing.connectEnd &&\n performance.timing.navigationStart &&\n Math.abs(performance.now() - Date.now()) > 1000 &&\n performance.now() -\n (performance.timing.connectEnd - performance.timing.navigationStart) >\n 0\n ) {\n return performance;\n }\n });\n}\n\nexport function enablePerformance(): boolean {\n return Boolean(getPerformance());\n}\n\nexport function getPageRenderTime(): ZalgoPromise {\n return waitForDocumentReady().then(() => {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n const timing = performance.timing;\n\n if (timing.connectEnd && timing.domInteractive) {\n return timing.domInteractive - timing.connectEnd;\n }\n });\n}\n\nexport function htmlEncode(html: string = \"\"): string {\n return html\n .toString()\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/\\//g, \"/\");\n}\n\nexport function isBrowser(): boolean {\n return typeof window !== \"undefined\" && window.location !== undefined;\n}\n\nexport function querySelectorAll(\n selector: string,\n doc: HTMLElement = window.document\n): $ReadOnlyArray {\n // $FlowFixMe[method-unbinding]\n return Array.prototype.slice.call(doc.querySelectorAll(selector));\n}\n\n/**\n * Sets up event handlers for click events and\n * enter/space keypresses.\n * @callback handler\n * @param {HTMLElement} element\n * @param {handler} handler\n */\nexport function onClick(element: HTMLElement, handler: (Event) => void) {\n element.addEventListener(\"touchstart\", noop, { passive: true });\n element.addEventListener(\"click\", handler);\n element.addEventListener(\"keypress\", (event: Event) => {\n if (\n // $FlowFixMe\n event.keyCode === KEY_CODES.ENTER ||\n // $FlowFixMe\n event.keyCode === KEY_CODES.SPACE\n ) {\n return handler(event);\n }\n });\n}\n\nexport function getScript({\n host = window.location.host,\n path,\n reverse = false,\n}: {|\n host?: string,\n path: string,\n reverse?: boolean,\n|}): ?HTMLScriptElement {\n return inlineMemoize(\n getScript,\n (): ?HTMLScriptElement => {\n const url = `${host}${path}`;\n // $FlowFixMe[method-unbinding]\n const scripts = Array.prototype.slice.call(\n document.getElementsByTagName(\"script\")\n );\n\n if (reverse) {\n scripts.reverse();\n }\n\n for (const script of scripts) {\n if (!script.src) {\n continue;\n }\n\n const src = script.src.replace(/^https?:\\/\\//, \"\").split(\"?\")[0];\n\n if (src === url) {\n return script;\n }\n }\n },\n [path]\n );\n}\n\nexport function isLocalStorageEnabled(): boolean {\n return inlineMemoize(isLocalStorageEnabled, () => {\n try {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n if (window.localStorage) {\n const value = Math.random().toString();\n window.localStorage.setItem(\"__test__localStorage__\", value);\n const result = window.localStorage.getItem(\"__test__localStorage__\");\n window.localStorage.removeItem(\"__test__localStorage__\");\n if (value === result) {\n return true;\n }\n }\n } catch (err) {\n // pass\n }\n return false;\n });\n}\n\nexport function getBrowserLocales(): $ReadOnlyArray<{|\n country?: string,\n lang: string,\n|}> {\n const nav = window.navigator;\n\n const locales = nav.languages ? [...nav.languages] : [];\n\n if (nav.language) {\n locales.push(nav.language);\n }\n\n if (nav.userLanguage) {\n locales.push(nav.userLanguage);\n }\n\n return locales\n .map((locale) => {\n if (locale && locale.match(/^[a-z]{2}[-_][A-Z]{2}$/)) {\n const [lang, country] = locale.split(/[-_]/);\n return { country, lang };\n }\n\n if (locale && locale.match(/^[a-z]{2}$/)) {\n return { lang: locale };\n }\n\n return null;\n })\n .filter(Boolean);\n}\n\nexport function appendChild(container: HTMLElement, child: HTMLElement | Text) {\n container.appendChild(child);\n}\n\nexport function getElementSafe(\n id: ElementRefType,\n doc: Document | HTMLElement = document\n): ?HTMLElement {\n if (isElement(id)) {\n // $FlowFixMe\n return id;\n }\n\n if (typeof id === \"string\") {\n return doc.querySelector(id);\n }\n}\n\nexport function getElement(\n id: ElementRefType,\n doc: Document | HTMLElement = document\n): HTMLElement {\n const element = getElementSafe(id, doc);\n\n if (element) {\n return element;\n }\n\n throw new Error(`Can not find element: ${stringify(id)}`);\n}\n\nexport function elementReady(id: ElementRefType): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n const name = stringify(id);\n let el = getElementSafe(id);\n\n if (el) {\n return resolve(el);\n }\n\n if (isDocumentReady()) {\n return reject(\n new Error(`Document is ready and element ${name} does not exist`)\n );\n }\n\n const interval = setInterval(() => {\n el = getElementSafe(id);\n\n if (el) {\n resolve(el);\n clearInterval(interval);\n return;\n }\n\n if (isDocumentReady()) {\n clearInterval(interval);\n return reject(\n new Error(`Document is ready and element ${name} does not exist`)\n );\n }\n }, 10);\n });\n}\n\n// eslint-disable-next-line unicorn/custom-error-definition\nexport class PopupOpenError extends ExtendableError {}\n\ntype PopupOptions = {|\n name?: string,\n width?: number,\n height?: number,\n top?: number,\n left?: number,\n status?: 0 | 1,\n resizable?: 0 | 1,\n toolbar?: 0 | 1,\n menubar?: 0 | 1,\n scrollbars?: 0 | 1,\n closeOnUnload?: 0 | 1,\n|};\n\nexport function popup(\n url: string,\n options?: PopupOptions\n): CrossDomainWindowType {\n // $FlowFixMe\n options = options || {};\n\n const { closeOnUnload = 1, name = \"\", width, height } = options;\n\n let top = 0;\n let left = 0;\n\n if (width) {\n if (window.outerWidth) {\n left = Math.round((window.outerWidth - width) / 2) + window.screenX;\n } else if (window.screen.width) {\n left = Math.round((window.screen.width - width) / 2);\n }\n }\n\n if (height) {\n if (window.outerHeight) {\n top = Math.round((window.outerHeight - height) / 2) + window.screenY;\n } else if (window.screen.height) {\n top = Math.round((window.screen.height - height) / 2);\n }\n }\n\n delete options.closeOnUnload;\n delete options.name;\n\n if (width && height) {\n // $FlowFixMe\n options = {\n top,\n left,\n width,\n height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1,\n ...options,\n };\n }\n\n const params = Object.keys(options)\n // eslint-disable-next-line array-callback-return\n .map((key) => {\n // $FlowFixMe\n if (options[key] !== null && options[key] !== undefined) {\n return `${key}=${stringify(options[key])}`;\n }\n })\n .filter(Boolean)\n .join(\",\");\n\n let win;\n\n try {\n win = window.open(url, name, params);\n } catch (err) {\n throw new PopupOpenError(\n `Can not open popup window - ${err.stack || err.message}`\n );\n }\n\n if (isWindowClosed(win)) {\n const err = new PopupOpenError(`Can not open popup window - blocked`);\n throw err;\n }\n\n if (closeOnUnload) {\n window.addEventListener(\"unload\", () => win.close());\n }\n\n return win;\n}\n\nexport function writeToWindow(win: SameDomainWindowType, html: string) {\n try {\n win.document.open();\n win.document.write(html);\n win.document.close();\n } catch (err) {\n try {\n win.location = `javascript: document.open(); document.write(${JSON.stringify(\n html\n )}); document.close();`;\n } catch (err2) {\n // pass\n }\n }\n}\n\nexport function writeElementToWindow(\n win: SameDomainWindowType,\n el: HTMLElement\n) {\n const tag = el.tagName.toLowerCase();\n\n if (tag !== \"html\") {\n throw new Error(`Expected element to be html, got ${tag}`);\n }\n\n const documentElement = win.document.documentElement;\n\n for (const child of arrayFrom(documentElement.children)) {\n documentElement.removeChild(child);\n }\n\n for (const child of arrayFrom(el.children)) {\n documentElement.appendChild(child);\n }\n}\n\nexport function setStyle(\n el: HTMLElement,\n styleText: string,\n doc: Document = window.document\n) {\n // $FlowFixMe\n if (el.styleSheet) {\n // $FlowFixMe\n el.styleSheet.cssText = styleText;\n } else {\n el.appendChild(doc.createTextNode(styleText));\n }\n}\n\nexport type ElementOptionsType = {|\n style?: { [string]: string },\n id?: string,\n class?: ?$ReadOnlyArray,\n attributes?: { [string]: string },\n styleSheet?: ?string,\n html?: ?string,\n|};\n\nlet awaitFrameLoadPromises: WeakMap<\n HTMLIFrameElement,\n ZalgoPromise\n>;\n\nexport function awaitFrameLoad(\n frame: HTMLIFrameElement\n): ZalgoPromise {\n awaitFrameLoadPromises = awaitFrameLoadPromises || new WeakMap();\n\n if (awaitFrameLoadPromises.has(frame)) {\n const promise = awaitFrameLoadPromises.get(frame);\n if (promise) {\n return promise;\n }\n }\n\n const promise = new ZalgoPromise((resolve, reject) => {\n frame.addEventListener(\"load\", () => {\n linkFrameWindow(frame);\n resolve(frame);\n });\n\n frame.addEventListener(\"error\", (err: Event) => {\n if (frame.contentWindow) {\n resolve(frame);\n } else {\n reject(err);\n }\n });\n });\n\n awaitFrameLoadPromises.set(frame, promise);\n\n return promise;\n}\n\nexport function awaitFrameWindow(\n frame: HTMLIFrameElement\n): ZalgoPromise {\n return awaitFrameLoad(frame).then((loadedFrame) => {\n if (!loadedFrame.contentWindow) {\n throw new Error(`Could not find window in iframe`);\n }\n\n return loadedFrame.contentWindow;\n });\n}\n\nconst getDefaultCreateElementOptions = (): ElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nexport function createElement(\n tag: string = \"div\",\n options: ElementOptionsType = getDefaultCreateElementOptions(),\n container: ?HTMLElement\n): HTMLElement {\n tag = tag.toLowerCase();\n const element = document.createElement(tag);\n\n if (options.style) {\n extend(element.style, options.style);\n }\n\n if (options.class) {\n element.className = options.class.join(\" \");\n }\n\n if (options.id) {\n element.setAttribute(\"id\", options.id);\n }\n\n if (options.attributes) {\n for (const key of Object.keys(options.attributes)) {\n element.setAttribute(key, options.attributes[key]);\n }\n }\n\n if (options.styleSheet) {\n setStyle(element, options.styleSheet);\n }\n\n if (container) {\n appendChild(container, element);\n }\n\n if (options.html) {\n if (tag === \"iframe\") {\n // $FlowFixMe\n if (!container || !element.contentWindow) {\n throw new Error(\n `Iframe html can not be written unless container provided and iframe in DOM`\n );\n }\n\n // $FlowFixMe\n writeToWindow(element.contentWindow, options.html);\n } else {\n element.innerHTML = options.html;\n }\n }\n\n return element;\n}\n\ntype StringMap = {|\n [string]: string,\n|};\n\nexport type IframeElementOptionsType = {|\n style?: StringMap,\n class?: ?$ReadOnlyArray,\n attributes?: StringMap,\n styleSheet?: ?string,\n html?: ?string,\n url?: ?string,\n|};\n\nconst getDefaultIframeOptions = (): IframeElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nconst getDefaultStringMap = (): StringMap => {\n // $FlowFixMe\n return {};\n};\n\nexport function iframe(\n options: IframeElementOptionsType = getDefaultIframeOptions(),\n container: ?HTMLElement\n): HTMLIFrameElement {\n const attributes = options.attributes || getDefaultStringMap();\n const style = options.style || getDefaultStringMap();\n\n // $FlowFixMe\n const newAttributes = {\n allowTransparency: \"true\",\n ...attributes,\n };\n\n // $FlowFixMe\n const newStyle = {\n backgroundColor: \"transparent\",\n border: \"none\",\n ...style,\n };\n\n const frame = createElement(\"iframe\", {\n attributes: newAttributes,\n style: newStyle,\n html: options.html,\n class: options.class,\n });\n\n const isIE = window.navigator.userAgent.match(/MSIE|Edge/i);\n\n if (!frame.hasAttribute(\"id\")) {\n frame.setAttribute(\"id\", uniqueID());\n }\n\n // $FlowFixMe\n awaitFrameLoad(frame);\n\n if (container) {\n const el = getElement(container);\n el.appendChild(frame);\n }\n\n if (options.url || isIE) {\n frame.setAttribute(\"src\", options.url || \"about:blank\");\n }\n\n // $FlowFixMe\n return frame;\n}\n\nexport function addEventListener(\n obj: HTMLElement,\n event: string,\n handler: (event: Event) => void\n): CancelableType {\n obj.addEventListener(event, handler);\n return {\n cancel() {\n obj.removeEventListener(event, handler);\n },\n };\n}\n\nexport function bindEvents(\n element: HTMLElement,\n eventNames: $ReadOnlyArray,\n handler: (event: Event) => void\n): CancelableType {\n handler = once(handler);\n\n for (const eventName of eventNames) {\n element.addEventListener(eventName, handler);\n }\n\n return {\n cancel: once(() => {\n for (const eventName of eventNames) {\n element.removeEventListener(eventName, handler);\n }\n }),\n };\n}\n\nconst VENDOR_PREFIXES = [\"webkit\", \"moz\", \"ms\", \"o\"];\n\nexport function setVendorCSS(\n element: HTMLElement,\n name: string,\n value: string\n) {\n // $FlowFixMe\n element.style[name] = value;\n\n const capitalizedName = capitalizeFirstLetter(name);\n\n for (const prefix of VENDOR_PREFIXES) {\n // $FlowFixMe\n element.style[`${prefix}${capitalizedName}`] = value;\n }\n}\n\nconst ANIMATION_START_EVENTS = [\n \"animationstart\",\n \"webkitAnimationStart\",\n \"oAnimationStart\",\n \"MSAnimationStart\",\n];\nconst ANIMATION_END_EVENTS = [\n \"animationend\",\n \"webkitAnimationEnd\",\n \"oAnimationEnd\",\n \"MSAnimationEnd\",\n];\n\nexport function animate(\n element: ElementRefType,\n name: string,\n clean: (Function) => void,\n timeout: number = 1000\n): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n const el = getElement(element);\n\n if (!el) {\n return resolve();\n }\n\n let hasStarted = false;\n\n // eslint-disable-next-line prefer-const\n let startTimeout;\n let endTimeout;\n // eslint-disable-next-line prefer-const\n let startEvent;\n // eslint-disable-next-line prefer-const\n let endEvent;\n\n function cleanUp() {\n clearTimeout(startTimeout);\n clearTimeout(endTimeout);\n startEvent.cancel();\n endEvent.cancel();\n }\n\n startEvent = bindEvents(el, ANIMATION_START_EVENTS, (event) => {\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n clearTimeout(startTimeout);\n\n event.stopPropagation();\n\n startEvent.cancel();\n hasStarted = true;\n\n endTimeout = setTimeout(() => {\n cleanUp();\n resolve();\n }, timeout);\n });\n\n endEvent = bindEvents(el, ANIMATION_END_EVENTS, (event) => {\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n cleanUp();\n\n if (\n // $FlowFixMe\n typeof event.animationName === \"string\" &&\n event.animationName !== name\n ) {\n return reject(\n `Expected animation name to be ${name}, found ${event.animationName}`\n );\n }\n\n return resolve();\n });\n\n setVendorCSS(el, \"animationName\", name);\n\n startTimeout = setTimeout(() => {\n if (!hasStarted) {\n cleanUp();\n return resolve();\n }\n }, 200);\n\n if (clean) {\n clean(cleanUp);\n }\n });\n}\n\nexport function makeElementVisible(element: HTMLElement) {\n element.style.setProperty(\"visibility\", \"\");\n}\n\nexport function makeElementInvisible(element: HTMLElement) {\n element.style.setProperty(\"visibility\", \"hidden\", \"important\");\n}\n\nexport function showElement(element: HTMLElement) {\n element.style.setProperty(\"display\", \"\");\n}\n\nexport function hideElement(element: HTMLElement) {\n element.style.setProperty(\"display\", \"none\", \"important\");\n}\n\nexport function destroyElement(element: HTMLElement) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n\nexport function showAndAnimate(\n element: HTMLElement,\n name: string,\n clean: (Function) => void\n): ZalgoPromise {\n const animation = animate(element, name, clean);\n showElement(element);\n return animation;\n}\n\nexport function animateAndHide(\n element: HTMLElement,\n name: string,\n clean: (Function) => void\n): ZalgoPromise {\n return animate(element, name, clean).then(() => {\n hideElement(element);\n });\n}\n\nexport function addClass(element: HTMLElement, name: string) {\n element.classList.add(name);\n}\n\nexport function removeClass(element: HTMLElement, name: string) {\n element.classList.remove(name);\n}\n\nexport function isElementClosed(el: HTMLElement): boolean {\n if (\n !el ||\n !el.parentNode ||\n !el.ownerDocument ||\n !el.ownerDocument.documentElement ||\n !el.ownerDocument.documentElement.contains(el)\n ) {\n return true;\n }\n return false;\n}\n\nexport function watchElementForClose(\n element: HTMLElement,\n handler: () => mixed\n): CancelableType {\n handler = once(handler);\n\n let cancelled = false;\n const mutationObservers = [];\n // eslint-disable-next-line prefer-const\n let interval;\n // eslint-disable-next-line prefer-const\n let sacrificialFrame;\n let sacrificialFrameWin;\n\n const cancel = () => {\n cancelled = true;\n for (const observer of mutationObservers) {\n observer.disconnect();\n }\n if (interval) {\n interval.cancel();\n }\n if (sacrificialFrameWin) {\n // eslint-disable-next-line no-use-before-define\n sacrificialFrameWin.removeEventListener(\"unload\", elementClosed);\n }\n if (sacrificialFrame) {\n destroyElement(sacrificialFrame);\n }\n };\n\n const elementClosed = () => {\n if (!cancelled) {\n handler();\n cancel();\n }\n };\n\n if (isElementClosed(element)) {\n elementClosed();\n return { cancel };\n }\n\n // Strategy 1: Mutation observer\n\n if (window.MutationObserver) {\n let mutationElement = element.parentElement;\n while (mutationElement) {\n const mutationObserver = new window.MutationObserver(() => {\n if (isElementClosed(element)) {\n elementClosed();\n }\n });\n\n mutationObserver.observe(mutationElement, { childList: true });\n mutationObservers.push(mutationObserver);\n mutationElement = mutationElement.parentElement;\n }\n }\n\n // Strategy 2: Sacrificial iframe\n\n sacrificialFrame = document.createElement(\"iframe\");\n sacrificialFrame.setAttribute(\"name\", `__detect_close_${uniqueID()}__`);\n sacrificialFrame.style.display = \"none\";\n awaitFrameWindow(sacrificialFrame).then((frameWin) => {\n sacrificialFrameWin = assertSameDomain(frameWin);\n sacrificialFrameWin.addEventListener(\"unload\", elementClosed);\n });\n element.appendChild(sacrificialFrame);\n\n // Strategy 3: Poller\n\n const check = () => {\n if (isElementClosed(element)) {\n elementClosed();\n }\n };\n interval = safeInterval(check, 1000);\n\n return { cancel };\n}\n\nexport function fixScripts(el: HTMLElement, doc: Document = window.document) {\n for (const script of querySelectorAll(\"script\", el)) {\n const parentNode = script.parentNode;\n\n if (!parentNode) {\n continue;\n }\n\n const newScript = doc.createElement(\"script\");\n newScript.text = script.textContent;\n parentNode.replaceChild(newScript, script);\n }\n}\n\ntype OnResizeOptions = {|\n width?: boolean,\n height?: boolean,\n interval?: number,\n win?: SameDomainWindowType,\n|};\n\nexport function onResize(\n el: HTMLElement,\n handler: ({| width: number, height: number |}) => void,\n {\n width = true,\n height = true,\n interval = 100,\n win = window,\n }: OnResizeOptions = {}\n): {| cancel: () => void |} {\n let currentWidth = el.offsetWidth;\n let currentHeight = el.offsetHeight;\n let canceled = false;\n\n handler({ width: currentWidth, height: currentHeight });\n\n const check = () => {\n if (canceled || !isElementVisible(el)) {\n return;\n }\n\n const newWidth = el.offsetWidth;\n const newHeight = el.offsetHeight;\n\n if (\n (width && newWidth !== currentWidth) ||\n (height && newHeight !== currentHeight)\n ) {\n handler({ width: newWidth, height: newHeight });\n }\n\n currentWidth = newWidth;\n currentHeight = newHeight;\n };\n\n let observer;\n let timeout;\n\n win.addEventListener(\"resize\", check);\n\n if (typeof win.ResizeObserver !== \"undefined\") {\n observer = new win.ResizeObserver(check);\n observer.observe(el);\n timeout = safeInterval(check, interval * 10);\n } else if (typeof win.MutationObserver !== \"undefined\") {\n observer = new win.MutationObserver(check);\n observer.observe(el, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: false,\n });\n timeout = safeInterval(check, interval * 10);\n } else {\n timeout = safeInterval(check, interval);\n }\n\n return {\n cancel: () => {\n canceled = true;\n observer.disconnect();\n window.removeEventListener(\"resize\", check);\n timeout.cancel();\n },\n };\n}\n\nexport function getResourceLoadTime(url: string): ?number {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n // $FlowFixMe[method-unbinding]\n if (typeof performance.getEntries !== \"function\") {\n return;\n }\n\n const entries = performance.getEntries();\n\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n\n if (\n entry &&\n entry.name &&\n entry.name.indexOf(url) === 0 &&\n typeof entry.duration === \"number\"\n ) {\n return Math.floor(entry.duration);\n }\n }\n}\n\nexport function isShadowElement(element: Node): boolean {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n return element.toString() === \"[object ShadowRoot]\";\n}\n\nexport function getShadowRoot(element: Node): ?Node {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n if (isShadowElement(element)) {\n return element;\n }\n}\n\nexport function getShadowHost(element: Node): ?HTMLElement {\n const shadowRoot = getShadowRoot(element);\n\n // $FlowFixMe\n if (shadowRoot && shadowRoot.host) {\n // $FlowFixMe\n return shadowRoot.host;\n }\n}\n\nexport function insertShadowSlot(element: HTMLElement): HTMLElement {\n const shadowHost = getShadowHost(element);\n\n if (!shadowHost) {\n throw new Error(`Element is not in shadow dom`);\n }\n\n const slotName = `shadow-slot-${uniqueID()}`;\n const slot = document.createElement(\"slot\");\n slot.setAttribute(\"name\", slotName);\n element.appendChild(slot);\n\n const slotProvider = document.createElement(\"div\");\n slotProvider.setAttribute(\"slot\", slotName);\n shadowHost.appendChild(slotProvider);\n\n if (isShadowElement(shadowHost)) {\n return insertShadowSlot(slotProvider);\n }\n\n return slotProvider;\n}\n\nexport function preventClickFocus(el: HTMLElement) {\n const onFocus = (event: Event) => {\n el.removeEventListener(\"focus\", onFocus);\n event.preventDefault();\n el.blur();\n return false;\n };\n\n el.addEventListener(\"mousedown\", () => {\n el.addEventListener(\"focus\", onFocus);\n setTimeout(() => {\n el.removeEventListener(\"focus\", onFocus);\n }, 1);\n });\n}\n\nexport function getStackTrace(): string {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n}\n\nfunction inferCurrentScript(): ?HTMLScriptElement {\n try {\n const stack = getStackTrace();\n const stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n const scriptLocation = stackDetails && stackDetails[1];\n\n if (!scriptLocation) {\n return;\n }\n\n // $FlowFixMe[method-unbinding]\n for (const script of Array.prototype.slice\n .call(document.getElementsByTagName(\"script\"))\n .reverse()) {\n if (script.src && script.src === scriptLocation) {\n return script;\n }\n }\n } catch (err) {\n // pass\n }\n}\n\nlet currentScript =\n // eslint-disable-next-line compat/compat\n typeof document !== \"undefined\" ? document.currentScript : null;\n\ntype GetCurrentScript = () => HTMLScriptElement;\n\nexport const getCurrentScript: GetCurrentScript = memoize(() => {\n if (currentScript) {\n return currentScript;\n }\n\n currentScript = inferCurrentScript();\n\n if (currentScript) {\n return currentScript;\n }\n\n throw new Error(\"Can not determine current script\");\n});\n\nconst currentUID = uniqueID();\n\ntype GetCurrentScriptUID = () => string;\n\nexport const getCurrentScriptUID: GetCurrentScriptUID = memoize(() => {\n let script;\n\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n\n let uid = script.getAttribute(ATTRIBUTES.UID);\n\n if (uid && typeof uid === \"string\") {\n return uid;\n }\n\n uid = script.getAttribute(`${ATTRIBUTES.UID}-auto`);\n\n if (uid && typeof uid === \"string\") {\n return uid;\n }\n\n if (script.src) {\n const { src, dataset } = script;\n const stringToHash = JSON.stringify({ src, dataset });\n const hashedString = strHashStr(stringToHash);\n const hashResult = hashedString.slice(\n hashedString.length - UID_HASH_LENGTH\n );\n\n uid = `uid_${hashResult}`;\n } else {\n uid = uniqueID();\n }\n\n script.setAttribute(`${ATTRIBUTES.UID}-auto`, uid);\n\n return uid;\n});\n\ntype SubmitFormOptions = {|\n url: string,\n target: string,\n body?: {| [string]: string | boolean |},\n method?: string,\n|};\n\nexport function submitForm({\n url,\n target,\n body,\n method = \"post\",\n}: SubmitFormOptions) {\n const form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n\n if (body) {\n for (const key of Object.keys(body)) {\n const input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", body[key]?.toString());\n form.appendChild(input);\n }\n }\n\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n}\n","/* @flow */\n\nimport { uniqueID, getGlobal, inlineMemoize } from \"./util\";\nimport { isLocalStorageEnabled } from \"./dom\";\n\ntype Getter = (handler: (Object) => T) => T;\n\nexport type Storage = {|\n getState: Getter<*>,\n getID: () => string,\n isStateFresh: () => boolean,\n getSessionState: Getter<*>,\n getSessionID: () => string,\n|};\n\nconst DEFAULT_SESSION_STORAGE = 20 * 60 * 1000;\n\nexport function getStorage({\n name,\n lifetime = DEFAULT_SESSION_STORAGE,\n // a sticky session id helps to identify sdk sessions that were created by other sdks\n // like the situation where the Braintree SDK loads the PP SDK\n stickySessionId,\n}: {|\n name: string,\n lifetime?: number,\n stickySessionId?: string,\n|}): Storage {\n return inlineMemoize(\n getStorage,\n () => {\n const STORAGE_KEY = `__${name}_storage__`;\n const newStateID = uniqueID();\n\n let accessedStorage;\n\n function getState(handler: (storage: Object) => T): T {\n const localStorageEnabled = isLocalStorageEnabled();\n let storage;\n\n if (accessedStorage) {\n storage = accessedStorage;\n }\n\n if (!storage && localStorageEnabled) {\n const rawStorage = window.localStorage.getItem(STORAGE_KEY);\n\n if (rawStorage) {\n storage = JSON.parse(rawStorage);\n }\n }\n\n if (!storage) {\n storage = getGlobal()[STORAGE_KEY];\n }\n\n if (!storage) {\n storage = {\n id: newStateID,\n };\n }\n\n if (!storage.id) {\n storage.id = newStateID;\n }\n\n accessedStorage = storage;\n\n const result = handler(storage);\n\n if (localStorageEnabled) {\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(storage));\n } else {\n getGlobal()[STORAGE_KEY] = storage;\n }\n\n accessedStorage = null;\n\n return result;\n }\n\n function getID(): string {\n return getState((storage) => storage.id);\n }\n\n function isStateFresh(): boolean {\n return getID() === newStateID;\n }\n\n function getSession(handler: (state: Object) => T): T {\n return getState((storage) => {\n let session = storage.__session__;\n const now = Date.now();\n\n if (session && now - session.created > lifetime) {\n session = null;\n }\n\n if (!session) {\n session = {\n guid: stickySessionId || uniqueID(),\n created: now,\n };\n }\n\n storage.__session__ = session;\n\n return handler(session);\n });\n }\n\n function getSessionState(handler: (state: Object) => T): T {\n return getSession((session) => {\n session.state = session.state || {};\n return handler(session.state);\n });\n }\n\n function getSessionID(): string {\n return getSession((session) => session.guid);\n }\n\n return {\n getState,\n getID,\n isStateFresh,\n getSessionState,\n getSessionID,\n };\n },\n [{ name, lifetime }]\n );\n}\n","/* @flow */\n\nimport { noop } from \"./util\";\nimport { getStorage } from \"./storage\";\n\nfunction getBelterExperimentStorage(): Object {\n return getStorage({ name: \"belter_experiment\" });\n}\n\nfunction isEventUnique(name: string): boolean {\n return getBelterExperimentStorage().getSessionState((state) => {\n state.loggedBeacons = state.loggedBeacons || [];\n\n if (state.loggedBeacons.indexOf(name) === -1) {\n state.loggedBeacons.push(name);\n return true;\n }\n\n return false;\n });\n}\n\ntype Payload = {\n [string]: ?(string | boolean),\n};\n\nexport type Experiment = {|\n isEnabled: () => boolean,\n isDisabled: () => boolean,\n getTreatment: () => string,\n log: (string, payload?: Payload) => Experiment,\n logStart: (payload?: Payload) => Experiment,\n logComplete: (payload?: Payload) => Experiment,\n|};\n\nfunction getRandomInteger(range: number): number {\n return Math.floor(Math.random() * range);\n}\n\nfunction getThrottlePercentile(name: string): number {\n return getBelterExperimentStorage().getState((state) => {\n state.throttlePercentiles = state.throttlePercentiles || {};\n state.throttlePercentiles[name] =\n state.throttlePercentiles[name] || getRandomInteger(100);\n return state.throttlePercentiles[name];\n });\n}\n\nconst THROTTLE_GROUP = {\n TEST: \"test\",\n CONTROL: \"control\",\n THROTTLE: \"throttle\",\n};\n\ntype ExperimentOptions = {|\n name: string,\n sample?: number,\n logTreatment?: ({|\n name: string,\n treatment: string,\n payload: Payload,\n throttle: number,\n |}) => void,\n logCheckpoint?: ({|\n name: string,\n treatment: string,\n checkpoint: string,\n payload: Payload,\n throttle: number,\n |}) => void,\n sticky?: boolean,\n|};\n\nexport function experiment({\n name,\n sample = 50,\n logTreatment = noop,\n logCheckpoint = noop,\n sticky = true,\n}: ExperimentOptions): Experiment {\n const throttle = sticky ? getThrottlePercentile(name) : getRandomInteger(100);\n\n let group;\n\n if (throttle < sample && !__TEST__) {\n group = THROTTLE_GROUP.TEST;\n } else if (sample >= 50 || (sample <= throttle && throttle < sample * 2)) {\n group = THROTTLE_GROUP.CONTROL;\n } else {\n group = THROTTLE_GROUP.THROTTLE;\n }\n\n const treatment = `${name}_${group}`;\n\n let started = false;\n let forced = false;\n\n try {\n if (window.localStorage && window.localStorage.getItem(name)) {\n forced = true;\n }\n } catch (err) {\n // pass\n }\n\n const exp = {\n isEnabled(): boolean {\n return group === THROTTLE_GROUP.TEST || forced;\n },\n\n isDisabled(): boolean {\n return group !== THROTTLE_GROUP.TEST && !forced;\n },\n\n getTreatment(): string {\n return treatment;\n },\n\n log(checkpoint: string, payload?: Payload = {}): Experiment {\n if (!started) {\n return exp;\n }\n\n if (isEventUnique(`${treatment}_${JSON.stringify(payload)}`)) {\n logTreatment({ name, treatment, payload, throttle });\n }\n\n if (\n isEventUnique(`${treatment}_${checkpoint}_${JSON.stringify(payload)}`)\n ) {\n logCheckpoint({ name, treatment, checkpoint, payload, throttle });\n }\n\n return exp;\n },\n\n logStart(payload?: Payload = {}): Experiment {\n started = true;\n return exp.log(`start`, payload);\n },\n\n logComplete(payload?: Payload = {}): Experiment {\n return exp.log(`complete`, payload);\n },\n };\n\n return exp;\n}\n","/* @flow */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { type SameDomainWindowType } from \"@krakenjs/cross-domain-utils/src\";\n\ntype RequestOptionsType = {|\n url: string,\n method?: string,\n headers?: { [key: string]: string },\n json?: $ReadOnlyArray | Object,\n data?: { [key: string]: string },\n body?: string,\n win?: SameDomainWindowType,\n timeout?: number,\n|};\n\ntype ResponseType = {|\n status: number,\n headers: { [string]: string },\n body: Object,\n|};\n\nconst HEADERS = {\n CONTENT_TYPE: \"content-type\",\n ACCEPT: \"accept\",\n};\n\nconst headerBuilders = [];\n\nfunction parseHeaders(rawHeaders: string = \"\"): { [string]: string } {\n const result = {};\n for (const line of rawHeaders.trim().split(\"\\n\")) {\n const [key, ...values] = line.split(\":\");\n result[key.toLowerCase()] = values.join(\":\").trim();\n }\n return result;\n}\n\nexport function request({\n url,\n method = \"get\",\n headers = {},\n json,\n data,\n body,\n win = window,\n timeout = 0,\n}: RequestOptionsType): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n if ((json && data) || (json && body) || (data && json)) {\n throw new Error(\n `Only options.json or options.data or options.body should be passed`\n );\n }\n\n const normalizedHeaders = {};\n\n for (const key of Object.keys(headers)) {\n normalizedHeaders[key.toLowerCase()] = headers[key];\n }\n\n if (json) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] =\n normalizedHeaders[HEADERS.CONTENT_TYPE] || \"application/json\";\n } else if (data || body) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] =\n normalizedHeaders[HEADERS.CONTENT_TYPE] ||\n \"application/x-www-form-urlencoded; charset=utf-8\";\n }\n\n normalizedHeaders[HEADERS.ACCEPT] =\n normalizedHeaders[HEADERS.ACCEPT] || \"application/json\";\n\n for (const headerBuilder of headerBuilders) {\n const builtHeaders = headerBuilder();\n\n for (const key of Object.keys(builtHeaders)) {\n normalizedHeaders[key.toLowerCase()] = builtHeaders[key];\n }\n }\n\n const xhr = new win.XMLHttpRequest();\n\n xhr.addEventListener(\n \"load\",\n function xhrLoad(): void {\n const responseHeaders = parseHeaders(this.getAllResponseHeaders());\n\n if (!this.status) {\n return reject(\n new Error(\n `Request to ${method.toLowerCase()} ${url} failed: no response status code.`\n )\n );\n }\n\n const contentType = responseHeaders[\"content-type\"];\n const isJSON =\n contentType &&\n (contentType.indexOf(\"application/json\") === 0 ||\n contentType.indexOf(\"text/json\") === 0);\n let responseBody = this.responseText;\n\n try {\n responseBody = JSON.parse(responseBody);\n } catch (err) {\n if (isJSON) {\n return reject(new Error(`Invalid json: ${this.responseText}.`));\n }\n }\n\n const res = {\n status: this.status,\n headers: responseHeaders,\n body: responseBody,\n };\n\n return resolve(res);\n },\n false\n );\n\n xhr.addEventListener(\n \"error\",\n (evt) => {\n reject(\n new Error(\n `Request to ${method.toLowerCase()} ${url} failed: ${evt.toString()}.`\n )\n );\n },\n false\n );\n\n xhr.open(method, url, true);\n\n for (const key in normalizedHeaders) {\n if (normalizedHeaders.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, normalizedHeaders[key]);\n }\n }\n\n if (json) {\n body = JSON.stringify(json);\n } else if (data) {\n body = Object.keys(data)\n .map((key) => {\n return `${encodeURIComponent(key)}=${\n data ? encodeURIComponent(data[key]) : \"\"\n }`;\n })\n .join(\"&\");\n }\n\n xhr.timeout = timeout;\n xhr.ontimeout = function xhrTimeout() {\n reject(\n new Error(`Request to ${method.toLowerCase()} ${url} has timed out`)\n );\n };\n\n xhr.send(body);\n });\n}\n\nexport function addHeaderBuilder(method: () => { [string]: string }) {\n headerBuilders.push(method);\n}\n","/* @flow */\n\nexport function isPromise(item : mixed) : boolean {\n try {\n if (!item) {\n return false;\n }\n\n if (typeof Promise !== 'undefined' && item instanceof Promise) {\n return true;\n }\n\n if (typeof window !== 'undefined' && typeof window.Window === 'function' && item instanceof window.Window) {\n return false;\n }\n\n if (typeof window !== 'undefined' && typeof window.constructor === 'function' && item instanceof window.constructor) {\n return false;\n }\n\n const toString = ({}).toString;\n\n if (toString) {\n const name = toString.call(item);\n\n if (name === '[object Window]' || name === '[object global]' || name === '[object DOMWindow]') {\n return false;\n }\n }\n\n if (typeof item.then === 'function') {\n return true;\n }\n } catch (err) {\n return false;\n }\n\n return false;\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nconst dispatchedErrors = [];\nconst possiblyUnhandledPromiseHandlers : Array<(mixed, promise? : ZalgoPromise) => void> = [];\n\nexport function dispatchPossiblyUnhandledError(err : mixed, promise : ZalgoPromise) {\n\n if (dispatchedErrors.indexOf(err) !== -1) {\n return;\n }\n\n dispatchedErrors.push(err);\n\n setTimeout(() => {\n if (__DEBUG__) {\n // $FlowFixMe\n throw new Error(`${ err.stack || err.toString() }\\n\\nFrom promise:\\n\\n${ promise.stack }`);\n }\n\n throw err;\n }, 1);\n\n for (let j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) {\n // $FlowFixMe\n possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n}\n\nexport function onPossiblyUnhandledException(handler : (mixed, promise? : ZalgoPromise) => void) : {| cancel : () => void |} {\n possiblyUnhandledPromiseHandlers.push(handler);\n\n return {\n cancel() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nlet activeCount = 0;\nlet flushPromise;\n\nfunction flushActive() {\n if (!activeCount && flushPromise) {\n const promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n}\n\nexport function startActive() {\n activeCount += 1;\n}\n\nexport function endActive() {\n activeCount -= 1;\n flushActive();\n}\n\nexport function awaitActive(Zalgo : Class>) : ZalgoPromise { // eslint-disable-line no-undef\n const promise = flushPromise = flushPromise || new Zalgo();\n flushActive();\n return promise;\n}\n","/* @flow */\n/* eslint no-use-before-define: off */\n\nimport { isPromise } from './utils';\nimport { onPossiblyUnhandledException, dispatchPossiblyUnhandledError } from './exceptions';\nimport { startActive, endActive, awaitActive } from './flush';\n\nexport class ZalgoPromise {\n\n resolved : boolean;\n rejected : boolean;\n errorHandled : boolean;\n value : R;\n error : mixed;\n // eslint-disable-next-line flowtype/no-mutable-array\n handlers : Array<{|\n promise : ZalgoPromise<*>,\n onSuccess : void | (result : R) => mixed,\n onError : void | (error : mixed) => mixed\n |}>;\n dispatching : boolean;\n stack : string;\n\n constructor(handler : ?(resolve : (result : R) => void, reject : (error : mixed) => void) => void) {\n\n this.resolved = false;\n this.rejected = false;\n this.errorHandled = false;\n\n this.handlers = [];\n\n if (handler) {\n\n let result;\n let error;\n let resolved = false;\n let rejected = false;\n let isAsync = false;\n\n startActive();\n\n try {\n handler(res => {\n if (isAsync) {\n this.resolve(res);\n } else {\n resolved = true;\n result = res;\n }\n\n }, err => {\n if (isAsync) {\n this.reject(err);\n } else {\n rejected = true;\n error = err;\n }\n });\n\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n\n endActive();\n\n isAsync = true;\n\n if (resolved) {\n // $FlowFixMe\n this.resolve(result);\n } else if (rejected) {\n this.reject(error);\n }\n }\n\n if (__DEBUG__) {\n try {\n throw new Error(`ZalgoPromise`);\n } catch (err) {\n this.stack = err.stack;\n }\n }\n }\n\n resolve(result : R) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(result)) {\n throw new Error('Can not resolve promise with another promise');\n }\n\n this.resolved = true;\n this.value = result;\n this.dispatch();\n\n return this;\n }\n\n reject(error : mixed) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(error)) {\n throw new Error('Can not reject promise with another promise');\n }\n\n if (!error) {\n // $FlowFixMe\n const err = (error && typeof error.toString === 'function' ? error.toString() : Object.prototype.toString.call(error));\n error = new Error(`Expected reject to be called with Error, got ${ err }`);\n }\n\n this.rejected = true;\n this.error = error;\n\n if (!this.errorHandled) {\n setTimeout(() => {\n if (!this.errorHandled) {\n dispatchPossiblyUnhandledError(error, this);\n }\n }, 1);\n }\n\n this.dispatch();\n\n return this;\n }\n\n asyncReject(error : mixed) : ZalgoPromise {\n this.errorHandled = true;\n this.reject(error);\n return this;\n }\n\n dispatch() {\n\n const { dispatching, resolved, rejected, handlers } = this;\n\n if (dispatching) {\n return;\n }\n\n if (!resolved && !rejected) {\n return;\n }\n\n this.dispatching = true;\n startActive();\n\n const chain = (firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n secondPromise.resolve(res);\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < handlers.length; i++) {\n\n const { onSuccess, onError, promise } = handlers[i];\n\n let result;\n\n if (resolved) {\n\n try {\n result = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n }\n\n } else if (rejected) {\n\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n\n try {\n result = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n const promiseResult : ZalgoPromise<*> = result;\n\n if (promiseResult.resolved) {\n promise.resolve(promiseResult.value);\n } else {\n promise.reject(promiseResult.error);\n }\n\n promiseResult.errorHandled = true;\n\n } else if (isPromise(result)) {\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n if (result.resolved) {\n promise.resolve(result.value);\n } else {\n promise.reject(result.error);\n }\n\n } else {\n // $FlowFixMe\n chain(result, promise);\n }\n\n } else {\n\n promise.resolve(result);\n }\n }\n\n handlers.length = 0;\n this.dispatching = false;\n endActive();\n }\n\n then(onSuccess : void | (result : R) => (ZalgoPromise | Y), onError : void | (error : mixed) => (ZalgoPromise | Y)) : ZalgoPromise {\n\n if (onSuccess && typeof onSuccess !== 'function' && !onSuccess.call) {\n throw new Error('Promise.then expected a function for success handler');\n }\n\n if (onError && typeof onError !== 'function' && !onError.call) {\n throw new Error('Promise.then expected a function for error handler');\n }\n\n const promise = new ZalgoPromise();\n\n this.handlers.push({\n promise,\n onSuccess,\n onError\n });\n\n this.errorHandled = true;\n\n this.dispatch();\n\n return promise;\n }\n\n catch(onError : (error : mixed) => ZalgoPromise | Y) : ZalgoPromise {\n // $FlowFixMe incompatible-call\n const resultPromise : ZalgoPromise = this.then(undefined, onError);\n return resultPromise;\n }\n\n finally(onFinally : () => mixed) : ZalgoPromise {\n\n if (onFinally && typeof onFinally !== 'function' && !onFinally.call) {\n throw new Error('Promise.finally expected a function');\n }\n\n return this.then((result) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n return result;\n });\n }, (err) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n throw err;\n });\n });\n }\n\n timeout(time : number, err : ?Error) : ZalgoPromise {\n\n if (this.resolved || this.rejected) {\n return this;\n }\n\n const timeout = setTimeout(() => {\n\n if (this.resolved || this.rejected) {\n return;\n }\n\n this.reject(err || new Error(`Promise timed out after ${ time }ms`));\n\n }, time);\n\n return this.then(result => {\n clearTimeout(timeout);\n return result;\n });\n }\n\n // $FlowFixMe\n toPromise() : Promise {\n // $FlowFixMe\n if (typeof Promise === 'undefined') {\n throw new TypeError(`Could not find Promise`);\n }\n // $FlowFixMe\n return Promise.resolve(this); // eslint-disable-line compat/compat\n }\n\n lazy() : ZalgoPromise {\n this.errorHandled = true;\n return this;\n }\n\n static resolve(value : ZalgoPromise | Y) : ZalgoPromise {\n\n if (value instanceof ZalgoPromise) {\n // $FlowFixMe incompatible-type-arg\n const result : ZalgoPromise = value;\n return result;\n }\n\n if (isPromise(value)) {\n // $FlowFixMe\n return new ZalgoPromise((resolve, reject) => value.then(resolve, reject));\n }\n\n return new ZalgoPromise().resolve(value);\n }\n\n static reject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().reject(error);\n }\n\n static asyncReject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().asyncReject(error);\n }\n\n static all>(promises : X) : ZalgoPromise<$TupleMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n\n const promise = new ZalgoPromise();\n let count = promises.length;\n // eslint-disable-next-line no-undef, unicorn/prefer-spread\n const results = ([] : $TupleMap(ZalgoPromise | Y) => Y>).slice();\n\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n\n const chain = (i : number, firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n results[i] = res;\n count -= 1;\n if (count === 0) {\n promise.resolve(results);\n }\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < promises.length; i++) {\n const prom = promises[i];\n\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n\n if (count === 0) {\n promise.resolve(results);\n }\n\n return promise;\n }\n\n static hash(promises : O) : ZalgoPromise<$ObjMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n const result = {};\n const awaitPromises = [];\n\n for (const key in promises) {\n if (promises.hasOwnProperty(key)) {\n const value = promises[key];\n\n if (isPromise(value)) {\n awaitPromises.push(value.then(res => {\n result[key] = res;\n }));\n } else {\n result[key] = value;\n }\n }\n }\n\n return ZalgoPromise.all(awaitPromises).then(() => result);\n }\n\n static map(items : $ReadOnlyArray, method : (T) => (ZalgoPromise | X)) : ZalgoPromise<$ReadOnlyArray> {\n // $FlowFixMe\n return ZalgoPromise.all(items.map(method));\n }\n\n static onPossiblyUnhandledException(handler : (err : mixed) => void) : {| cancel : () => void |} {\n return onPossiblyUnhandledException(handler);\n }\n\n static try>(method : (...args : $ReadOnlyArray) => (ZalgoPromise | Y), context? : C, args? : A) : ZalgoPromise {\n\n if (method && typeof method !== 'function' && !method.call) {\n throw new Error('Promise.try expected a function');\n }\n\n let result : ZalgoPromise | Y;\n\n startActive();\n\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n\n endActive();\n\n // $FlowFixMe incompatible-call\n const resultPromise = ZalgoPromise.resolve(result);\n\n return resultPromise;\n }\n\n static delay(delay : number) : ZalgoPromise {\n return new ZalgoPromise(resolve => {\n setTimeout(resolve, delay);\n });\n }\n\n static isPromise(value : mixed) : boolean {\n\n if (value && value instanceof ZalgoPromise) {\n return true;\n }\n\n return isPromise(value);\n }\n\n static flush() : ZalgoPromise {\n return awaitActive(ZalgoPromise);\n }\n}\n","export default function _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}","/* @flow */\n\nexport const PROTOCOL = {\n MOCK: (\"mock:\": \"mock:\"),\n FILE: (\"file:\": \"file:\"),\n ABOUT: (\"about:\": \"about:\"),\n};\n\nexport const WILDCARD = \"*\";\n\nexport const WINDOW_TYPE = {\n IFRAME: (\"iframe\": \"iframe\"),\n POPUP: (\"popup\": \"popup\"),\n};\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport { isRegex, noop } from \"./util\";\nimport type {\n CrossDomainWindowType,\n SameDomainWindowType,\n DomainMatcher,\n} from \"./types\";\nimport { PROTOCOL, WILDCARD } from \"./constants\";\n\nconst IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n\nexport function getActualProtocol(win: SameDomainWindowType = window): ?string {\n return win.location.protocol;\n}\n\nexport function getProtocol(win: SameDomainWindowType = window): ?string {\n if (win.mockDomain) {\n const protocol = win.mockDomain.split(\"//\")[0];\n\n if (protocol) {\n return protocol;\n }\n }\n\n return getActualProtocol(win);\n}\n\nexport function isFileProtocol(win: SameDomainWindowType = window): boolean {\n return getProtocol(win) === PROTOCOL.FILE;\n}\n\nexport function isAboutProtocol(win: SameDomainWindowType = window): boolean {\n return getProtocol(win) === PROTOCOL.ABOUT;\n}\n\nexport function isMockProtocol(win: SameDomainWindowType = window): boolean {\n return getProtocol(win) === PROTOCOL.MOCK;\n}\n\nexport function getParent(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n if (!win) {\n return;\n }\n\n try {\n if (win.parent && win.parent !== win) {\n return win.parent;\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function getOpener(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n if (!win) {\n return;\n }\n\n // Make sure we're not actually an iframe which has had window.open() called on us\n if (getParent(win)) {\n return;\n }\n\n try {\n return win.opener;\n } catch (err) {\n // pass\n }\n}\n\nexport function canReadFromWindow(\n win: CrossDomainWindowType | SameDomainWindowType\n): boolean {\n try {\n // $FlowFixMe\n noop(win && win.location && win.location.href);\n return true;\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function getActualDomain(win?: SameDomainWindowType = window): string {\n const location = win.location;\n\n if (!location) {\n throw new Error(`Can not read window location`);\n }\n\n const protocol = getActualProtocol(win);\n\n if (!protocol) {\n throw new Error(`Can not read window protocol`);\n }\n\n if (protocol === PROTOCOL.FILE) {\n return `${PROTOCOL.FILE}//`;\n }\n\n if (protocol === PROTOCOL.ABOUT) {\n const parent = getParent(win);\n if (parent && canReadFromWindow(parent)) {\n // $FlowFixMe\n return getActualDomain(parent);\n }\n\n return `${PROTOCOL.ABOUT}//`;\n }\n\n const host = location.host;\n\n if (!host) {\n throw new Error(`Can not read window host`);\n }\n\n return `${protocol}//${host}`;\n}\n\nexport function getDomain(win?: SameDomainWindowType = window): string {\n const domain = getActualDomain(win);\n\n if (domain && win.mockDomain && win.mockDomain.indexOf(PROTOCOL.MOCK) === 0) {\n return win.mockDomain;\n }\n\n return domain;\n}\n\nexport function isBlankDomain(win: CrossDomainWindowType): boolean {\n try {\n // $FlowFixMe\n if (!win.location.href) {\n return true;\n }\n\n if (win.location.href === \"about:blank\") {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isActuallySameDomain(win: CrossDomainWindowType): boolean {\n try {\n if (win === window) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n const desc = Object.getOwnPropertyDescriptor(win, \"location\");\n\n if (desc && desc.enumerable === false) {\n return false;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isMockProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (getActualDomain(win) === getActualDomain(window)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isSameDomain(\n win: CrossDomainWindowType | SameDomainWindowType\n): boolean {\n if (!isActuallySameDomain(win)) {\n return false;\n }\n\n try {\n if (win === window) {\n return true;\n }\n\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n\n // $FlowFixMe\n if (getDomain(window) === getDomain(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function assertSameDomain(\n win: CrossDomainWindowType | SameDomainWindowType\n): SameDomainWindowType {\n if (!isSameDomain(win)) {\n throw new Error(`Expected window to be same domain`);\n }\n\n // $FlowFixMe\n return win;\n}\n\nexport function getParents(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const result = [];\n\n try {\n while (win.parent !== win) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {\n // pass\n }\n\n return result;\n}\n\nexport function isAncestorParent(\n parent: CrossDomainWindowType,\n child: CrossDomainWindowType\n): boolean {\n if (!parent || !child) {\n return false;\n }\n\n const childParent = getParent(child);\n\n if (childParent) {\n return childParent === parent;\n }\n\n if (getParents(child).indexOf(parent) !== -1) {\n return true;\n }\n\n return false;\n}\n\nexport function getFrames(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const result = [];\n\n let frames;\n\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n\n let len;\n\n try {\n len = frames.length;\n } catch (err) {\n // pass\n }\n\n if (len === 0) {\n return result;\n }\n\n if (len) {\n for (let i = 0; i < len; i++) {\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n\n result.push(frame);\n }\n\n return result;\n }\n\n for (let i = 0; i < 100; i++) {\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n return result;\n }\n\n if (!frame) {\n return result;\n }\n\n result.push(frame);\n }\n\n return result;\n}\n\nexport function getAllChildFrames(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const result = [];\n\n for (const frame of getFrames(win)) {\n result.push(frame);\n\n for (const childFrame of getAllChildFrames(frame)) {\n result.push(childFrame);\n }\n }\n\n return result;\n}\n\nexport function getTop(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n try {\n if (win.top) {\n return win.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(win) === win) {\n return win;\n }\n\n try {\n if (isAncestorParent(window, win) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (isAncestorParent(win, window) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n for (const frame of getAllChildFrames(win)) {\n try {\n if (frame.top) {\n return frame.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(frame) === frame) {\n return frame;\n }\n }\n}\n\nexport function getNextOpener(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n return getOpener(getTop(win) || win);\n}\n\nexport function getUltimateTop(\n win?: CrossDomainWindowType = window\n): CrossDomainWindowType {\n const opener = getNextOpener(win);\n\n if (opener) {\n return getUltimateTop(opener);\n }\n\n return top;\n}\n\nexport function getAllFramesInWindow(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const top = getTop(win);\n\n if (!top) {\n throw new Error(`Can not determine top window`);\n }\n\n let result = [...getAllChildFrames(top), top];\n\n // Win may be in shadow dom\n if (result.indexOf(win) === -1) {\n result = [...result, win, ...getAllChildFrames(win)];\n }\n\n return result;\n}\n\nexport function getAllWindows(\n win?: CrossDomainWindowType = window\n): $ReadOnlyArray {\n const frames = getAllFramesInWindow(win);\n const opener = getNextOpener(win);\n\n if (opener) {\n return [...getAllWindows(opener), ...frames];\n } else {\n return frames;\n }\n}\n\nexport function isTop(win: CrossDomainWindowType): boolean {\n return win === getTop(win);\n}\n\nexport function isFrameWindowClosed(frame: HTMLIFrameElement): boolean {\n if (!frame.contentWindow) {\n return true;\n }\n\n if (!frame.parentNode) {\n return true;\n }\n\n const doc = frame.ownerDocument;\n\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n let parent = frame;\n\n while (parent.parentNode && parent.parentNode !== parent) {\n parent = parent.parentNode;\n }\n\n // $FlowFixMe\n if (!parent.host || !doc.documentElement.contains(parent.host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction safeIndexOf(collection: $ReadOnlyArray, item: T): number {\n for (let i = 0; i < collection.length; i++) {\n try {\n if (collection[i] === item) {\n return i;\n }\n } catch (err) {\n // pass\n }\n }\n\n return -1;\n}\n\nconst iframeWindows = [];\nconst iframeFrames = [];\n\nexport function isWindowClosed(\n win: CrossDomainWindowType,\n allowMock: boolean = true\n): boolean {\n try {\n if (win === window) {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (!win) {\n return true;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (win.closed) {\n return true;\n }\n } catch (err) {\n // I love you so much IE\n\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return false;\n }\n\n return true;\n }\n\n if (allowMock && isSameDomain(win)) {\n try {\n // $FlowFixMe\n if (win.mockclosed) {\n return true;\n }\n } catch (err) {\n // pass\n }\n }\n\n // Mobile safari\n\n try {\n if (!win.parent || !win.top) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n // Yes, this actually happens in IE. win === win errors out when the window\n // is from an iframe, and the iframe was removed from the page.\n\n try {\n noop(win === win); // eslint-disable-line no-self-compare\n } catch (err) {\n return true;\n }\n\n // IE orphaned frame\n\n const iframeIndex = safeIndexOf(iframeWindows, win);\n\n if (iframeIndex !== -1) {\n const frame = iframeFrames[iframeIndex];\n\n if (frame && isFrameWindowClosed(frame)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction cleanIframes() {\n for (let i = 0; i < iframeWindows.length; i++) {\n let closed = false;\n\n try {\n closed = iframeWindows[i].closed;\n } catch (err) {\n // pass\n }\n\n if (closed) {\n iframeFrames.splice(i, 1);\n iframeWindows.splice(i, 1);\n }\n }\n}\n\nexport function linkFrameWindow(frame: HTMLIFrameElement) {\n cleanIframes();\n\n if (frame && frame.contentWindow) {\n try {\n iframeWindows.push(frame.contentWindow);\n iframeFrames.push(frame);\n } catch (err) {\n // pass\n }\n }\n}\n\nexport function getUserAgent(win: ?SameDomainWindowType): string {\n win = win || window;\n return win.navigator.mockUserAgent || win.navigator.userAgent;\n}\n\nexport function getFrameByName(\n win: CrossDomainWindowType,\n name: string\n): ?CrossDomainWindowType {\n const winFrames = getFrames(win);\n\n for (const childFrame of winFrames) {\n try {\n if (\n isSameDomain(childFrame) &&\n // $FlowFixMe\n childFrame.name === name &&\n winFrames.indexOf(childFrame) !== -1\n ) {\n return childFrame;\n }\n } catch (err) {\n // pass\n }\n }\n\n try {\n // $FlowFixMe\n if (winFrames.indexOf(win.frames[name]) !== -1) {\n // $FlowFixMe\n return win.frames[name];\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (winFrames.indexOf(win[name]) !== -1) {\n return win[name];\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function findChildFrameByName(\n win: CrossDomainWindowType,\n name: string\n): ?CrossDomainWindowType {\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n for (const childFrame of getFrames(win)) {\n const namedFrame = findChildFrameByName(childFrame, name);\n\n if (namedFrame) {\n return namedFrame;\n }\n }\n}\n\nexport function findFrameByName(\n win: CrossDomainWindowType,\n name: string\n): ?CrossDomainWindowType {\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n const top = getTop(win) || win;\n\n return findChildFrameByName(top, name);\n}\n\nexport function isParent(\n win: CrossDomainWindowType,\n frame: CrossDomainWindowType\n): boolean {\n const frameParent = getParent(frame);\n\n if (frameParent) {\n return frameParent === win;\n }\n\n for (const childFrame of getFrames(win)) {\n if (childFrame === frame) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isOpener(\n parent: CrossDomainWindowType,\n child: CrossDomainWindowType\n): boolean {\n return parent === getOpener(child);\n}\n\nexport function getAncestor(\n win?: CrossDomainWindowType = window\n): ?CrossDomainWindowType {\n win = win || window;\n\n const opener = getOpener(win);\n\n if (opener) {\n return opener;\n }\n\n const parent = getParent(win);\n\n if (parent) {\n return parent;\n }\n}\n\nexport function getAncestors(\n win: CrossDomainWindowType\n): $ReadOnlyArray {\n const results = [];\n\n let ancestor = win;\n\n while (ancestor) {\n ancestor = getAncestor(ancestor);\n if (ancestor) {\n results.push(ancestor);\n }\n }\n\n return results;\n}\n\nexport function isAncestor(\n parent: CrossDomainWindowType,\n child: CrossDomainWindowType\n): boolean {\n const actualParent = getAncestor(child);\n\n if (actualParent) {\n if (actualParent === parent) {\n return true;\n }\n\n return false;\n }\n\n if (child === parent) {\n return false;\n }\n\n if (getTop(child) === child) {\n return false;\n }\n\n for (const frame of getFrames(parent)) {\n if (frame === child) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isPopup(win?: CrossDomainWindowType = window): boolean {\n return Boolean(getOpener(win));\n}\n\nexport function isIframe(win?: CrossDomainWindowType = window): boolean {\n return Boolean(getParent(win));\n}\n\nexport function isFullpage(win?: CrossDomainWindowType = window): boolean {\n return Boolean(!isIframe(win) && !isPopup(win));\n}\n\nfunction anyMatch(collection1, collection2): boolean {\n for (const item1 of collection1) {\n for (const item2 of collection2) {\n if (item1 === item2) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function getDistanceFromTop(\n win: CrossDomainWindowType = window\n): number {\n let distance = 0;\n let parent = win;\n\n while (parent) {\n parent = getParent(parent);\n if (parent) {\n distance += 1;\n }\n }\n\n return distance;\n}\n\nexport function getNthParent(\n win: CrossDomainWindowType,\n n: number = 1\n): ?CrossDomainWindowType {\n let parent = win;\n\n for (let i = 0; i < n; i++) {\n if (!parent) {\n return;\n }\n\n parent = getParent(parent);\n }\n\n return parent;\n}\n\nexport function getNthParentFromTop(\n win: CrossDomainWindowType,\n n: number = 1\n): ?CrossDomainWindowType {\n return getNthParent(win, getDistanceFromTop(win) - n);\n}\n\nexport function isSameTopWindow(\n win1: CrossDomainWindowType,\n win2: CrossDomainWindowType\n): boolean {\n const top1 = getTop(win1) || win1;\n const top2 = getTop(win2) || win2;\n\n try {\n if (top1 && top2) {\n if (top1 === top2) {\n return true;\n }\n\n return false;\n }\n } catch (err) {\n // pass\n }\n\n const allFrames1 = getAllFramesInWindow(win1);\n const allFrames2 = getAllFramesInWindow(win2);\n\n if (anyMatch(allFrames1, allFrames2)) {\n return true;\n }\n\n const opener1 = getOpener(top1);\n const opener2 = getOpener(top2);\n\n if (opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2)) {\n return false;\n }\n\n if (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1)) {\n return false;\n }\n\n return false;\n}\n\nexport function matchDomain(\n pattern: DomainMatcher,\n origin: DomainMatcher\n): boolean {\n if (typeof pattern === \"string\") {\n if (typeof origin === \"string\") {\n return pattern === WILDCARD || origin === pattern;\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n }\n\n if (isRegex(pattern)) {\n if (isRegex(origin)) {\n return pattern.toString() === origin.toString();\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n\n // $FlowFixMe\n return Boolean(origin.match(pattern));\n }\n\n if (Array.isArray(pattern)) {\n if (Array.isArray(origin)) {\n return JSON.stringify(pattern) === JSON.stringify(origin);\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n return pattern.some((subpattern) => matchDomain(subpattern, origin));\n }\n\n return false;\n}\n\nexport function stringifyDomainPattern(pattern: DomainMatcher): string {\n if (Array.isArray(pattern)) {\n return `(${pattern.join(\" | \")})`;\n } else if (isRegex(pattern)) {\n return `RegExp(${pattern.toString()})`;\n } else {\n return pattern.toString();\n }\n}\n\nexport function getDomainFromUrl(url: string): string {\n let domain;\n\n if (url.match(/^(https?|mock|file):\\/\\//)) {\n domain = url;\n } else {\n return getDomain();\n }\n\n domain = domain.split(\"/\").slice(0, 3).join(\"/\");\n\n return domain;\n}\n\nexport function onCloseWindow(\n win: CrossDomainWindowType,\n callback: Function,\n delay: number = 1000,\n maxtime: number = Infinity\n): {| cancel: () => void |} {\n let timeout;\n\n const check = () => {\n if (isWindowClosed(win)) {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n return callback();\n }\n\n if (maxtime <= 0) {\n clearTimeout(timeout);\n } else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n };\n\n check();\n\n return {\n cancel() {\n if (timeout) {\n clearTimeout(timeout);\n }\n },\n };\n}\n\n// eslint-disable-next-line complexity\nexport function isWindow(obj: Object): boolean {\n try {\n if (obj === window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n // $FlowFixMe method-unbinding\n if (Object.prototype.toString.call(obj) === \"[object Window]\") {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (window.Window && obj instanceof window.Window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.self === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.parent === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.top === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n // eslint-disable-next-line no-self-compare\n if (noop(obj === obj) === \"__unlikely_value__\") {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (\n obj &&\n obj.__cross_domain_utils_window_check__ === \"__unlikely_value__\"\n ) {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (\"postMessage\" in obj && \"self\" in obj && \"location\" in obj) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isBrowser(): boolean {\n return (\n typeof window !== \"undefined\" && typeof window.location !== \"undefined\"\n );\n}\n\nexport function isCurrentDomain(domain: string): boolean {\n if (!isBrowser()) {\n return false;\n }\n\n return getDomain() === domain;\n}\n\nexport function isMockDomain(domain: string): boolean {\n return domain.indexOf(PROTOCOL.MOCK) === 0;\n}\n\nexport function normalizeMockUrl(url: string): string {\n if (!isMockDomain(getDomainFromUrl(url))) {\n return url;\n }\n\n if (!__TEST__) {\n throw new Error(`Mock urls not supported out of test mode`);\n }\n\n return url.replace(/^mock:\\/\\/[^/]+/, getActualDomain(window));\n}\n\nexport function getFrameForWindow(win: CrossDomainWindowType): ?HTMLElement {\n if (isSameDomain(win)) {\n return assertSameDomain(win).frameElement;\n }\n\n for (const frame of document.querySelectorAll(\"iframe\")) {\n if (frame && frame.contentWindow && frame.contentWindow === win) {\n return frame;\n }\n }\n}\n\nexport function closeWindow(win: CrossDomainWindowType) {\n if (isIframe(win)) {\n const frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n\n try {\n win.close();\n } catch (err) {\n // pass\n }\n}\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","export const OFFER = {\n PAY_LATER_LONG_TERM: 'PAY_LATER_LONG_TERM',\n PAY_LATER_SHORT_TERM: 'PAY_LATER_SHORT_TERM',\n PAY_LATER_PAY_IN_1: 'PAY_LATER_PAY_IN_1',\n PAYPAL_CREDIT_NO_INTEREST: 'PAYPAL_CREDIT_NO_INTEREST',\n PAY_LATER: 'PAY_LATER',\n REWARDS: 'REWARDS'\n};\n\nexport const TAG = {\n MESSAGE: 'paypal-message',\n MODAL: 'paypal-credit-modal',\n TREATEMENTS: 'paypal-credit-treatments'\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/* @flow */\n\nexport const SUPPORTED_BROWSERS = {\n msie: \"11\",\n firefox: \"30\",\n chrome: \"27\",\n safari: \"7\",\n opera: \"16\",\n msedge: \"12\",\n samsungBrowser: \"2.1\",\n silk: \"59.3\",\n ucbrowser: \"10.0.0.488\",\n vivaldi: \"1.91\",\n};\n\nconst SANDBOX_ALIAS =\n \"AZDxjDScFpQtjWTOUtWKbyN_bDt4OgqaF4eYXlewfBP4-8aqX3PiV8e1GWU6liB2CUXlkA59kJXE7M6R\";\n\nexport const CLIENT_ID_ALIAS = {\n sandbox: SANDBOX_ALIAS,\n sb: SANDBOX_ALIAS,\n test: SANDBOX_ALIAS,\n};\n\nexport const URI = {\n LOGGER: `/xoplatform/logger/api/logger`,\n AUTH: `/v1/oauth2/token`,\n ORDER: `/v2/checkout/orders`,\n};\n","/* @flow */\n\nimport {\n getCurrentScriptUID,\n ATTRIBUTES,\n parseQuery,\n getBrowserLocales,\n base64decode,\n values,\n getCurrentScript,\n memoize,\n stringifyError,\n} from \"@krakenjs/belter/src\";\nimport {\n COUNTRY,\n SDK_DATA_ATTRIBUTES,\n SDK_QUERY_KEYS,\n INTENT,\n COMMIT,\n VAULT,\n CURRENCY,\n FUNDING,\n CARD,\n COUNTRY_LANGS,\n DEFAULT_INTENT,\n DEFAULT_CURRENCY,\n DEFAULT_VAULT,\n QUERY_BOOL,\n LANG,\n type LocaleType,\n DEFAULT_SALE_COMMIT,\n DEFAULT_NONSALE_COMMIT,\n PAGE_TYPES,\n} from \"@paypal/sdk-constants/src\";\n\nimport { getPath, getDefaultNamespace, getSDKHost } from \"./global\";\nimport { CLIENT_ID_ALIAS } from \"./config\";\nimport { getComputedLocales } from \"./utils\";\n\ntype GetSDKScript = () => HTMLScriptElement;\n\nconst buildScriptNotFoundError = (host, path, error) => {\n const errorString = error ? stringifyError(error) : \"\";\n\n return new Error(\n `PayPal Payments SDK script not found on page! Expected to find