{"version":3,"sources":["webpack://_N_E/./node_modules/@arsenal/arsenal/modules/Cookies.js","webpack://_N_E/./node_modules/@arsenal/arsenal/modules/defaults.js","webpack://_N_E/./node_modules/@arsenal/arsenal/modules/event.js","webpack://_N_E/./node_modules/@arsenal/arsenal/modules/getQuery.js","webpack://_N_E/./node_modules/@arsenal/arsenal/modules/serializeObject.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_a-function.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_add-to-unscopables.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_advance-string-index.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_an-object.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_array-includes.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_array-methods.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_array-reduce.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_array-species-constructor.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_array-species-create.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_classof.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_cof.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_core.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_ctx.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_defined.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_descriptors.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_dom-create.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_enum-bug-keys.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_export.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_fails.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_fix-re-wks.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_flags.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_function-to-string.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_global.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_has.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_hide.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_html.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_ie8-dom-define.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_inherit-if-required.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_iobject.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_is-array.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_is-object.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_is-regexp.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_iter-create.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_iter-define.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_iter-step.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_iterators.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_library.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-assign.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-create.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-dp.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-dps.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-gopd.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-gopn.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-gops.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-gpo.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-keys-internal.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-keys.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_object-pie.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_property-desc.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_redefine.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_regexp-exec.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_same-value.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_set-proto.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_set-species.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_set-to-string-tag.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_shared-key.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_shared.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_species-constructor.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_strict-method.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_string-at.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_to-absolute-index.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_to-integer.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_to-iobject.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_to-length.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_to-object.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_to-primitive.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_uid.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/_wks.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.filter.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.for-each.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.index-of.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.iterator.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.reduce.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.object.assign.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.object.define-property.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.constructor.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.exec.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.search.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.split.js","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/web.dom.iterable.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/array/from.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/object/assign.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/symbol.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/toArray.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/typeof.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/from.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/is-array.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/get-iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/is-iterable.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/json/stringify.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/assign.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/keys.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/symbol/index.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/symbol/iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_a-function.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-object.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_array-includes.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_classof.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_cof.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_core.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_create-property.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ctx.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_defined.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_descriptors.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_dom-create.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-keys.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_export.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_fails.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_global.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_has.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_hide.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_html.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iobject.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array-iter.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-object.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-call.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-create.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-define.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-detect.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-step.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iterators.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_library.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_meta.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-assign.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-create.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dp.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dps.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopd.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopn.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gops.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gpo.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys-internal.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-pie.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-sap.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_property-desc.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_redefine.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared-key.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-at.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-absolute-index.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-integer.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-iobject.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-length.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-object.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-primitive.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_uid.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks-define.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks-ext.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/core.get-iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/core.is-iterable.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.from.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.is-array.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.assign.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.keys.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.string.iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.symbol.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/web.dom.iterable.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/dist/account-api.cjs.production.min.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/dist/index.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/@byted/sec_sdk_build/captcha/cn/index.cjs.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/@byted/sec_sdk_build/captcha/in/index.cjs.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/@byted/sec_sdk_build/captcha/sg/index.cjs.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/@byted/sec_sdk_build/captcha/va/index.cjs.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/index.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/adapters/xhr.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/axios.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/cancel/Cancel.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/cancel/CancelToken.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/cancel/isCancel.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/Axios.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/InterceptorManager.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/buildFullPath.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/createError.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/dispatchRequest.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/enhanceError.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/mergeConfig.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/settle.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/core/transformData.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/defaults.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/bind.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/buildURL.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/combineURLs.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/cookies.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/isAxiosError.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/parseHeaders.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/spread.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/helpers/validator.js","webpack://_N_E/./node_modules/@byted-sdk/account-api/node_modules/axios/lib/utils.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/index.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/adapters/xhr.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/axios.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/cancel/Cancel.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/cancel/CancelToken.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/cancel/isCancel.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/Axios.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/InterceptorManager.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/buildFullPath.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/createError.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/dispatchRequest.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/enhanceError.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/mergeConfig.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/settle.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/core/transformData.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/defaults/index.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/defaults/transitional.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/env/data.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/bind.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/buildURL.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/combineURLs.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/cookies.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/isAxiosError.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/parseHeaders.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/spread.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/helpers/validator.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/node_modules/axios/lib/utils.js","webpack://_N_E/./node_modules/@byted/acrawler/dist/runtime.js","webpack://_N_E/./node_modules/@fingerprintjs/fingerprintjs/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/@fingerprintjs/fingerprintjs/dist/fp.esm.js","webpack://_N_E/./node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js","webpack://_N_E/./node_modules/backbone-events-standalone/backbone-events-standalone.js","webpack://_N_E/./node_modules/backbone-events-standalone/index.js","webpack://_N_E/./node_modules/call-bind/callBound.js","webpack://_N_E/./node_modules/call-bind/index.js","webpack://_N_E/./node_modules/child-replace-with-polyfill/index.js","webpack://_N_E/./node_modules/classnames/index.js","webpack://_N_E/./node_modules/cookie/index.js","webpack://_N_E/./node_modules/core-js/es/map/index.js","webpack://_N_E/./node_modules/core-js/es/promise/all-settled.js","webpack://_N_E/./node_modules/core-js/es/set/index.js","webpack://_N_E/./node_modules/core-js/features/promise/all-settled.js","webpack://_N_E/./node_modules/core-js/internals/array-buffer-native.js","webpack://_N_E/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://_N_E/./node_modules/core-js/internals/array-buffer.js","webpack://_N_E/./node_modules/core-js/internals/array-copy-within.js","webpack://_N_E/./node_modules/core-js/internals/array-fill.js","webpack://_N_E/./node_modules/core-js/internals/array-last-index-of.js","webpack://_N_E/./node_modules/core-js/internals/array-reduce.js","webpack://_N_E/./node_modules/core-js/internals/ieee754.js","webpack://_N_E/./node_modules/core-js/internals/number-parse-float.js","webpack://_N_E/./node_modules/core-js/internals/string-trim-forced.js","webpack://_N_E/./node_modules/core-js/internals/this-number-value.js","webpack://_N_E/./node_modules/core-js/internals/to-index.js","webpack://_N_E/./node_modules/core-js/internals/to-offset.js","webpack://_N_E/./node_modules/core-js/internals/to-positive-integer.js","webpack://_N_E/./node_modules/core-js/internals/typed-array-constructor.js","webpack://_N_E/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://_N_E/./node_modules/core-js/internals/typed-array-from.js","webpack://_N_E/./node_modules/core-js/modules/es.array-buffer.slice.js","webpack://_N_E/./node_modules/core-js/modules/es.array.find-index.js","webpack://_N_E/./node_modules/core-js/modules/es.array.find.js","webpack://_N_E/./node_modules/core-js/modules/es.array.reduce.js","webpack://_N_E/./node_modules/core-js/modules/es.number.is-nan.js","webpack://_N_E/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://_N_E/./node_modules/core-js/modules/es.object.values.js","webpack://_N_E/./node_modules/core-js/modules/es.parse-float.js","webpack://_N_E/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://_N_E/./node_modules/core-js/modules/es.string.link.js","webpack://_N_E/./node_modules/core-js/modules/es.string.match.js","webpack://_N_E/./node_modules/core-js/modules/es.string.trim.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.every.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.find.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.join.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.map.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.set.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.some.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://_N_E/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://_N_E/./node_modules/core-js/modules/es.weak-set.js","webpack://_N_E/./node_modules/core-js/modules/esnext.promise.all-settled.js","webpack://_N_E/./node_modules/cssfilter/lib/css.js","webpack://_N_E/./node_modules/cssfilter/lib/default.js","webpack://_N_E/./node_modules/cssfilter/lib/index.js","webpack://_N_E/./node_modules/cssfilter/lib/parser.js","webpack://_N_E/./node_modules/cssfilter/lib/util.js","webpack://_N_E/./node_modules/decode-uri-component/index.js","webpack://_N_E/./node_modules/function-bind/implementation.js","webpack://_N_E/./node_modules/function-bind/index.js","webpack://_N_E/./node_modules/get-intrinsic/index.js","webpack://_N_E/./node_modules/has-symbols/index.js","webpack://_N_E/./node_modules/has-symbols/shams.js","webpack://_N_E/./node_modules/has/src/index.js","webpack://_N_E/./node_modules/infinite-timeout/index.js","webpack://_N_E/./node_modules/infinite-timeout/lib/timeout.js","webpack://_N_E/./node_modules/intersection-observer/intersection-observer.js","webpack://_N_E/./node_modules/isomorphic-unfetch/browser.js","webpack://_N_E/./node_modules/isuri/index.js","webpack://_N_E/./node_modules/js-cache/index.js","webpack://_N_E/./node_modules/js-cache/lib/cache.js","webpack://_N_E/./node_modules/lodash/_Hash.js","webpack://_N_E/./node_modules/lodash/_ListCache.js","webpack://_N_E/./node_modules/lodash/_Map.js","webpack://_N_E/./node_modules/lodash/_MapCache.js","webpack://_N_E/./node_modules/lodash/_Symbol.js","webpack://_N_E/./node_modules/lodash/_arrayMap.js","webpack://_N_E/./node_modules/lodash/_assocIndexOf.js","webpack://_N_E/./node_modules/lodash/_baseGet.js","webpack://_N_E/./node_modules/lodash/_baseGetTag.js","webpack://_N_E/./node_modules/lodash/_baseIsNative.js","webpack://_N_E/./node_modules/lodash/_baseToString.js","webpack://_N_E/./node_modules/lodash/_castPath.js","webpack://_N_E/./node_modules/lodash/_coreJsData.js","webpack://_N_E/./node_modules/lodash/_freeGlobal.js","webpack://_N_E/./node_modules/lodash/_getMapData.js","webpack://_N_E/./node_modules/lodash/_getNative.js","webpack://_N_E/./node_modules/lodash/_getRawTag.js","webpack://_N_E/./node_modules/lodash/_getValue.js","webpack://_N_E/./node_modules/lodash/_hashClear.js","webpack://_N_E/./node_modules/lodash/_hashDelete.js","webpack://_N_E/./node_modules/lodash/_hashGet.js","webpack://_N_E/./node_modules/lodash/_hashHas.js","webpack://_N_E/./node_modules/lodash/_hashSet.js","webpack://_N_E/./node_modules/lodash/_isKey.js","webpack://_N_E/./node_modules/lodash/_isKeyable.js","webpack://_N_E/./node_modules/lodash/_isMasked.js","webpack://_N_E/./node_modules/lodash/_listCacheClear.js","webpack://_N_E/./node_modules/lodash/_listCacheDelete.js","webpack://_N_E/./node_modules/lodash/_listCacheGet.js","webpack://_N_E/./node_modules/lodash/_listCacheHas.js","webpack://_N_E/./node_modules/lodash/_listCacheSet.js","webpack://_N_E/./node_modules/lodash/_mapCacheClear.js","webpack://_N_E/./node_modules/lodash/_mapCacheDelete.js","webpack://_N_E/./node_modules/lodash/_mapCacheGet.js","webpack://_N_E/./node_modules/lodash/_mapCacheHas.js","webpack://_N_E/./node_modules/lodash/_mapCacheSet.js","webpack://_N_E/./node_modules/lodash/_memoizeCapped.js","webpack://_N_E/./node_modules/lodash/_nativeCreate.js","webpack://_N_E/./node_modules/lodash/_objectToString.js","webpack://_N_E/./node_modules/lodash/_root.js","webpack://_N_E/./node_modules/lodash/_stringToPath.js","webpack://_N_E/./node_modules/lodash/_toKey.js","webpack://_N_E/./node_modules/lodash/_toSource.js","webpack://_N_E/./node_modules/lodash/eq.js","webpack://_N_E/./node_modules/lodash/get.js","webpack://_N_E/./node_modules/lodash/isArray.js","webpack://_N_E/./node_modules/lodash/isFunction.js","webpack://_N_E/./node_modules/lodash/isObject.js","webpack://_N_E/./node_modules/lodash/isObjectLike.js","webpack://_N_E/./node_modules/lodash/isSymbol.js","webpack://_N_E/./node_modules/lodash/memoize.js","webpack://_N_E/./node_modules/lodash/toString.js","webpack://_N_E/./node_modules/next/app.js","webpack://_N_E/./components/animation.tsx","webpack://_N_E/./components/author/avatar.tsx","webpack://_N_E/./components/button/index.tsx","webpack://_N_E/./components/cache-store.tsx","webpack://_N_E/./components/city.tsx","webpack://_N_E/./components/divider/index.tsx","webpack://_N_E/./components/hooks.tsx","webpack://_N_E/./components/hooks/make-pub-sub-hook.ts","webpack://_N_E/./components/hooks/use-header-height.ts","webpack://_N_E/./components/hooks/use-header-theme.ts","webpack://_N_E/./components/hooks/use-hover-delay.ts","webpack://_N_E/./components/hooks/use-page-offset.ts","webpack://_N_E/./components/hooks/use-responsive.ts","webpack://_N_E/./components/hooks/use-scroll-sticky-observe.ts","webpack://_N_E/./components/hooks/use-side-nav-status.ts","webpack://_N_E/./components/hooks/use-top-tips.ts","webpack://_N_E/./components/hooks/use-window-loaded.ts","webpack://_N_E/./components/modal.tsx","webpack://_N_E/./components/new-city.tsx","webpack://_N_E/./components/new-search.tsx","webpack://_N_E/./components/new-user.tsx","webpack://_N_E/./components/new-header-switch.tsx","webpack://_N_E/./components/hooks/use-firefox.ts","webpack://_N_E/./components/new/header-logo/index.tsx","webpack://_N_E/./components/new-header.tsx","webpack://_N_E/./components/new/info-mode-switcher/index.tsx","webpack://_N_E/./components/new/inner-link/index.tsx","webpack://_N_E/./components/new/light-link/index.tsx","webpack://_N_E/./components/new/outer-link/index.tsx","webpack://_N_E/./components/new/scroll-sticky/sticky-header.tsx","webpack://_N_E/./components/new/scroll-sticky/sticky-wrapper.tsx","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/enums.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://_N_E/./node_modules/@popperjs/core/lib/createPopper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/math.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/within.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://_N_E/./node_modules/@popperjs/core/lib/popper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://_N_E/./node_modules/react-popper/lib/esm/utils.js","webpack://_N_E/./node_modules/react-popper/lib/esm/usePopper.js","webpack://_N_E/./components/new/tool-tip/index.tsx","webpack://_N_E/./components/portal.tsx","webpack://_N_E/./components/rank-publish-flag/getRankDataConfig.ts","webpack://_N_E/./components/rank-publish-flag/index.tsx","webpack://_N_E/./components/store.tsx","webpack://_N_E/./components/top-tops-dynamic.tsx","webpack://_N_E/./components/user.tsx","webpack://_N_E/./components/view-image/constant.ts","webpack://_N_E/./components/view-image/decode.ts","webpack://_N_E/./components/view-image/image-zoom.tsx","webpack://_N_E/./components/view-image/index.tsx","webpack://_N_E/./components/view-image/style.ts","webpack://_N_E/./components/view-image/utils.ts","webpack://_N_E/./lib/apply-https-img.ts","webpack://_N_E/./lib/batched-updates.ts","webpack://_N_E/./lib/decorated-fetch.ts","webpack://_N_E/./lib/get-link-href.ts","webpack://_N_E/./lib/get-location.ts","webpack://_N_E/./lib/get-tcc-config.ts","webpack://_N_E/./lib/ie-version.ts","webpack://_N_E/./lib/is-node.ts","webpack://_N_E/./lib/is-real-user.ts","webpack://_N_E/./lib/noop-wrapper.ts","webpack://_N_E/./lib/page-enter.ts","webpack://_N_E/./lib/referrer.ts","webpack://_N_E/./lib/slardar-utils.ts","webpack://_N_E/./lib/tea-analyze.ts","webpack://_N_E/./lib/url.ts","webpack://_N_E/./lib/utils.ts","webpack://_N_E/./lib/version.ts","webpack://_N_E/./constants/_blank.ts","webpack://_N_E/./lib/zt-util.ts","webpack://_N_E/./new/home/ad/tianmu-ad/use-ad-config.ts","webpack://_N_E/./new/login/login-store.tsx","webpack://_N_E/./new/login/service/index.ts","webpack://_N_E/./new/login/utils/constants.ts","webpack://_N_E/./new/login/utils/page-control.ts","webpack://_N_E/./new/search/global-tab.tsx","webpack://_N_E/./new/search/utils.ts","webpack://_N_E/./new/side-nav/components/child-wrap/index.tsx","webpack://_N_E/./new/side-nav/components/feedback-modal/custom-toast.tsx","webpack://_N_E/./new/side-nav/config.tsx","webpack://_N_E/./new/side-nav/index.tsx","webpack://_N_E/./node_modules/next/dist/client/link.js","webpack://_N_E/./node_modules/next/dist/client/use-intersection.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/amp-context.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/amp.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/dynamic.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/head.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/loadable-context.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/loadable.js","webpack://_N_E/./node_modules/next/dist/next-server/lib/side-effect.js","webpack://_N_E/./node_modules/next/dist/pages/_app.js","webpack://_N_E/./pages/_app.api.intercept.tsx","webpack://_N_E/./components/search.tsx","webpack://_N_E/./components/header2.tsx","webpack://_N_E/./components/search2.tsx","webpack://_N_E/./components/header3.tsx","webpack://_N_E/./components/car/usedcar-link/index.tsx","webpack://_N_E/./components/back-to-top.tsx","webpack://_N_E/./lib/scroll-smoothly.ts","webpack://_N_E/./components/hooks/use-should-show-entrance.ts","webpack://_N_E/./components/new-switch-button.tsx","webpack://_N_E/./components/right-side-navigation.tsx","webpack://_N_E/./lib/routeChangeScroll.ts","webpack://_N_E/./lib/cusPageEnter.ts","webpack://_N_E/./node_modules/@fe/wil/dist/esm/EventTaget/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/mutationObserver/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/utils/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/intersectionObserver/helper.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/intersectionObserver/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/eventCatch/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/heatmap/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/main/index.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/main/click.js","webpack://_N_E/./node_modules/@fe/wil/dist/esm/index.js","webpack://_N_E/./new/side-nav/components/feedback-modal/services/index.ts","webpack://_N_E/./new/side-nav/components/feedback-modal/index.tsx","webpack://_N_E/./new/side-nav/components/protal-modal/index.tsx","webpack://_N_E/./lib/set-visited-series.ts","webpack://_N_E/./pages/_app.tsx","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/lib/index.js","webpack://_N_E/./node_modules/@byted-ucenter/ttwid-finger-print/lib/ttwid.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/api/get.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/components/base.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/components/ua.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/components/webglImageHash.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/components/webglUnmaskedRenderer.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/components/webglUnmaskedVendor.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/index.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/duration.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/externalComponents.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/hash.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/hashCanvasValue.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/index.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/parseValueToString.js","webpack://_N_E/./node_modules/@douyin-web/browser-finger-print/dist/utils/webgl.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/fetch/index.js","webpack://_N_E/?6bc5","webpack://_N_E/./components/author/avatar.module.scss","webpack://_N_E/./components/button/index.module.scss","webpack://_N_E/./components/new-header-switch.module.scss","webpack://_N_E/./components/new-header.module.scss","webpack://_N_E/./components/new-user.module.scss","webpack://_N_E/./components/new/info-mode-switcher/index.module.scss","webpack://_N_E/./components/new/inner-link/styles.module.scss","webpack://_N_E/./components/new/tool-tip/index.module.scss","webpack://_N_E/./components/rank-publish-flag/index.module.scss","webpack://_N_E/./new/side-nav/index.module.scss","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/link.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/next/script.js","webpack://_N_E/./node_modules/nprogress/nprogress.js","webpack://_N_E/./node_modules/object-inspect/index.js","webpack://_N_E/./node_modules/performance-now/lib/performance-now.js","webpack://_N_E/./node_modules/process/browser.js","webpack://_N_E/./node_modules/pubsub-js/src/pubsub.js","webpack://_N_E/./node_modules/qs/lib/formats.js","webpack://_N_E/./node_modules/qs/lib/index.js","webpack://_N_E/./node_modules/qs/lib/parse.js","webpack://_N_E/./node_modules/qs/lib/stringify.js","webpack://_N_E/./node_modules/qs/lib/utils.js","webpack://_N_E/./node_modules/querystring/decode.js","webpack://_N_E/./node_modules/querystring/encode.js","webpack://_N_E/./node_modules/querystring/index.js","webpack://_N_E/./node_modules/raf/index.js","webpack://_N_E/./node_modules/raf/polyfill.js","webpack://_N_E/./node_modules/react-fast-compare/index.js","webpack://_N_E/./node_modules/react-transition-group/esm/config.js","webpack://_N_E/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://_N_E/./node_modules/react-transition-group/esm/Transition.js","webpack://_N_E/./node_modules/rfc-3986/index.js","webpack://_N_E/./node_modules/side-channel/index.js","webpack://_N_E/./node_modules/string-hash/index.js","webpack://_N_E/./node_modules/styled-jsx/dist/lib/stylesheet.js","webpack://_N_E/./node_modules/styled-jsx/dist/style.js","webpack://_N_E/./node_modules/styled-jsx/dist/stylesheet-registry.js","webpack://_N_E/./node_modules/styled-jsx/style.js","webpack://_N_E/./node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/xss/lib/default.js","webpack://_N_E/./node_modules/xss/lib/index.js","webpack://_N_E/./node_modules/xss/lib/parser.js","webpack://_N_E/./node_modules/xss/lib/util.js","webpack://_N_E/./node_modules/xss/lib/xss.js"],"names":["_interopRequireDefault","Object","defineProperty","exports","value","default","_stringify","_typeof2","_keys","_defaults","expires","time","expireDate","Date","setTime","getTime","toUTCString","cookies","data","opt","arguments","length","undefined","autoencode","autojson","decode","decodeURIComponent","encode","encodeURIComponent","fallback","nulltoremove","path","secure","window","location","protocol","real","RegExp","concat","exec","document","cookie","indexOf","JSON","parse","e","reduce","prev","key","expired","values","push","domain","item","join","test","_default","module","_assign","defaults","object","_len","sources","Array","_key","filter","forEach","prototype","hasOwnProperty","call","on","el","eventName","callback","opts","supportsPassive","passive","_opts","get","addEventListener","attachEvent","off","removeEventListener","detachEvent","_toArray2","getQuery","name","search","substr","queries","split","c","_c$split","_c$split2","slice","_getIterator2","serializeObject","params","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","keys","next","done","err","return","it","TypeError","UNSCOPABLES","ArrayProto","at","S","index","unicode","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","O","ctx","IObject","toObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","callbackfn","that","val","res","self","f","result","aFunction","aLen","memo","isRight","i","isArray","SPECIES","original","C","constructor","speciesConstructor","cof","TAG","ARG","T","B","tryGet","callee","toString","core","version","__e","fn","a","b","apply","is","createElement","global","hide","redefine","$export","type","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","target","expProto","Function","U","W","R","fails","defined","wks","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","replace","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","this","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","strfn","rxfn","String","string","arg","anObject","ignoreCase","multiline","sticky","Math","__g","dP","createDesc","documentElement","setPrototypeOf","propertyIsEnumerable","MATCH","isRegExp","descriptor","setToStringTag","IteratorPrototype","Constructor","NAME","LIBRARY","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","getKeys","gOPS","pIE","$assign","assign","A","Symbol","K","k","getSymbols","isEnum","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","defineProperties","has","gOPD","getOwnPropertyDescriptor","$keys","hiddenKeys","getOwnPropertyNames","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","bitmap","enumerable","configurable","writable","SRC","$toString","TO_STRING","TPL","safe","isFunction","classof","builtinExec","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","lastIndex","reCopy","match","x","y","check","set","buggy","__proto__","DESCRIPTORS","def","tag","stat","shared","uid","SHARED","store","mode","copyright","D","method","toInteger","pos","s","l","charCodeAt","charAt","max","min","ceil","floor","isNaN","valueOf","id","px","random","USE_SYMBOL","$filter","$forEach","STRICT","$indexOf","NEGATIVE_ZERO","searchElement","addToUnscopables","step","iterated","_t","_i","_k","Arguments","$reduce","inheritIfRequired","gOPN","$flags","$RegExp","CORRECT_NEW","p","tiRE","piRE","fiU","proxy","forced","sameValue","regExpExec","SEARCH","$search","maybeCallNative","rx","previousLastIndex","advanceStringIndex","callRegExpExec","$min","$push","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","internalSplit","separator","limit","lastLength","output","flags","lastLastIndex","splitLimit","separatorCopy","splitter","unicodeMatching","lim","q","z","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","_Array$isArray","arr","obj","__esModule","_Array$from","_isIterable","iter","arrayWithHoles","iterableToArray","nonIterableRest","_Symbol$iterator","_Symbol","_typeof","$JSON","stringify","$defineProperty","symbols","IS_WRAP","virtual","iterator","ret","SAFE_CLOSING","riter","from","skipClosing","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","wksExt","$Symbol","iterFn","isArrayIter","createProperty","getIterFn","arrayLike","mapfn","mapping","$at","point","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","replacer","$replacer","args","arrayLikeToArray","_arrayLikeToArray","len","arr2","_arrayWithHoles","_assertThisInitialized","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","Promise","then","_asyncToGenerator","_classCallCheck","instance","_defineProperties","props","_createClass","protoProps","staticProps","_defineProperty","_getPrototypeOf","o","_setPrototypeOf","_inherits","subClass","superClass","_inheritsLoose","_iterableToArray","_nonIterableRest","_objectWithoutProperties","excluded","sourceSymbolKeys","_objectWithoutPropertiesLoose","sourceKeys","_possibleConstructorReturn","_slicedToArray","_arr","_n","_d","_e","_s","unsupportedIterableToArray","_toConsumableArray","_unsupportedIterableToArray","minLen","n","arrayWithoutHoles","nonIterableSpread","t","r","u","d","SEND_MOBILE_CODE","SEND_EMAIL_CODE","VERIFY_MOBILE_CODE","VERIFY_EMAIL_CODE","CHECK_MOBILE_CODE","CHECK_EMAIL_CODE","SMS_LOGIN","SMS_LOGIN_ONLY","SMS_LOGIN_CONTINUE","EMAIL_LOGIN","EMAIL_CODE_LOGIN","EMAIL_REGISTER_LOGIN","EMAIL_REGISTER","PWD_LOGIN","AUTH_LOGIN","AUTH_LOGIN_ONLY","AUTH_BIND_ONLY","MOBILE_BIND_ONLY","MOBILE_EMAIL_REGISTER","MOBILE_REGISTER","MOBILE_OAUTH","LOGOUT","CHECK_LOGIN","BIND_WITH_MOBILE_LOGIN","GET_QRCODE","CHECK_QRCONNECT","SCAN_QRCODE","CONFIRM_QRCODE","THIRD_AUTH","MOBILE_BIND","EMAIL_BIND","AUTH_BIND","AUTH_UNBIND","AUTH_SWITCH_BIND","MOBILE_REBIND","EMAIL_REBIND","RESET_PWD_BY_MOBILE","RESET_PWD_BY_EMAIL","RESET_PWD_BY_MOBILE_TICKET","RESET_PWD_BY_EMAIL_TICKET","PWD_CHANGE_BY_MOBILE","PWD_UPDATE","PWD_CHANGE_BY_EMAIL","PWD_SET","PWD_HAS_SET","PWD_HAS_SET_V2","ACCOUNT_VERIFY","AUTH_VERIFY","SMS_AUTHORIZE","CANCEL_VERIFY_WAY","CANCEL_CHECK","CANCEL_CONFIRM","CHECK_MOBILE_REGISTER","CHECK_EMAIL_REGISTER","CHANGE_QRCODE_SUCCESS","CHANGE_QRCODE_CONFIRM","GET_OPEN_AUTH_INFO","OPEN_SEND_CODE","OPEN_SMS_AUTH","OPEN_ACCOUNT_AUTH","OPEN_THIRD_AUTH","OPEN_WEB_AUTH","ACCOUNT_INFO","_","OAUTH_LOGIN_CALL","OAUTH_LOGIN_ONLY","OAUTH_LOGIN","SUBJECT_LOGIN_LIST","SUBJECT_LOGIN","REGISTER_EMAIL_USER_ONLY","REGISTER_EMAIL","REGISTER_MOBILE_USER_ONLY","REGISTER_MOBILE","RESET_BY_MOBILE","RESET_BY_EMAIL","MOBILE_INVITE","EMAIL_INVITE","LARK_INVITE","INVITE_LIST","CANCEL_INVITE","RESEND_INVITE","UPDATE_INVITE","CHECK_INVITE_VALID","ACCEPT_INVITE","CREATE_BY_USERNAME","CREATE_BY_MOBILE","CREATE_BY_EMAIL","SUBJECT_LIST","SUBJECT_DEPUTY_LIST","SUBJECT_IDENTITY_LIST","UPDATE_DEPUTY_INFO","FREEZE_DEPUTY","DELETE_DEPUTY","UPDATE_SUBJECT_INFO","FREEZE_SUBJECT","RESOURCE_LIST","CREATE_ROLE","UPDATE_ROLE","BAN_ROLE","ROLE_LIST","ROLE_INFO","CREATE_USER_WITH_ROLE","ADD_USER_ROLE","DELETE_USER_ROLE","USER_ROLE_LIST","ALL_USER_ROLE_LIST","USER_PERMISSIONS","SUCCESSOR_SEND_CODE","TRANSFER_MANAGER","MEMBER_SWITCH","MOBILE_CODE_URL","MOBILE_CODE_URL_V2","EMAIL_ACTIVATE_URL","EMAIL_ACTIVATE_URL_V2","EMAIL_ACTIVATE_CODE_URL","EMAIL_ACTIVATE_CODE_URL_V2","MOBILE_CODE_LOGIN_URL","MOBILE_CODE_LOGIN_URL_V2","ACCOUNT_LOGIN_URL","ACCOUNT_LOGIN_URL_V2","AUTH_LOGIN_URL","EMAIL_ACTIVATE_CODE_LOGIN","EMAIL_REGISTER_V2","MOBILE_REGISTER_WITH_EMAIL","MOBILE_REGISTER_WITH_EMAIL_V2","SSO_EMAIL_ACTIVATE_CODE_URL","RESET_PASSWORD","RESET_PASSWORD_BY_EMAIL","BIND_MOBILE","CHANGE_MOBILE","QUICK_AUTH","byted_acrawler","map","init","aid","dfp","acrawler","boe","isBoe","intercept","enablePathList","urlRewriteRules","m","getElementsByTagName","appendChild","readyState","onreadystatechange","onload","unescape","h","console","group","log","groupEnd","v","mix_mode","fixed_mix_mode","I","iid","did","sideSlide","lang","showMode","region","app_name","cn","sg","va","in","L","requestConfig","verifyData","requestData","render","verify_data","captchaOptions","successCb","getFp","fp","isResend","catch","closeCb","secondVerifyWebOptions","callBack","closeCallBack","description","web","sso","respHandler","error_code","successCallBack","message","failCallBack","app","auth","status_code","g","config","url","headers","response","printLog","SUCCESS","Logid","ERROR","verify_center_decision_conf","appShowCaptcha","log_id","initProps","request","commonOptions","captchaSideSlide","language","captchaShowMode","appName","host","captchaHost","fetch","baseURL","hostname","adapter","isValid","toUpperCase","is_native_h5","needCommonParams","header","status","statusText","withCredentials","transformRequest","interceptors","use","Accept","includes","account_sdk_source","verify_center_secondary_decision_conf","onValid","sms_code_key","M","scene","subjectAid","aff_multi_login","subject_aid","sendCode","extra_params","mobile","smsLogin","need_frozen_user","code","sendEmailCode","email","emailLogin","pwdLogin","password","find","oauthLoginCall","platform_app_id","href","oauthLogin","login_only","redirect_uri","subjectLoginList","subjectLogin","user_identity_id","login_subject_uid","logout","not_redirect","memberSwitch","to_sec_member_id","verifyEmail","registerByEmail","only_user","sendMobileCode","verifyMobile","registerByMobile","mobileReset","emailReset","N","mobileInvite","emailInvite","larkInvite","getInvitationList","page","page_size","cancelInvitation","invite_id","resendInvitation","next_url","link","updateInvitation","deputy_identity_id","deputy_name","checkRegisterStatus","invite_ticket","acceptInvitation","extra","createByUsername","createByMobile","createByEmail","getSubjectList","getSubjectDeputyList","getSubjectIdentityList","updateDeputyInfo","sec_user_id","freezeDeputy","is_frozen","deleteDeputy","updateSubjectInfo","sec_subject_uid","subject_name","base_infos","detail_infos","freezeSubject","getResourceList","subject_uid","createRole","role_name","permissions","updateRole","role_key","banRole","getRoleList","getRoleInfo","createUserWithRole","identity_id","addUserRole","sec_user_identity_ids","deleteUserRole","getUserRoleList","getAllUserRoleList","getUserPermissions","sendCodeToOldManager","sendEmailCodeToOldManager","verifyOldManagerMobile","verifyOldManagerEmail","sendCodeToNewManager","verify_ticket","sendEmailCodeToNewManager","verifyNewManagerMobile","verifyNewManagerEmail","transferManager","H","registerOnly","smsLoginContinue","webLogin","emailCodeLogin","ect_type","account","authLogin","access_token","access_token_secret","openid","profile_key","getOauthMobile","expires_in","platform","need_plaintext","authBindLogin","sms_code","mobileBindLogin","sendEmailLoginCode","emailRegister","ifLogin","mobileRegister","mobileEmailRegister","email_code","sms_type","checkLogin","bindWithMobileLogin","thirdAuth","use_local_host","action","V","getQrcode","checkQrconnect","token","unbind_exist","bindMobile","bindEmail","bindAuth","unbindAuth","switchBindAuth","changeQrcodeSuccess","changeQrcodeComfirm","Y","checkMobileRegistered","checkEmailRegistered","validateCode","resetPwdByMobile","validateEmail","resetPwdByEmail","resetPwdByMobileTicket","ticket","resetPwdByEmailTicket","sendCodeToOldMobile","use_bind_mobile","validateOldMobile","sendCodeToNewMobile","old_mobile","rebindMobile","kick_other","sendCodeToOldEmail","validateOldEmail","sendCodeToNewEmail","rebindEmail","verify_mobile_seperate","validateMobile","changePwdByMobile","updatePwd","current_password","changePwdByEmail","setPassword","checkHasSetPwd","checkWebHasSetPwd","Q","notLoginSendCode","notLoginValidateMobile","notLoginSendEmailCode","notLoginValidateEmail","accountVerify","user_login_version","authVerify","smsAuthorizeSendCode","smsAuthorize","J","verifyWay","cancel_ticket","checkIfPass","value_ticket","confirm","abandon","Z","getAuthInfo","client_key","scope","smsAuth","state","accountAuth","webAuth","X","getAccountInfo","$","login","qrcodeLogin","register","forgetPwd","bind","rebind","verify","cancel","affLogin","affRegister","affInvite","affSubject","affForgetPwd","affResource","affRole","affUser","affSuper","ee","te","oe","baseSendMobileCode","baseSendMobileCodeV2","baseSendEmailLink","baseSendEmailLinkV2","baseSendEmailCode","baseSendEmailCodeV2","ie","sendMobileCodeV2","mobileBind","ae","mobileChange","ne","quickAuthV2","service","accountLoginV2","wapLogin","origin","scopes","url_params","sendEmailLink","sendEmailLinkV2","sendEmailCodeV2","change_bind","originHost","se","check_register","resetPassword","resetPasswordByEmailCode","sendEmailCodeModifyPassword","modifyPasswordByEmailCode","ce","ue","quickAuth","de","emailRegisterXhr","emailRegisterAndBindMoblieV2","mobileRegisterAndBindEmailV2","emailActivateCodeLogin","changeMobile","le","webSdkInit","pe","common","me","fe","he","ve","Ee","be","createAccountSdk","SsoInterfaceSdk","WebInterfaceSdk","__assign","varArgs","to","nextSource","nextKey","commonjsGlobal","globalThis","createCommonjsModule","basedir","require","base","commonjsRequire","Error","es6Promise","objectOrFunction","vertxNext","customSchedulerFn","asap","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","process","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","node","createTextNode","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","setTimeout","attemptVertx","vertx","runOnLoop","runOnContext","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","substring","PENDING","FULFILLED","REJECTED","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","initializePromise","resolver","nextId","validationError","Enumerator","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","all","race","reject$1","needsResolver","needsNew","finally","polyfill","local","promiseToString","cast","_setScheduler","_setAsap","_asap","factory","WEBID_KEY","URL","getTeaCommonParams","options","user_unique_id","ajax","xhr","XMLHttpRequest","DONE","data_1","body","responseText","contentType","getResponseHeader","onerror","ontimeout","onabort","DOMException","uri","encodeURI_1","timeout","_a","setRequestHeader","send","post","loadScript","script","setAttribute","clearTimeout","option","serverHost","settingHost","getSetting","logger","Logger","conf","app_id","evtParams","webdriver","isScheduling","product_host","product_path","setParams","trackEvent","evtName","logs","events","event","is_bav","local_time_ms","now","user","sendEvents","report","js_cookie","extend","attributes","converter","api","escape","stringifiedAttributes","attributeName","json","jar","parts","read","getJSON","remove","withConverter","setWebidCookie","fpCookieOption","start_time","webid","chars","timePrex","uuid","mergeFp","cookieOption","isSuccess","duration","is_success","msg","env","generateFp","generateFpSync","initOptions","loadCDNModule","cdn","executor","startTime","verifySDK","scriptText","commonjs","sdk","SDK","load","setting","js","getCDN","TTVerifyCenter","setEnv","errorCb","teaOptions","verifyCenter","initVerifyCenter","h5_check_version","closeCaptcha","initVerifyOptions","renderOptions","challenge_code","renderCaptcha","autoRender","utils","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestHeaders","responseType","isFormData","username","Authorization","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","paramsSerializer","responseURL","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","xsrfCookieName","xsrfHeaderName","toLowerCase","isUndefined","onDownloadProgress","onUploadProgress","upload","cancelToken","abort","Axios","mergeConfig","createInstance","defaultConfig","context","axios","instanceConfig","Cancel","CancelToken","isCancel","promises","spread","isAxiosError","__CANCEL__","resolvePromise","throwIfRequested","InterceptorManager","dispatchRequest","validator","validators","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","shift","newConfig","onFulfilled","onRejected","getUri","handlers","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","merge","transformResponse","toJSON","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","prop","axiosKeys","otherKeys","validateStatus","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","rawValue","parser","encoder","isString","trim","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","serializedParams","isDate","toISOString","hashmarkIndex","relativeURL","isNumber","toGMTString","payload","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","hash","port","pathname","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","desc","warn","schema","allowUnknown","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","stripBOM","content","transitionalDefaults","onCanceled","unsubscribe","signal","aborted","VERSION","_listeners","onfulfilled","_resolve","listener","splice","configOrUrl","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","__awaiter","_arguments","generator","__generator","label","sent","trys","ops","verb","op","pop","__spreadArrays","il","jl","wait","durationMs","resolveWith","awaitIfAsync","returnedValue","forEachWithBreaks","items","loopReleaseInterval","lastLoopReleaseTime","x64Add","x64Multiply","x64Rotl","x64LeftShift","x64Xor","x64Fmix","x64hash128","seed","remainder","bytes","h1","h2","k1","k2","c1","c2","toInt","parseInt","toFloat","parseFloat","replaceNaN","replacement","countTruthy","sum","round","abs","counterBase","ensureErrorWithMessage","loadSources","sourceOptions","excludeSources","includedSources","sourceKey","haystack","needle","sourceGetters","isFinalResultLoaded","loadResult","sourceLoadPromise","resolveLoad","loadStartTime","loadArgs","loadDuration","resolveGet","getStartTime","getArgs","finalizeSource","loadSource","components","includedSources_1","componentPromises","_loop_1","hasAllComponentPromises","component","isTrident","isEdgeHTML","isChromium","vendor","isWebKit","isDesktopSafari","isGecko","_b","getFullscreenElement","fullscreenElement","msFullscreenElement","mozFullScreenElement","webkitFullscreenElement","exitFullscreen","msExitFullscreen","mozCancelFullScreen","webkitExitFullscreen","isAndroid","isItChromium","isItGecko","appVersion","makeInnerError","withIframe","initialHtml","domPollInterval","_c","_reject","isComplete","setProperty","position","top","left","visibility","srcdoc","checkReadyState","parentNode","removeChild","selectorToElement","selector","errorMessage","tagMatch","partsRegex","addAttribute","part","attributeMatch","parseSimpleCssSelector","element","name_1","addStyleString","property","name_2","priority","baseFonts","fontList","doesSupportWinding","rect","isPointInPath","makeTextImage","canvas","width","height","textBaseline","fillStyle","fillRect","font","printedText","fromCharCode","fillText","save","makeGeometryImage","globalCompositeOperation","color","beginPath","arc","PI","closePath","fill","toDataURL","screenFrameBackup","screenFrameSizeTimeoutId","getScreenFrame","_this","checkScreenFrame","frameSize","getCurrentScreenFrame","isFrameSizeNull","watchScreenFrame","screen","availTop","availWidth","availLeft","availHeight","filters","abpIndo","abpvn","adBlockFinland","adBlockPersian","adBlockWarningRemoval","adGuardAnnoyances","adGuardBase","adGuardChinese","adGuardFrench","adGuardGerman","adGuardJapanese","adGuardMobile","adGuardRussian","adGuardSocial","adGuardSpanishPortuguese","adGuardTrackingProtection","adGuardTurkish","bulgarian","easyList","easyListChina","easyListCookie","easyListCzechSlovak","easyListDutch","easyListGermany","easyListItaly","easyListLithuania","estonian","fanboyAnnoyances","fanboyAntiFacebook","fanboyEnhancedTrackers","fanboySocial","frellwitSwedish","greekAdBlock","hungarian","iDontCareAboutCookies","icelandicAbp","latvian","listKr","listeAr","listeFr","officialPolish","ro","ruAd","thaiAds","webAnnoyancesUltralist","getBlockedSelectors","selectors","root","elements","blockedSelectors","holder","forceShow","offsetParent","doesMatch","matchMedia","matches","doesMatch$1","doesMatch$2","doesMatch$3","doesMatch$4","fallbackFn","presets","apple","serif","fontFamily","sans","mono","fontSize","system","fonts","spansContainer","defaultWidth","defaultHeight","createSpan","span","textContent","baseFontsSpans","fontsSpans","spans","baseFont","fontToDetect","createSpanWithFonts","fontList_1","initializeFontsSpans","offsetWidth","offsetHeight","fontSpans","some","baseFontIndex","domBlockers","debug","filterNames","activeBlockers","filterName","printDebug","sort","fontPreferences","containerWidthPx","iframeWindow","iframeBody","bodyStyle","webkitTextSizeAdjust","textSizeAdjust","zoom","devicePixelRatio","linesOfText","withNaturalFonts","container","sizes","text","whiteSpace","_f","_g","_h","getBoundingClientRect","audio","AudioContext","OfflineAudioContext","webkitOfflineAudioContext","isWebKit606OrNewer","oscillator","createOscillator","frequency","compressor","createDynamicsCompressor","threshold","knee","ratio","attack","release","connect","destination","start","renderTryMaxCount","renderRetryDelay","runningMaxAwaitTime","runningSufficientTime","finalize","isFinalized","renderTryCount","startedRunningAt","oncomplete","renderedBuffer","startRunningTimeout","tryRender","startRendering","hidden","startRenderingAudio","renderPromise","finishRendering","fingerprintPromise","getHash","getChannelData","subarray","screenFrame","screenFrameGetter","processSize","sideSize","osCpu","oscpu","languages","userLanguage","browserLanguage","systemLanguage","Intl","Reflect","isChromium86OrNewer","colorDepth","deviceMemory","screenResolution","parseDimension","dimensions","reverse","hardwareConcurrency","timezone","DateTimeFormat","resolvedOptions","timeZone","offset","currentYear","getFullYear","getTimezoneOffset","sessionStorage","localStorage","indexedDB","openDatabase","cpuClass","screenRatio","Element","webkitRequestFullscreen","isIPad","plugins","rawPlugins","plugin","mimeTypes","mimeType","suffixes","getContext","makeCanvasContext","isSupported","winding","geometry","touchSupport","touchEvent","maxTouchPoints","msMaxTouchPoints","createEvent","touchStart","vendorFlavors","flavors","cookiesEnabled","colorGamut","gamut","invertedColors","forcedColors","monochrome","contrast","reducedMotion","hdr","math","acos","acosh","asin","asinh","atanh","atan","sin","sinh","cos","cosh","tan","tanh","expm1","log1p","acoshPf","sqrt","asinhPf","atanhPf","sinhPf","coshPf","tanhPf","expm1Pf","log1pPf","powPI","pow","getConfidence","openConfidenceScore","getOpenConfidenceScore","proConfidenceScore","deriveProConfidenceScore","score","comment","componentsToDebugString","errorToObject","hashComponents","componentKey","componentsToCanonicalString","prepareForSources","delayFallback","fallbackTimeout","deadlineTimeout","Infinity","requestIdleCallback","requestIdleCallbackIfAvailable","makeAgent","getComponents","creationTime","visitorIdCache","visitorId","confidence","makeLazyGetResult","monitoring","__fpjs_d_m","monitor","murmurX64Hash128","_isNativeReflectConstruct","construct","sham","Proxy","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_superPropBase","_get","receiver","Emitter","listeners","stackToCall","once","defaultPrevented","AbortSignal","_Emitter","_super","AbortController","Event","initEvent","createEventObject","bubbles","cancelable","dispatchEvent","polyfillNeeded","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","Request","abortableFetchDecorator","patchTargets","_patchTargets","_patchTargets$Request","NativeRequest","NativeAbortController","_patchTargets$__FORCE","realFetch","isPrototypeOf","abortError","cancellation","toStringTag","_abortableFetch","nativeForEach","idCounter","Events","uniqueId","prefix","each","func","ran","eventsApi","_events","_callback","retain","ev","trigger","allEvents","triggerEvents","stopListening","deleteListener","_listenerId","eventSplitter","rest","a1","a2","a3","listenTo","listenToOnce","implementation","unbind","mixin","BackboneEvents","GetIntrinsic","callBind","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$max","originalFunction","applyBind","ReplaceWithPolyfill","currentNode","ownerDocument","insertBefore","previousSibling","replaceChild","replaceWith","CharacterData","DocumentType","hasOwn","classNames","classes","argType","inner","pairs","pairSplitRegExp","dec","pair","eq_idx","tryDecode","serialize","enc","fieldContentRegExp","maxAge","httpOnly","sameSite","Map","$allSettled","allSettled","iterable","Set","DataView","NATIVE_ARRAY_BUFFER","createNonEnumerableProperty","wellKnownSymbol","Int8Array","Int8ArrayPrototype","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","isTypedArray","aTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","exportTypedArrayStaticMethod","klass","redefineAll","anInstance","toIndex","IEEE754","arrayFill","InternalStateModule","getInternalState","setInternalState","ARRAY_BUFFER","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","byteLength","byteOffset","conversion","NaN","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","copyWithin","end","inc","argumentsLength","endPos","toIndexedObject","arrayMethodIsStrict","arrayMethodUsesToLength","nativeLastIndexOf","lastIndexOf","STRICT_METHOD","USES_TO_LENGTH","ACCESSORS","1","IndexedObject","createMethod","IS_RIGHT","right","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","whitespaces","$parseFloat","trimmedString","METHOD_NAME","toPositiveInteger","BYTES","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","createPropertyDescriptor","toOffset","typedArrayFrom","setSpecies","definePropertyModule","getOwnPropertyDescriptorModule","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","list","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","getter","dummy","typedArrayOffset","$length","$len","checkCorrectnessOfIteration","getIteratorMethod","isArrayIteratorMethod","iteratorMethod","nativeArrayBufferSlice","first","fin","viewSource","viewTarget","$findIndex","FIND_INDEX","SKIPS_HOLES","findIndex","$find","FIND","thisNumberValue","repeat","nativeToFixed","toFixed","acc","fractionDigits","fractDigits","multiply","divide","dataToString","x2","$values","parseFloatImplementation","newPromiseCapabilityModule","perform","iterate","capability","promiseResolve","counter","remaining","alreadyCalled","createHTML","forcedStringHTMLMethod","fixRegExpWellKnownSymbolLogic","requireObjectCoercible","nativeMatch","matcher","fullUnicode","matchStr","$trim","forcedStringTrimMethod","$copyWithin","$every","$fill","predicate","createTypedArrayConstructor","$includes","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$map","$reduceRight","middle","$slice","$some","$sort","comparefn","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","collection","parseStyle","isNull","FilterCSS","shallowCopyObject","whiteList","onAttr","onIgnoreAttr","safeAttrValue","css","sourcePosition","isWhite","getDefaultWhiteList","REGEXP_URL_JAVASCRIPT","html","filterCSS","trimRight","cssLength","isParenthesisOpen","lastPos","retCSS","addNewAttr","singleMatcher","multiMatcher","decodeComponents","tokens","encodedURI","replaceMap","customDecodeURIComponent","ERROR_MESSAGE","toStr","funcType","bound","binder","boundLength","boundArgs","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","needsEval","INTRINSICS","AggregateError","Atomics","BigInt","Boolean","decodeURI","encodeURI","eval","EvalError","FinalizationRegistry","isFinite","Number","SharedArrayBuffer","URIError","WeakMap","WeakRef","WeakSet","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","last","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","symObj","syms","MAX_INT","timeouts","clear","_timeouts","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_observationTargets","nodeType","_registerInstance","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","_parseRootMargin","opt_rootMargin","margins","margin","unit","_monitoringIntersections","_monitoringInterval","setInterval","addEvent","_domObserver","childList","subtree","clearInterval","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","bottom","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","performance","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","getComputedStyle","getParentNode","atRoot","parentRect","parentComputedStyle","overflow","computeRectIntersection","clientWidth","clientHeight","_expandRectByRootMargin","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","targetArea","intersectionArea","opt_options","timer","throttle","rootMargin","opt_useCapture","detatchEvent","rect1","rect2","rfc3986","internals","Uri","createUriRegex","customScheme","scheme","currentScheme","hierPart","query","fragment","uriRegex","Cache","initialize","external","ttl","oldRecord","record","delInternal","del","size","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","getNative","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","array","iteratee","eq","castPath","toKey","getRawTag","objectToString","symToStringTag","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","arrayMap","symbolProto","symbolToString","baseToString","isKey","coreJsData","freeGlobal","isKeyable","__data__","baseIsNative","getValue","nativeObjectToString","unmasked","nativeCreate","reIsDeepProp","reIsPlainProp","maskSrcKey","assocIndexOf","getMapData","memoize","cache","freeSelf","memoizeCapped","other","baseGet","defaultValue","baseGetTag","isObjectLike","memoized","fadeClassName","ENTERING","ENTERED","Fade","children","className","appear","innerProps","React","ugcUserLink","userId","tab","title","asPath","isNewVersion","as","onClick","avatar","userVerified","verifyType","verifySize","hoverTransition","displayName","styleModule","alt","lazy","autoPixelRatio","cusDefaultImg","userLoading","Button","loading","disabled","preventDefault","stopPropagation","classnames","styles","role","CacheStoreContext","createContext","CacheStoreProvider","useState","setCache","useEffect","Provider","City","onChange","useContext","GlobalStoreContext","globalStore","dispatch","cities","ref","useRef","useScrollSpy","querySelectorAll","currIndex","setCurrIndex","cityRef","fetchCities","useCallback","getUrl","initials","city","city_name","handleDocumentClick","current","contains","data-letter","active","toLocaleUpperCase","Divider","Tag","mergedStyle","background","getAllBrand","useIntervalAnimation","interval","timerRef","mouseRef","invoke","mouseEnter","mouseLeave","useCityName","cityName","useBrandList","innerBrands","setInnerBrands","brands","letters","pinyin","letter","brand","toutiaourl","getElements","globalScroll","setCurr","setElements","rootElement","setRootElement","clickRef","initRef","changes","change","ele","setCurrent","scrollContainer","offsetValue","parentElement","scrollTop","offsetTop","useScrollSpy_v2","dependencies","elementsRef","timeoutRef","observerRef","pageYOffset","useFeedAd","category","feedAd","setFeedAd","curPage","credentials","defaultState","curState","setState","newState","subscriber","batchedUpdates","add","delete","getHeaderHeight","responsiveConfig","useResponsive","lg","xl","defaultTheme","makePubSubHook","setHeaderTheme","useHeaderTheme","resetHeaderTheme","pageType","getPageType","getHeaderThemeByPageType","delay","valueRef","unstable_batchedUpdates","immediate","curOffset","getPageOffset","setPageOffset","newOffset","every","setOffset","removeResponsiveListener","defaultInfo","sm","md","responsiveTypes","isResponsivePaused","toggleResponsivePausedStatus","curResponsiveType","isUpdated","addResponsiveListener","mediaSqlHandlers","mediaSql","handler","newInfo","addListener","removeListener","computedResponsive","isObservePaused","needImmediateScroll","getScrollTop","setScrollTop","scrollToWithStickyObserve","curDirection","preTop","isListening","distance","handleScroll","curTop","curIsDown","force","isDown","canListenScroll","isCurrentFixed","markNode","setMarkNode","isFixed","setIsIntersecting","prevIsIntersectingRef","setTop","isScrollUp","setIsScrollUp","isFixedRef","addScrollDirectionListener","removeScrollDirectionListener","prevIsIntersecting","defaultStatus","setPageType","newPageType","resetSideNavStatus","setSideNavStatus","useSideNavStatus","setValue","isHasTips","isLoad","Modal","getContainer","maskClosable","currentTarget","onClose","clientWidthBefore","scrollBarWidth","paddingRight","visible","closable","CloseIcon","footer","dest","onEntered","onExited","unmountOnExit","handleMaskClick","getComponent","PureComponent","showNationWide","isLocalUse","sendTeaCommEvent","event_id","spanKeyword","searchMode","query_input_text","keyword","query_content","setItem","saveLocalSearch","getSearchLink","api_param","search_mode","decodeUriComponent","Router","ResultList","setList","inputeValue","metrics","clearLocalSearch","show","image_url","cpl_type","dangerouslySetInnerHTML","__html","xss","buried_point_info","series_id","tag_name","motor_id","fetchRollInfo","hot_search_roll_info","Search","focus","setFocus","isShowListRef","searchDivRef","buttonRef","inputRef","rollIndex","rollList","setRollInfo","placeholder","rollTimer","handleAsPath","preValue","searchDivDom","searchButtonDom","onMouseEnter","classList","onMouseLeave","fetchComlete","searchBtnHandler","searchType","searchValue","blur","getLocalSearch","onBlur","onFocus","onKeyDownCapture","keyCode","getItem","storageList","maxList","User","userData","isLogin","user_id","screenName","screen_name","teaConfig","LoginStoreContext","openLogin","closeRef","theme","arrowVisible","placement","avatar_url","button_name","enter_method","HeaderSwitch","navStatus","responsive","responsiveType","setResponsiveType","isHandle","handleClick","shrink_type","isFirefox","headerTheme","FixNavModal","dynamic","ssr","headerHeight","headerTop","AddToDesktop","isLoaded","useWindowLoaded","setVisible","promptEventRef","serviceWorker","handlePrompt","userChoice","choiceResult","outcome","Cookies","isPWAInstalled","state_type","prompt","onTipShow","onMouseOver","DcdPublish","rel","obj_id","useHasTips","isFireFox","useFireFox","router","useRouter","useStickHeader","sendTeaLocationEvent","getLocation","setLocation2storage","themeClassName","closeCityRef","closeCodeRef","usePageOffset","paddingTop","setSelectedCity2storage","showTips","nativeEvent","stopImmediatePropagation","icon_triangle_down_12","icon_triangle_up_12","getPageId","EInfoMode","INFO_MODE_KEY","InfoModeSwitcher","tabName","isDynamicFeed","currentMode","DYNAMIC","STATIC","modeList","tips","sub_tab","req","emitCounter","getInnerLinkList","isSpider","InnerLink","linkList","getOuterLinkList","domain_url","link_type","link_count","OuterLink","setHeaderState","outerClassName","outerStyle","innerClassName","innerStyle","useScrollStickyObserve","isLeave","setIsLeave","curChildren","useMemo","maxWidth","minWidth","onAnimationEnd","enter","leave","getWindow","defaultView","getWindowScroll","win","scrollLeft","pageXOffset","isElement","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","scroll","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","offsetLeft","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","transform","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","popper","variationPlacements","modifierPhases","order","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","debounce","pending","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","enabled","_ref3","_ref3$options","effect","cleanupFn","noopFn","update","forceUpdate","_state$elements","rects","reset","_state$orderedModifie","_state$orderedModifie2","_options","destroy","onFirstUpdate","_ref","_options$scroll","_options$resize","resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","dpr","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","getOppositePlacement","matched","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","referenceElement","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","eventListeners","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","removeAttribute","initialStyles","attribute","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","_loop","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","fromEntries","useIsomorphicLayoutEffect","EMPTY_MODIFIERS","onTipClose","wrapperClassName","renderSSR","gap","transfer","popperStyle","setReferenceElement","popperElement","setPopperElement","setArrowElement","prevOptions","optionsWithDefaults","_React$useState","updateStateModifier","popperOptions","newOptions","popperInstanceRef","popperInstance","createPopper","usePopper","isEnterRef","isInit","setIsInit","setShowTips","useHoverDelay","startShow","cancelShow","startClose","cancelClose","handleEnter","handleLeave","handleAnimationEnd","curContent","onMouseOut","zIndex","Portal","updateElement","ReactDOM","prompts","textClassName","textStyle","getRankDataConfig","is_publish_time","initState","isVisible","reducer","adData","GlobalStoreProvider","useReducer","TopTips","applyHttpsImage","domainWhiteList","decodeUri","objRegex","objUri","legacyUri","zoomHeight","loadImg","restProps","paddingBottom","carLoading","logoLoadingRect","commentLoading","smallLogoLoading","dealerLogoLoading","defaultImg","Image","unoptimized","cutType","layout","objectFit","objectPosition","errorImg","onLoad","imageStyle","boxSizing","border","minHeight","maxHeight","wrapperStyle","sizerStyle","sizerSvg","isBase64","startsWith","isLazy","inView","setInView","optimizedSrc","getOptimizedImage","realSrc","setRealSrc","isErrorRef","rootRef","handleError","aria-hidden","onError","imageStyles","canUseWebp","elem","cdnDomain","isUrl","getSize","ext","param","extRegx","getExt","cb","retryMaxCount","rawRes","refinedUrl","decodedUrl","refineUrl","retryCount","retry_able_fetch","controller","timeBeforeFetch","ok","getTeaParam","selectedCity","sCity","locationCity","location_city","is_city_normal","selected_city","mapKey","getGPSCityName","getIPCityName","gpsLocation","ipLocation","gpsCityName","getDatabaseCity","dataBaseResult","latitude","longitude","gpsLatitude","gpsLongitude","ipLatitude","ipLongitude","ipCityName","getCityByPos","coordinate","province","cityResult","provinceResult","currentCity","dbCityName","defaultResult","getCurrentPosition","geolocation","coords","maximumAge","getGPSLocation","declare_strategy","api_intercept","getTCCConfig","ieVersion","isIE","isEdge","isIE11","fIEVersion","getIEVersion","isRealUser","realUser","getRealUserFromStorage","clk","scr","setRealUser2Storage","PUB_SUB_CUSTOM_PARAMS_KEY","isValidUser","hasScroll","hasClick","customParams","active_property","highlight_params_text","PubSub","PAGE_ID_2_URL_MAP","page_main_new","page_section_combine_pc","page_video_combine_pc","reg","page_feed_article_mix","page_search_result_new","page_404","page_car_picture","page_hot_series_rank_list","page_motor_forum","page_dcar_live_main","page_series_configuration","page_new_car_rank_list","page_dcd_list","page_dcar_motor_show","page_dcar_origin_list","page_car_model_comparison","page_car_zonghe_comparison","page_sell_car_publish_implement","page_sell_car_success","page_section_detail_pc","page_car_series_pc","page_pgc_video_detail","page_car_series_home","page_car_series_dcd_score_home","page_pgc_article_detail","page_ugc_detail","page_answer_detail","page_my_collection","page_personal_homepage","page_feed_article_mix_static","page_user_profile","page_series_real_picture","page_series_video_list","page_series_article_list","page_series_qa_list","page_series_instruction_video_detail","page_series_picture_detail","page_series_inquiry","page_series_compare_detail","page_ugc_forum_home","page_reputation_detail","page_dcar_origin_detail","page_topic_talk_details","page_used_car_source_detail","page_used_car_source_list","page_buy_car_pc_tag","page_topic_word_information","page_car_friend_communication","page_car_style_home","page_price_calculator","page_quality_qa_detail","page_dealer_detail","page_coupon_collection","page_registration","page_professional_evaluation_web","page_tensofmillions_car_parameter","getPageIdInfo","urlStr","hitUrlPageId","pageId","rule","hitRegPageId","page_id","pageIdInfo","m1","group_id","car_series_id","column_id","section_id","compare_series_id","DCD_REFERRER","updateAnchorRel","ELEMENT_NODE","anchor","createRootObserver","mutationsList","addedNodes","setReferrer","docReferrer","referrer","sessionReferrer","referrerURL","META_ARRAY","getReferrerMeta","slardar","Slardar","_log","level","tags","logMessage","_send","_sendTimer","enterPageBizParams","Tea","collectEvent","stayParams","stayTimer","PAGE_ID","setPageId","teaInit","appId","zt","autotrack","custom","user_type","teaStart","stayPageBizParams","setEnterPageBizParams","sendTeaEnterEvent","pre_page_id","pre_sub_tab","setStayPageBizParams","sendTeaStayEvent","stay_time","_params","item_id","enter_from","sendTeaAdEvent","sendAdMonitor","requestId","eventId","imageEle","replaceUrl","onShow","onHidden","visibilityChange","msHidden","webkitHidden","documentVisiblityChange","psm","validatePhone","phone","rectTop","tagName","isDEV","isBOE","server","TCE_HOST_ENV","isPPE","ttEnv","TCE_ENV","splitArr","_isNewVersion","VERSION_COOKIE_KEY","NEW_VERSION","OLD_VERSION","serverNewVersion","isPWA","_sessionStorage","getZT","appendLabel","paramZT","adConfig","homeTopAdShow","isShowClose","setAdConfig","newAdConfig","setConfig","Login","clearUserData","teaStoreKey","getLoginTeaParams","teaParams","saveLoginTeaParams","showLogin","setShowLogin","user_data","autoLogin","removeItem","getSsoSDK","has_login","Toast","isModal","redirect_url","setTeaParams","autoCheck","user_is_login","checkNeedSetPassword","has_password","checkNeedBindMobile","fetchUserData","fetchUserInfo","loginType","LOGIN_STORAGE_KEY","successTip","LoginStorageValues","handleSuccess","onSuccess","ssoSDK","webSDK","is_boe","isOversea","getWebSDK","LOGIN_SUCCESS_CALLBACK","handleStorage","removeStorageListener","watchLoginByStorage","storageValue","success","oldValue","TypeSelection","BrandSelect","ConditionList","tabId","getTabName","sortBy","carConfig","brand_id","selectComponent","price_range","column","energy_type","GlobalTab","currTab","sort_by","selectedData","paramsValue","getTypeParams","isFinalShow","showCarSelection","data-log-view","module_id","rank","search_req_id","searchReqId","search_scene","searchScene","Comp","typeKey","data-log-click","renderCarCondition","handlePath","newParams","fixedCardConfig","bigColumns","bigTwGrid","smallColumns","smallTwGrid","lines","lgIndex","_cus_fixed_56","_cus_fixed_live_card","_cus_fixed_rank_list","_cus_fixed_pc_hot_search","2","_cus_fixed_pc_hot_column","6","makeTeaCommonParams","alaSrc","cellType","aladdin","cell_type","cell_source","isCusComponent","getLink","newVersionLink","getAs","isNeedLogin","childClickHandler","loginMethod","ChildWrap","setUrl","routeChangeComplete","isActive","setShow","setId","wrapTop","setWrapTop","showHandler","navItemDOM","showToken","getClassName","childClick","getAsProxy","useConfig","prefetch","startCloseTimer","prevProps","closeTimer","handleClose","openToast","div","destory","showChild","hideChild","icon","foldIcon","hoverComponent","foldName","extraComponent","hoverOnOff","feed","UsedCarWrap","SelectCarWrap","currentPageId","getPageEnterId","realUrl","linkTarget","isNavRealOff","linkTaget","_interopRequireWildcard","_react","_router","_router2","_useIntersection","prefetched","isLocalURL","curLocale","locale","resolveHref","resolvedHref","resolvedAs","shallow","childRef","Children","only","useIntersection","setIntersectionRef","setRef","shouldPrefetch","isPrefetched","childProps","metaKey","ctrlKey","shiftKey","altKey","which","isModifiedEvent","linkClicked","passHref","localeDomain","isLocaleDomain","getDomainLocale","locales","domainLocales","addBasePath","addLocale","defaultLocale","cloneElement","isDisabled","hasIntersectionObserver","observers","createObserver","idleCallback","_requestIdleCallback","cancelIdleCallback","AmpStateContext","isInAmpMode","useAmp","_ampContext","ampFirst","hybrid","hasQuery","dynamicOptions","loadableFn","_loadable","loadableOptions","isLoading","pastDelay","loader","loadableGenerated","noSSR","LoadableInitializer","webpack","modules","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_sideEffect","_headManagerContext","_amp","defaultHead","inAmpMode","head","charSet","onlyReactElement","Fragment","toArray","fragmentList","fragmentChild","METATYPES","reduceComponents","headElements","headElement","headElementChildren","metaTypes","metaCategories","isUnique","hasKey","metatype","categories","unique","newProps","ampState","headManager","HeadManagerContext","reduceComponentsToState","LoadableContext","_useSubscription","_loadableContext","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","loaded","LoadableSubscription","loadFn","_loadFn","_callbacks","_delay","_timeout","retry","_res","_clearTimeouts","timedOut","_update","_err","partial","Loadable","subscription","sub","getCurrentValue","moduleIds","ids","moduleId","LoadableComponent","useSubscription","useImperativeHandle","moduleName","preload","forwardRef","createLoadableComponent","flushInitializers","initializers","preloadAll","resolveInitializers","preloadReady","resolvePreload","__NEXT_PRELOADREADY","_hasHeadManager","emitChange","updateHead","mountedInstances","Component","_utils","appGetInitialProps","loadGetInitialProps","pageProps","AppInitialProps","NextWebVitalsMetric","App","origGetInitialProps","getInitialProps","handleOnload","GET","POST","secsdk","csrf","setProtectedHost","search_content","curIndex","setCurIndex","live_white","live_yellow","routes","getLinkHref","updateActive","showCity","setCityPopup","hideSearch","setSearch","obj_text","hasicon","UsedcarLink","jumpTopIcon","BackToTop","updateShow","isUsedcar","scrollingElement","handleButtonClick","scrollElement","dis","initTop","delta","absolute","moved","requestAnimationFrame","scrollSmoothly","bottomSize","pathConfig","SwitchButton","new_home","route","useShouldShowEntrance","switchToNewClick","isNew","versionKey","switchNewOrOld","menu_top_img","menu_bottom_img","RightSideNavigation","activeNow","setActiveNow","withinView","domID","dom","getElementById","start_dom","handleItemClick","dataset","scrollTo","behavior","data-type","notScrollPageIdMap","NOT_AUTO_TO_LIST","EventShim","listenersMap","EventTagerShim","stacks","WilMutationObserver","callBacks","mutationRecords","mutationRecord","deepFindLog","baseAttribute","extraAttribute","findBaselog","SVGElement","attributeValue","getAttribute","fixIosClick","nodes","childNodes","getPathByEle","ix","siblings","sibling","isHtmlOrSvg","SVGAElement","getClickPositionParams","tgt","ele_x","ele_y","ele_path","dw","innerWidth","dh","innerHeight","error_type","Sentry","withScope","setTags","setExtras","captureException","innerErr","timestamp","later","callNow","IntersectionHelper","range","handleIntersect","entrys","currentY","currentRatio","stayWeakMap","previousY","previousRatio","currentT","getNow","stay","currentStayRangeMap","currInterest","SCROLL_DOWN_ENTER","SCROLL_DOWN_LEAVE","SCROLL_UP_ENTER","SCROLL_UP_LEAVE","currentTick","previousT","elapsedTime","previousIndex","getNextIndex","timeInPerSlot","addStayTimeToSlot","interests","interest","idx","s_num","rangeStayTime","totalTime","scrollStatus","currentTriggerPoint","rangeMap","times","collected","stayMap","threshHold","cleanRangeStayTime","WilIntersectionObserver","intersectionObserverEntrys","intersectionObserverEntry","eventHandle","eventCatch","MESSAGE_EVENT_TYPE","DEFAULT_CLICK_NAME","DEFAULT_ERROR_TYPE","DEFAULT_ERROR_CLICK_TYPE","DEFAULT_VERSION","click_name","catchSyncErrors","errType","Heatmap","sendLog","wil","cusEvent","createDocumentFragment","onMessage","area","findShowArea","CustomEvent","logPath","module_name","page_origin","page_version","page_pathname","page_search","LogEvent","adaptConfig","logAttributeMap","WilIntersectionObserverEvent","WilMutationObserverEvent","WilClickEventEvent","WilLogEvent","WilEventTaget","focusCallBack","updateStayTime","blurCallBack","dispatchStayLog","intersectionOptions","observedElements","inViewElement","viewOutWeakSet","viewWeakSet","outViewWeakSet","disableView","intersectionObserverCallbacks","intersectionObserver","mutationObserver","intersectionObserverDebounced","intersectionObserveElements","_intersectionObserveElements","heatmapConfig","handleIntersectionObserver","handleMutationObserver","handleClickEvent","listenLogEvent","fixIOSSafari","dispatchViewLog","getAttrFrom","attributeExtraName","hasAttribute","logJson","genarateDispatchEvent","endTime","eles","handleMouseEvent","targetElement","Wil","findExtraLog","extraLog","curr","uploadImg","img","form","append","submitFeedback","tel","image_list","tea_cache","web_id","sendBtnTea","FeedbackModal","uploading","setUploading","setContent","setTel","empty","tel_valid","waringVisible","setWarnVisible","isSubmit","setSubmit","imgList","createRef","contentLength","telLength","isOutRange","closeHandler","err_code","files","url_list","image_height","image_width","image_uri","exit","rows","autoFocus","spellCheck","maxLength","click","accept","imgChoose","ProtalModal","feedbackVisible","seriesIds","cardIds","carIds","getSeriesIdFromCardsId","visitedSeries","storedSeries","seriesId","NProgress","template","SpiderContext","MyApp","_pageType","routerPath","_rootStyle","_pageClassName","mainRef","innerList","outerList","rootObserver","paddingStyle","unbindRealUser","extraArr","sampleRate","bid","pid","ignoreAjax","hookFetch","ignoreStatic","tt_web_version","tt_webid","FingerPrint","webIdCookie","history","scrollRestoration","is_dev","initSlardar","enable_stay_duration","maxDuration","pc_real_user","content_type","gid","author_id","media_user","_staging_flag","_ttwidexp","isCusPageEnter","setVisitedSeries","logEvent","teaEvent","resetStayDuration","isScroll","beforePopState","pushState","registRealUser","renderHeader","renderContent","_pageBackToTopBtnBottom","_backToTopStyle","appContext","appProps","hasUrlCity","__hasUrlCity","withRouter","__exportStar","tslib_1","axios_1","__importDefault","BFP","__importStar","collectFingerprintInfo","reportFingerprintInfo","error_1","fingerprint_values","fingerprint_id","reportInfo","mod","fingerprintjs_1","externalComponents_1","hashCanvasValue_1","parseValueToString_1","hashCanvasValue","getExternalComponents","externalComponents","combine","stringifyComponents","CustomComponent","utils_1","durationUtil","DurationUtil","stop","UAComponent","WebGLImageHashComponent","hash_1","webgl_1","webgl","getWebGLContext","buff","createBuffer","program","createProgram","vertex","createShader","VERTEX_SHADER","FRAGMENT_SHADER","bindBuffer","bufferData","STATIC_DRAW","shaderSource","compileShader","attachShader","linkProgram","useProgram","vertexPosAttrib","getAttribLocation","offsetUniform","getUniformLocation","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform2f","drawArrays","TRIANGLE_STRIP","readPixels","RGBA","UNSIGNED_BYTE","x64Hash128","WebGLUnmaskedRendererComponent","debugInfo","getExtension","getParameter","UNMASKED_RENDERER_WEBGL","WebGLUnmaskedVendorComponent","UNMASKED_VENDOR_WEBGL","get_1","Duration","ua_1","webglImageHash_1","webglUnmaskedRenderer_1","webglUnmaskedVendor_1","webglUnmaskedVendor","webglUnmaskedRenderer","webglImageHash","duration_1","stringifyComponentValue","preserveDrawingBuffer","__NEXT_P","Settings","settings","minimum","easing","positionUsing","speed","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","clamp","toBarPerc","barPositionCSS","ease","barCSS","transition","configure","started","isStarted","progress","bar","getPositioningCSS","opacity","work","amount","initial","$promise","always","fromStart","isRendered","addClass","innerHTML","spinner","perc","removeElement","removeClass","vendorPrefix","cssPrefixes","cssProps","camelCase","getVendorProp","vendorName","capName","getStyleProp","applyCss","properties","hasClass","oldList","newList","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","booleanValueOf","functionToString","bigIntValueOf","symToString","isEnumerable","inspectCustom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","depth","seen","maxStringLength","customInspect","indent","inspectString","maxDepth","baseIndent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","attrs","xs","singleLineValues","indentedJoin","isError","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isBigInt","isBoolean","ys","trailer","lowbyte","8","9","10","12","13","lineJoiner","isArr","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","uptime","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","browser","argv","versions","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","messages","lastUid","ALL_SUBSCRIBING_MSG","hasKeys","throwException","ex","callSubscriberWithDelayedExceptions","callSubscriberWithImmediateExceptions","deliverMessage","originalMessage","matchedMessage","immediateExceptions","callSubscriber","createDeliveryFunction","topic","hasDirectSubscribersFor","messageHasSubscribers","found","sync","deliver","publishSync","subscribeAll","subscribeOnce","clearAllSubscriptions","clearSubscriptions","countSubscriptions","getSubscriptions","descendantTopicExists","isTopic","isToken","percentTwenties","Format","formatters","RFC1738","RFC3986","formats","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","delimiter","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","segment","leaf","cleanRoot","0","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","maybeMap","encodedVal","parseValues","compact","getSideChannel","arrayPrefixGenerators","brackets","indices","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","encodeValuesOnly","format","formatter","serializeDate","date","skipNulls","generateArrayPrefix","sideChannel","objKeys","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","arrayToObject","refs","compacted","compactQueue","strWithoutPlus","defaultEncoder","mapped","mergeTarget","targetItem","qs","sep","maxKeys","kstr","vstr","stringifyPrimitive","ks","vendors","suffix","raf","caf","_now","cp","cancelled","handle","cancelAnimationFrame","hasElementType","hasArrayBuffer","equal","$$typeof","UNMOUNTED","EXITED","EXITING","Transition","_React$Component","initialStatus","isMounting","appearStatus","mountOnEnter","nextCallback","getDerivedStateFromProps","prevState","_proto","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","_this2","appearing","enterTimeout","safeSetState","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_this$props","TransitionGroupContext","contextType","propTypes","defaultProps","or","cidr","digitOnly","unreserved","alpha","subDelims","pctEncoded","pchar","decOctect","IPv4address","h16","hexDigitOnly","ls32","IPv6SixHex","IPv6FiveHex","IPv6FourHex","IPv6ThreeHex","IPv6TwoHex","IPv6OneHex","IPv6NoneHex","IPv6address","IPvFuture","alphaOnly","IPLiteral","authority","pathAbEmpty","generate","callBound","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","$m","$o","assert","objects","listGet","listHas","listSet","isProd","StyleSheet","_temp","_ref$name","_ref$optimizeForSpeed","optimizeForSpeed","_ref$isBrowser","isBrowser","invariant","_name","_deletedRulePlaceholder","_optimizeForSpeed","_isBrowser","_serverSheet","_tags","_injected","_rulesCount","_nonce","setOptimizeForSpeed","bool","inject","isOptimizeForSpeed","makeStyleTag","getSheet","cssRules","insertRule","cssText","deleteRule","getSheetForTag","sheet","styleSheets","ownerNode","insertionPoint","replaceRule","rules","cssString","relativeToTag","condition","styleSheetRegistry","JSXStyle","_Component","tagInfo","baseId","computeId","shouldComponentUpdate","otherProps","_stringHash","_stylesheet","StyleSheetRegistry","_ref$styleSheet","styleSheet","_sheet","_fromServer","_indices","_instancesCounts","createComputeId","computeSelector","createComputeSelector","selectFromServer","_this$getIdAndRules","getIdAndRules","styleId","tagFromServer","nextProps","fromServer","propsToString","selectoPlaceholderRegexp","idcss","extendStatics","__extends","__","__rest","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__createBinding","__values","__read","ar","__spread","__await","__asyncGenerator","asyncIterator","resume","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","getDefaultCSSWhiteList","abbr","address","article","aside","bdi","bdo","big","blockquote","br","caption","cite","col","colgroup","dd","details","dl","dt","em","h3","h4","h5","h6","ins","li","mark","nav","ol","pre","section","small","sup","strong","table","tbody","td","tfoot","th","thead","tr","tt","ul","video","defaultCSSFilter","escapeHtml","REGEXP_LT","REGEXP_GT","REGEXP_QUOTE","REGEXP_QUOTE_2","REGEXP_ATTR_VALUE_1","REGEXP_ATTR_VALUE_COLON","REGEXP_ATTR_VALUE_NEWLINE","REGEXP_DEFAULT_ON_TAG_ATTR_4","REGEXP_DEFAULT_ON_TAG_ATTR_7","REGEXP_DEFAULT_ON_TAG_ATTR_8","escapeQuote","unescapeQuote","escapeHtmlEntities","escapeDangerHtml5Entities","clearNonPrintableCharacter","str2","friendlyAttrValue","escapeAttrValue","STRIP_COMMENT_TAG_REGEXP","onTag","onIgnoreTag","onTagAttr","onIgnoreTagAttr","cssFilter","onIgnoreTagStripAll","StripTagBody","isRemoveAllTag","removeList","posStart","isRemoveTag","isClosing","rethtml","stripCommentTag","stripBlankChar","char","FilterXSS","filterXSS","DedicatedWorkerGlobalScope","getTagName","spaceIndex","REGEXP_ILLEGAL_ATTR_NAME","findNextEqual","findBeforeEqual","stripQuoteWrap","isQuoteWrapString","parseTag","tagStart","quoteStart","currentPos","currentTagName","currentHtml","parseAttr","retAttrs","tmpName","addAttr","stripIgnoreTag","allowCommentTag","stripIgnoreTagBody","retHtml","closing","getAttrs","whiteAttrList","attrsHtml","isWhiteAttr"],"mappings":"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ACA,eACA,yCACA,mCAEJC,cAAe,CAAC,eAAgB,eAAgB,UAAW,0BAA2B,iBACtFC,eAAgB,CACZ,sCACA,sCACA,WACA,yBACA,4BAEJC,cAAe,CACX,+CACA,sCACA,cACA,eACA,iBAEJC,yBAA0B,CACtB,oBACA,eACA,iBACA,cACA,oCAEJC,0BAA2B,CACvB,4BACA,eACA,qCACA,+CACA,sCAEJC,eAAgB,CACZ,aACA,WACA,yCACA,0CACA,yCAEJC,UAAW,CAAC,uBAAwB,UAAW,iBAAkB,kBAAmB,sBACpFC,SAAU,CAAC,oBAAqB,iBAAkB,4BAA6B,kBAAmB,cAClGC,cAAe,CACX,gCACA,0BACA,wCACA,iBACA,aAEJC,eAAgB,CAAC,mBAAoB,gBAAiB,2BAA4B,eAAgB,eAClGC,oBAAqB,CAAC,oBAAqB,gBAAiB,qBAAsB,SAAU,wBAC5FC,cAAe,CACX,eACA,yBACA,YACA,sCACA,sBAEJC,gBAAiB,CACb,yCACA,oDACA,uBACA,uBACA,eAEJC,cAAe,CACX,mBACA,4BACA,6CACA,uCACA,+CAEJC,kBAAmB,CACf,mBACA,qBACA,iCACA,oCACA,qCAEJC,SAAU,CAAC,sCACXC,iBAAkB,CACd,gBACA,yBACA,uBACA,6BACA,mCAEJC,mBAAoB,CAAC,oCACrBC,uBAAwB,CACpB,kBACA,oDACA,mBACA,kEACA,mBAEJC,aAAc,CACV,kCACA,oBACA,kBACA,kCACA,6BAEJC,gBAAiB,CACb,2CACA,kCACA,6BACA,eACA,gBAEJC,aAAc,CACV,oCACA,2CACA,mDACA,gBACA,kBAEJC,UAAW,CACP,wBACA,4BACA,kCACA,cACA,8BAEJC,sBAAuB,CACnB,gDACA,iCACA,yBACA,6BACA,0BAEJC,aAAc,CAAC,kDACfC,QAAS,CACL,gIACA,gIAEJC,OAAQ,CACJ,gCACA,8BACA,qBACA,iCACA,qBAEJC,QAAS,CACL,eACA,2BACA,yBACA,wBACA,2CAEJC,QAAS,CACL,qCACA,yBACA,mCACA,yBACA,mCAEJC,eAAgB,CACZ,8BACA,oCACA,oDACA,8CACA,kBAEJC,GAAI,CACA,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","file":"static/chunks/pages/_app-325f9924bab26767c0b5.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/json/stringify\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/typeof\"));\n\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar _defaults = _interopRequireDefault(require(\"./defaults\"));\n\n/**\n *\n * @param data 数据内容,如果为Object,则表示Set操作,会写入Cookies,如果为String则表示为Get操作,获取对应的Cookie\n * @param opt 扩展参数, 可以配置例如过期时间等\n * expires: 100 * 24 * 3600,\n * domain: false,\n * path: '/',\n * secure: https ? true : false\n * 高级参数\n * nulltoremove: true, //设置参数为null,移除Cookie\n * autojson: true,\n * autoencode: true,\n * encode: function(str){ return encodeURIComponent(str); },\n * decode: function(str){ return decodeURIComponent(str); },\n */\nfunction expires(time) {\n var expireDate = time;\n\n if (!(expireDate instanceof Date)) {\n expireDate = new Date();\n expireDate.setTime(expireDate.getTime() + time * 1000);\n }\n\n return expireDate.toUTCString();\n}\n\nfunction cookies(data) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n opt = (0, _defaults.default)(opt, {\n autoencode: true,\n autojson: true,\n decode: decodeURIComponent,\n encode: encodeURIComponent,\n expires: 365 * 24 * 3600,\n fallback: false,\n nulltoremove: true,\n path: '/',\n secure: window.location.protocol === 'https:'\n });\n\n if (typeof data === 'string') {\n var value = (new RegExp(\"\\\\b\".concat(data, \"=([^;]+)\")).exec(document.cookie) || [])[1];\n\n if (opt.autoencode) {\n value = opt.decode(value);\n }\n\n if (!opt.autojson) {\n return value;\n }\n\n var real;\n\n if (['{', '['].indexOf(value[0]) > -1) {\n try {\n real = JSON.parse(value);\n } catch (e) {\n real = value;\n }\n\n if (typeof real === 'undefined' && opt.fallback) {\n real = opt.fallback(data, opt);\n }\n\n return real;\n }\n\n return value;\n } // Set each of the cookies\n\n\n document.cookie = (0, _keys.default)(data).reduce(function (prev, key) {\n var value = data[key];\n var expired = value === void 0 || opt.nulltoremove && value === null;\n\n if (expired) {\n value = '';\n } else {\n if (opt.autojson && (0, _typeof2.default)(value) === 'object') {\n value = (0, _stringify.default)(value);\n }\n\n if (opt.autoencode) {\n value = opt.encode(value);\n }\n }\n\n var values = [\"\".concat(opt.encode(key), \"=\").concat(value)];\n\n if (opt.expires) {\n values.push(\"expires=\".concat(expires(expired ? -10000 : opt.expires)));\n }\n\n if (opt.path) {\n values.push(\"path=\".concat(opt.path));\n }\n\n if (opt.domain) {\n values.push(\"domain=\".concat(opt.domain));\n }\n\n if (opt.secure) {\n values.push('secure');\n }\n\n var item = values.join(';');\n opt.test && opt.test(item);\n return prev + item;\n }, '');\n}\n\ncookies.default = cookies;\nvar _default = cookies;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _assign = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/assign\"));\n\nvar _keys = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/object/keys\"));\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/typeof\"));\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nvar _objectInterface = require(\"./interface/objectInterface\");\n\nfunction defaults(object) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n return sources.filter(function (item) {\n return (0, _typeof2.default)(item) === 'object' && item !== null;\n }).reduce(function (prev, item) {\n (0, _keys.default)(item).forEach(function (key) {\n if (!Object.prototype.hasOwnProperty.call(prev, key) || prev[key] === void 0) {\n prev[key] = item[key];\n }\n });\n return prev;\n }, (0, _assign.default)({}, object));\n}\n\ndefaults.default = defaults;\nvar _default = defaults;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.on = on;\nexports.one = one;\nexports.off = off;\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nfunction on(el, eventName, callback, opts) {\n var supportsPassive = false;\n var passive = true;\n\n if (opts) {\n passive = opts.passive;\n }\n\n try {\n var _opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n\n window.addEventListener('test', null, _opts);\n } catch (e) {\n return null;\n }\n\n if (el.addEventListener) {\n el.addEventListener(eventName, callback, supportsPassive ? {\n passive: passive\n } : false);\n } else if (el.attachEvent) {\n el.attachEvent(\"on\".concat(eventName), callback);\n }\n\n return callback;\n}\n\nfunction one(el, eventName, callback, opts) {\n var handler = on(el, eventName, function (e) {\n callback.call(el, e || window.event);\n off(el, eventName, handler);\n }, opts);\n return handler;\n}\n\nfunction off(el, eventName, callback) {\n if (el.removeEventListener) {\n el.removeEventListener(eventName, callback);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\".concat(eventName), callback);\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/toArray\"));\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.regexp.search\");\n\nfunction getQuery(name, search) {\n if (search === void 0) {\n search = typeof window !== 'undefined' && window.location && window.location.search.substr(1);\n }\n\n var queries = {};\n search && search.split('&').forEach(function (c) {\n if (c === '') {\n return;\n }\n\n var _c$split = c.split('='),\n _c$split2 = (0, _toArray2.default)(_c$split),\n key = _c$split2[0],\n values = _c$split2.slice(1);\n\n queries[decodeURIComponent(key)] = decodeURIComponent(values.join('='));\n });\n return name ? queries[name] : queries;\n}\n\ngetQuery.default = getQuery;\nvar _default = getQuery;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/json/stringify\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/typeof\"));\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nvar _getIterator2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/get-iterator\"));\n\nfunction serializeObject(data) {\n var params = [];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = (0, _getIterator2.default)(Object.keys(data)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var value = data[key]; // stringify 过滤掉undefined和null\n\n if (value !== null && value !== void 0) {\n if ((0, _typeof2.default)(value) === 'object') {\n params.push(\"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent((0, _stringify.default)(value))));\n } else {\n params.push(\"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(value)));\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return params.join('&');\n}\n\nserializeObject.default = serializeObject;\nvar _default = serializeObject;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","module.exports = require(\"core-js/library/fn/array/from\");","module.exports = require(\"core-js/library/fn/array/is-array\");","module.exports = require(\"core-js/library/fn/get-iterator\");","module.exports = require(\"core-js/library/fn/is-iterable\");","module.exports = require(\"core-js/library/fn/json/stringify\");","module.exports = require(\"core-js/library/fn/object/assign\");","module.exports = require(\"core-js/library/fn/object/keys\");","module.exports = require(\"core-js/library/fn/symbol\");","module.exports = require(\"core-js/library/fn/symbol/iterator\");","var _Array$isArray = require(\"../core-js/array/is-array\");\n\nfunction _arrayWithHoles(arr) {\n if (_Array$isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","var _Array$from = require(\"../core-js/array/from\");\n\nvar _isIterable = require(\"../core-js/is-iterable\");\n\nfunction _iterableToArray(iter) {\n if (_isIterable(Object(iter)) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return _Array$from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray;","var _Symbol$iterator = require(\"../core-js/symbol/iterator\");\n\nvar _Symbol = require(\"../core-js/symbol\");\n\nfunction _typeof2(obj) { if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof _Symbol === \"function\" && _typeof2(_Symbol$iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","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 _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","\"use strict\";function e(e){return e&&\"object\"==typeof e&&\"default\"in e?e.default:e}Object.defineProperty(exports,\"__esModule\",{value:!0});var t=require(\"@byted/sec_sdk_build/captcha/cn\"),o=require(\"@byted/sec_sdk_build/captcha/sg\"),r=require(\"@byted/sec_sdk_build/captcha/va\"),i=require(\"@byted/sec_sdk_build/captcha/in\"),a=e(require(\"axios\")),n=e(require(\"isuri\"));function s(){return(s=Object.assign||function(e){for(var t=1;t=0||(i[o]=e[o]);return i}var d={SEND_MOBILE_CODE:\"/passport/web/send_code/\",SEND_EMAIL_CODE:\"/passport/web/email/send_code/\",VERIFY_MOBILE_CODE:\"/passport/web/validate_code/\",VERIFY_EMAIL_CODE:\"/passport/web/email/verify/\",CHECK_MOBILE_CODE:\"/passport/web/mobile/check_code/\",CHECK_EMAIL_CODE:\"/passport/web/email/check_code/\",SMS_LOGIN:\"/passport/web/sms_login/\",SMS_LOGIN_ONLY:\"/passport/web/sms_login_only/\",SMS_LOGIN_CONTINUE:\"/passport/web/sms_login_continue/\",EMAIL_LOGIN:\"/passport/web/email/login/\",EMAIL_CODE_LOGIN:\"/passport/web/email/code_login/\",EMAIL_REGISTER_LOGIN:\"/passport/web/email/register_verify_login/\",EMAIL_REGISTER:\"/passport/web/email/register_verify/\",PWD_LOGIN:\"/passport/web/user/login/\",AUTH_LOGIN:\"/passport/web/auth/login/\",AUTH_LOGIN_ONLY:\"/passport/web/auth/login_only/\",AUTH_BIND_ONLY:\"/passport/web/auth/bind_login/\",MOBILE_BIND_ONLY:\"/passport/web/mobile/bind_login/\",MOBILE_EMAIL_REGISTER:\"/passport/web/mobile_email_register/\",MOBILE_REGISTER:\"/passport/mobile/register/\",MOBILE_OAUTH:\"/passport/auth/show_oauth_mobile/\",LOGOUT:\"/passport/web/logout/\",CHECK_LOGIN:\"/passport/account/info/v2/\",BIND_WITH_MOBILE_LOGIN:\"/passport/web/auth/bind_with_mobile_login/\",GET_QRCODE:\"/passport/web/get_qrcode/\",CHECK_QRCONNECT:\"/passport/web/check_qrconnect/\",SCAN_QRCODE:\"/passport/web/scan_qrcode/\",CONFIRM_QRCODE:\"/passport/web/confirm_qrcode/\",THIRD_AUTH:\"/passport/web/web_login/\",MOBILE_BIND:\"/passport/web/mobile/bind/\",EMAIL_BIND:\"/passport/web/email/bind/\",AUTH_BIND:\"/passport/web/auth/bind/\",AUTH_UNBIND:\"/passport/web/auth/unbind/\",AUTH_SWITCH_BIND:\"/passport/web/auth/switch_bind/\",MOBILE_REBIND:\"/passport/web/mobile/change/\",EMAIL_REBIND:\"/passport/web/email/change/\",RESET_PWD_BY_MOBILE:\"/passport/web/password/reset/\",RESET_PWD_BY_EMAIL:\"/passport/web/email/password/reset/\",RESET_PWD_BY_MOBILE_TICKET:\"/passport/web/password/reset_by_ticket/\",RESET_PWD_BY_EMAIL_TICKET:\"/passport/web/password/reset_by_email_ticket/\",PWD_CHANGE_BY_MOBILE:\"/passport/web/password/change/\",PWD_UPDATE:\"/passport/web/password/update/\",PWD_CHANGE_BY_EMAIL:\"/passport/web/email/change_password/\",PWD_SET:\"/passport/web/password/set/\",PWD_HAS_SET:\"/passport/password/has_set/\",PWD_HAS_SET_V2:\"/passport/web/password/has_set/\",ACCOUNT_VERIFY:\"/passport/web/account/verify/\",AUTH_VERIFY:\"/passport/web/auth/verify/\",SMS_AUTHORIZE:\"/passport/web/sms/authorize/\",CANCEL_VERIFY_WAY:\"/passport/auth/cancel_verify_way/\",CANCEL_CHECK:\"/passport/web/cancel/check/\",CANCEL_CONFIRM:\"/passport/web/cancel/confirm/\",CHECK_MOBILE_REGISTER:\"/passport/web/user/check_mobile_registered/\",CHECK_EMAIL_REGISTER:\"/passport/web/user/check_email_registered\",CHANGE_QRCODE_SUCCESS:\"/passport/qrcode_twostep_verify/scan_qrcode/\",CHANGE_QRCODE_CONFIRM:\"/passport/qrcode_twostep_verify/confirm_by_ticket/\",GET_OPEN_AUTH_INFO:\"/passport/open/auth_info/v2/\",OPEN_SEND_CODE:\"/passport/open/send_code/\",OPEN_SMS_AUTH:\"/passport/open/web/sms/auth/\",OPEN_ACCOUNT_AUTH:\"/passport/open/web/account/auth/\",OPEN_THIRD_AUTH:\"/passport/open/web/third_party/auth/\",OPEN_WEB_AUTH:\"/passport/open/web/auth/\",ACCOUNT_INFO:\"/passport/web/account/info/\"},_={SEND_MOBILE_CODE:\"/passport/aff/web/mobile/send_code/\",SEND_EMAIL_CODE:\"/passport/aff/web/email/send_code/\",VERIFY_MOBILE_CODE:\"/passport/aff/web/mobile/validate_code/\",VERIFY_EMAIL_CODE:\"/passport/aff/web/email/verify/\",CHECK_MOBILE_CODE:\"/passport/aff/web/mobile/check_code/\",CHECK_EMAIL_CODE:\"/passport/aff/web/email/check_code/\",SMS_LOGIN:\"/passport/aff/web/mobile/sms_login/\",EMAIL_LOGIN:\"/passport/aff/web/email/code_login/\",PWD_LOGIN:\"/passport/aff/web/user/login/\",OAUTH_LOGIN_CALL:\"/passport/aff/web/oauth/login/call/\",OAUTH_LOGIN_ONLY:\"/passport/aff/web/oauth/login_only/\",OAUTH_LOGIN:\"/passport/aff/web/oauth/login/\",SUBJECT_LOGIN_LIST:\"/passport/aff/web/subject/login_list/\",SUBJECT_LOGIN:\"/passport/aff/web/subject/login/\",LOGOUT:\"/passport/aff/web/logout/\",REGISTER_EMAIL_USER_ONLY:\"/passport/aff/web/email/register/only_user/\",REGISTER_EMAIL:\"/passport/aff/web/email/register/\",REGISTER_MOBILE_USER_ONLY:\"/passport/aff/web/mobile/register/only_user/\",REGISTER_MOBILE:\"/passport/aff/web/mobile/register/\",RESET_BY_MOBILE:\"/passport/aff/web/mobile/password/reset/\",RESET_BY_EMAIL:\"/passport/aff/web/email/password/reset/\",MOBILE_INVITE:\"/passport/aff/web/invitation/mobile/invite/\",EMAIL_INVITE:\"/passport/aff/web/invitation/email/invite/\",LARK_INVITE:\"/passport/aff/web/invitation/lark/invite/\",INVITE_LIST:\"/passport/aff/web/invitation/list/\",CANCEL_INVITE:\"/passport/aff/web/invitation/cancel/\",RESEND_INVITE:\"/passport/aff/web/invitation/resend/\",UPDATE_INVITE:\"/passport/aff/web/invitation/update/\",CHECK_INVITE_VALID:\"/passport/aff/web/invitation/check/\",ACCEPT_INVITE:\"/passport/aff/web/invitation/accept/\",CREATE_BY_USERNAME:\"/passport/aff/web/subject/username/create/\",CREATE_BY_MOBILE:\"/passport/aff/web/subject/mobile/create/\",CREATE_BY_EMAIL:\"/passport/aff/web/subject/email/create/\",SUBJECT_LIST:\"/passport/aff/web/subject/all/list/\",SUBJECT_DEPUTY_LIST:\"/passport/aff/web/subject/deputy/list/\",SUBJECT_IDENTITY_LIST:\"/passport/aff/web/subject/identity/list/\",UPDATE_DEPUTY_INFO:\"/passport/aff/web/deputy/update/\",FREEZE_DEPUTY:\"/passport/aff/web/deputy/freeze/\",DELETE_DEPUTY:\"/passport/aff/web/deputy/delete/\",UPDATE_SUBJECT_INFO:\"/passport/aff/web/subject/update/\",FREEZE_SUBJECT:\"/passport/aff/web/subject/freeze/\",RESOURCE_LIST:\"/passport/aff/web/resource/list/\",CREATE_ROLE:\"/passport/aff/web/role/create/\",UPDATE_ROLE:\"/passport/aff/web/role/update/\",BAN_ROLE:\"/passport/aff/web/role/ban/\",ROLE_LIST:\"/passport/aff/web/role/list/\",ROLE_INFO:\"/passport/aff/web/role/info/\",CREATE_USER_WITH_ROLE:\"/passport/aff/web/user/create_with_role/\",ADD_USER_ROLE:\"/passport/aff/web/user_role/add/\",DELETE_USER_ROLE:\"/passport/aff/web/user_role/del/\",USER_ROLE_LIST:\"/passport/aff/web/user_role/list/\",ALL_USER_ROLE_LIST:\"/passport/aff/web/user_role/all/list/\",USER_PERMISSIONS:\"/passport/aff/web/user/permissions/\",SUCCESSOR_SEND_CODE:\"/passport/aff/web/admin/successor/send_code/\",TRANSFER_MANAGER:\"/passport/aff/web/admin/transfer/\",MEMBER_SWITCH:\"/passport/aff/web/member/switch/\"},l={MOBILE_CODE_URL:\"/send_activation_code/\",MOBILE_CODE_URL_V2:\"/send_activation_code/v2/\",EMAIL_ACTIVATE_URL:\"/send_email_activate_link/\",EMAIL_ACTIVATE_URL_V2:\"/send_email_activate_link/v2/\",EMAIL_ACTIVATE_CODE_URL:\"/send_email_activate_code/\",EMAIL_ACTIVATE_CODE_URL_V2:\"/send_email_activate_code/v2/\",CHECK_LOGIN:\"/check_login/\",MOBILE_CODE_LOGIN_URL:\"/quick_login/\",MOBILE_CODE_LOGIN_URL_V2:\"/quick_login/v2/\",ACCOUNT_LOGIN_URL:\"/account_login/\",ACCOUNT_LOGIN_URL_V2:\"/account_login/v2/\",AUTH_LOGIN_URL:\"/passport/auth/wap_login/\",BIND_WITH_MOBILE_LOGIN:\"/bind_with_mobile_login/\",AUTH_LOGIN:\"/auth/login/\",AUTH_LOGIN_ONLY:\"/auth/login_only/\",LOGOUT:\"/logout/\",EMAIL_ACTIVATE_CODE_LOGIN:\"/activate_email/code_login/\",EMAIL_REGISTER:\"/activate_email/register/\",EMAIL_REGISTER_V2:\"/activate_email/register/v2/\",MOBILE_REGISTER_WITH_EMAIL:\"/register/\",MOBILE_REGISTER_WITH_EMAIL_V2:\"/register/v2/\",SSO_EMAIL_ACTIVATE_CODE_URL:\"/sso/send_email_activate_code/\",RESET_PASSWORD:\"/reset_password/\",RESET_PASSWORD_BY_EMAIL:\"/activate_email/reset_password/\",BIND_MOBILE:\"/bind_mobile/\",CHANGE_MOBILE:\"/change_mobile/\",QUICK_AUTH:\"/quick_auth/\",GET_QRCODE:\"/get_qrcode/\",CHECK_QRCONNECT:\"/check_qrconnect/\",SCAN_QRCODE:\"/scan_qrcode/\",CONFIRM_QRCODE:\"/confirm_qrcode/\",MOBILE_EMAIL_REGISTER:\"/mobile_email_register/\"};function p(e){var t=window.byted_acrawler,o=[].concat(Object.values(d),Object.values(_),Object.values(l)),r=Object.values(l).map((function(e){return[e,\"/passport/sso\"+e]}))||[];t&&t.init({aid:e.aid,dfp:\"cn\"===e.acrawler,boe:e.isBoe||!1,intercept:!0,enablePathList:o,urlRewriteRules:r})}function m(e,t){var o=\"https://lf3-cdn-tos.bytescm.com/obj/rc-web-sdk/acrawler.js\";\"gcs\"===e?o=\"https://sf16-secsdk-va.ibytedtos.com/obj/rc-web-sdk-gcs/acrawler.js\":\"sg\"===e?o=\"https://sf16-secsdk-sg.ibytedtos.com/obj/rc-web-sdk-sg/acrawler.js\":\"giso\"===e&&(o=\"https://sf16-va.tiktokcdn-in.com/obj/rc-web-sdk-giso/acrawler.js\"),window.byted_acrawler?p(t):function(e,t){var o=document.createElement(\"script\");o.type=\"text/javascript\",o.src=e,document.getElementsByTagName(\"head\")[0].appendChild(o),o.readyState?o.onreadystatechange=function(){\"complete\"!==o.readyState&&\"loaded\"!==o.readyState||(o.onreadystatechange=null,t&&t())}:o.onload=function(){t&&t()}}(o,(function(){p(t)}))}function f(e){var t,o=new RegExp(\"(^| )\"+e+\"=([^;]*)(;|$)\");return(t=document.cookie.match(o))?unescape(t[2]):\"\"}function h(e,t,o){void 0===o&&(o=!0),console.group(e),t&&Object.keys(t).forEach((function(e){o?console.log(e,o||\"background: #222; color: #bada55\",t[e]):console.log(e,t[e])})),console.groupEnd()}function v(e){return Object.keys(e).map((function(t){var o=e[t];return\"object\"==typeof o?encodeURIComponent(t)+\"=\"+encodeURIComponent(JSON.stringify(o)):encodeURIComponent(t)+\"=\"+encodeURIComponent(o)})).join(\"&\")}var E,b,O=function(e){var t,o=[];if(void 0===e)return\"\";t=function(e){for(var t,o=e.toString(),r=[],i=0;i>6),r.push(128|63&t)):(2048<=t&&t<=55295||57344<=t&&t<=65535)&&(r.push(224|15&t>>12),r.push(128|63&t>>6),r.push(128|63&t));for(var a=0;a>>>\",{SUCCESS:n.data,Logid:a},!1),Promise.resolve(n.data);u&&h(\"call \"+i+\" result >>>>\",{ERROR:n.data,Logid:a},!1);var d=null==n||null===(r=n.data)||void 0===r?void 0:r.verify_center_decision_conf;return null!=c&&c.appShowCaptcha||!d?Promise.reject(s({},n.data,{log_id:a})):Promise.resolve(L({verifyData:d,requestConfig:null==e?void 0:e.config}))},x=function(e,o){var r;r=e,new Promise((function(e){y.initProps=r,e(y)})),this.request=new R(e,o),function(e){var o=e.request,r=u(e,[\"request\"]);E=o,function(e){var o,r=e.isBoe,i=e.captchaOptions,a=void 0===i?{}:i,n=e.secondVerifyWebOptions,c=void 0!==r&&r?\"//boe-verify.snssdk.com\":void 0,u={commonOptions:s({},I,{aid:e.aid,did:e.did?String(e.did):\"0\",iid:e.iid?String(e.iid):\"0\"}),captchaOptions:s({},T,{sideSlide:e.captchaSideSlide||\"disabled\",lang:e.language||\"zh\",showMode:e.captchaShowMode||\"mask\",region:e.region||\"cn\",app_name:e.appName||\"\",host:e.captchaHost||c},a),secondVerifyWebOptions:n};(b=S[e.region||\"cn\"]||t).init||(b=null===(o=b)||void 0===o?void 0:o.default),b.init(u,(function(){}),(function(){}))}(r)}(s({},e,{request:this.request}))},R=function(e,t){var o,r,i,c;return void 0===t&&(t=\"web\"),null!==(o=C(\"initProps\"))&&void 0!==o&&o.fetch?(i=(r=C(\"initProps\")||{}).isBoe,(c=a.create({baseURL:r.host||window&&(void 0!==i&&i?\"http\":\"https\")+\"://\"+window.location.hostname,adapter:function(e){var t=e.baseURL,o=e.url,r=e.method,i=void 0===r?\"GET\":r,a=e.params,c=void 0===a?{}:a,u=e.data,d=void 0===u?{}:u,_=C(\"initProps\"),l=_.fetch,p=(null==_?void 0:_.printLog)||!1,m=n.isValid(o)?o:t+o;return p&&h(i+\" \"+m+\" >>>>\",{\"data >>>>\":d,\"params >>>>\":c},!1),l({url:m,method:i.toUpperCase(),params:s({},c,{is_native_h5:1}),data:d,needCommonParams:!0,header:{\"x-tt-passport-csrf-token\":f(\"passport_csrf_token\")||f(\"passport_csrf_token_default\")||\"\"}}).then((function(t){return{data:t,status:200,statusText:\"ok\",config:e}}))},withCredentials:!0,transformRequest:[function(e){var t=e;if(\"string\"==typeof e)try{t=JSON.parse(e)}catch(e){console.log(e)}return t}]})).interceptors.response.use(g,void 0),c):function(e){var t=C(\"initProps\")||{},o=a.create({baseURL:t.host||window&&(t.isBoe?window.location.protocol:\"https:\")+\"//\"+window.location.hostname,withCredentials:!0});return o.interceptors.request.use((function(t){return function(e,t){var o;void 0===t&&(t={});var r=C(\"initProps\"),i=(null==r?void 0:r.printLog)||!1,a=null==e?void 0:e.url,n=(null==e?void 0:e.method)||\"get\",c=(null==e?void 0:e.data)||{},d={\"x-tt-passport-csrf-token\":f(\"passport_csrf_token\")||f(\"passport_csrf_token_default\")||\"\"},_=Object.assign({\"Content-Type\":\"application/x-www-form-urlencoded\",Accept:\"application/json, text/javascript\"},e.headers||{},d);if(e.headers=_,i&&h(n+\" \"+a+\" >>>>\",{\"%cdata >>>>\":c,\"%ccommon params >>>>\":t}),null!==(o=e.params)&&void 0!==o&&o.isResend)return s({},e,{params:u(e.params,[\"isResend\"])});var l={};return Object.keys(c).filter((function(e){return void 0!==c[e]})).forEach((function(e){l[e]=c[e]})),[\"post\",\"POST\"].includes(n)&&(e.params=t,e.data=v(l)),[\"get\",\"GET\"].includes(n)&&(e.params=s({},l,t,e.params)),e}(t,e)}),void 0),o.interceptors.response.use((function(e){return function(e){var t,o,r,i,a,n,c,u,d,_,l,p,m=P[e.config.params.account_sdk_source],f=(null==m?void 0:m.respHandler)||function(e){return\"success\"===(null==e?void 0:e.message)},v=(null==m?void 0:m.successCallBack)||function(e){return null==e?void 0:e.data},E=(null==m?void 0:m.failCallBack)||function(e){return null==e?void 0:e.data},b=(null==e||null===(t=e.config)||void 0===t?void 0:t.url)||\"\",O=(null==e||null===(o=e.headers)||void 0===o?void 0:o[\"x-tt-logid\"])||\"\",w=(null==e?void 0:e.data)||{},I=C(\"initProps\"),T=(null==I?void 0:I.printLog)||!1;if(\"string\"==typeof w)try{w=JSON.parse(w)}catch(e){console.log(e)}if(f(w))return T&&h(\"call \"+b+\" result >>>>\",{\"%cSUCCESS\":v(w),\"%cLogid\":O}),Promise.resolve(v(w));T&&h(\"call \"+b+\" result >>>>\",{\"%cERROR\":E(w),\"%cLogid\":O});var S,y=(null===(r=w)||void 0===r||null===(i=r.data)||void 0===i?void 0:i.verify_center_decision_conf)||(null===(a=w)||void 0===a||null===(n=a.data)||void 0===n?void 0:n.verify_center_secondary_decision_conf)||(null===(c=w)||void 0===c?void 0:c.verify_center_decision_conf)||(null===(u=w)||void 0===u?void 0:u.verify_center_secondary_decision_conf),g=(null===(d=w)||void 0===d||null===(_=d.data)||void 0===_?void 0:_.error_code)||(null===(l=w)||void 0===l?void 0:l.error_code);if(2046===g&&\"function\"==typeof(null==I||null===(p=I.secondVerifyWebOptions)||void 0===p?void 0:p.onValid))return null==I||null===(S=I.secondVerifyWebOptions)||void 0===S||S.onValid(),Promise.reject({description:\"SECOND_VALID\"});if(y){var x,R,A,q=(null===(x=w)||void 0===x||null===(R=x.data)||void 0===R?void 0:R.sms_code_key)||(null===(A=w)||void 0===A?void 0:A.sms_code_key);return Promise.resolve(L({verifyData:y,requestConfig:null==e?void 0:e.config,requestData:2046===g&&q?{sms_code_key:q}:void 0})).then((function(e){return Promise.resolve(e)})).catch((function(e){return Promise.reject(e)}))}var M=E(w);return Promise.reject(s({},M,{log_id:O}))}(e)}),void 0),o}(function(e,t){var o,r=e.scene,i=e.aid,a=e.language,n=void 0===a?\"\":a,c=e.subjectAid,u=e.aff_multi_login,d=void 0===u?0:u;if(\"web\"===t){var _={aid:i};\"aff\"===(void 0===r?\"normal\":r)&&(_.subject_aid=void 0===c?0:c),1===d&&(_.aff_multi_login=1),o=_}if(\"sso\"===t||\"auth\"===t){var l={aid:i};1===d&&(l.aff_multi_login=1),o=l}return o=s({},o,{account_sdk_source:t}),n&&(o=s({},o,{language:n})),o}(e,t))},A=function(e){var t=this;this.sendCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:7},void 0===o?{}:o),[\"mobile\",\"type\"]);return t.request({url:_.SEND_MOBILE_CODE,method:\"POST\",data:r})},this.smsLogin=function(e){var o=e.need_frozen_user,r=e.extra_params,i=w(s({mobile:e.mobile,code:e.code,need_frozen_user:void 0===o?0:o,type:7},void 0===r?{}:r),[\"mobile\",\"type\",\"code\"]);return t.request({url:_.SMS_LOGIN,method:\"POST\",data:i})},this.sendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,type:13},void 0===o?{}:o),[\"email\",\"type\"]);return t.request({url:_.SEND_EMAIL_CODE,method:\"POST\",data:r})},this.emailLogin=function(e){var o=e.need_frozen_user,r=e.extra_params,i=w(s({email:e.email,code:e.code,need_frozen_user:void 0===o?0:o,type:13},void 0===r?{}:r),[\"email\",\"type\",\"code\"]);return t.request({url:_.EMAIL_LOGIN,method:\"POST\",data:i})},this.pwdLogin=function(e){var o,r=e.password,i=e.need_frozen_user,a=void 0===i?0:i,n=e.extra_params,c=void 0===n?{}:n,u=[\"email\",\"username\",\"mobile\",\"account\"].find((function(t){return!!e[t]}));if(!u)return Promise.reject();var d=w(s(((o={password:r})[u]=e[u],o.need_frozen_user=a,o),c),[\"password\",u]);return t.request({url:_.PWD_LOGIN,method:\"POST\",data:d})},this.oauthLoginCall=function(e){var t=e.platform_app_id,o=e.next,r=e.extra_params,i=void 0===r?{}:r,a=C(\"initProps\")||{},n=v(s({platform_app_id:t,next:o,aid:a.aid,subject_aid:a.subjectAid,account_sdk_source:\"web\"},i));window.location.href=_.OAUTH_LOGIN_CALL+\"?\"+n},this.oauthLogin=function(e){var o=e.need_frozen_user,r=e.login_only,i=e.extra_params;return t.request({url:void 0===r||r?_.OAUTH_LOGIN_ONLY:_.OAUTH_LOGIN,method:\"POST\",data:s({platform_app_id:e.platform_app_id,redirect_uri:e.redirect_uri,code:e.code,need_frozen_user:void 0===o?0:o},void 0===i?{}:i)})},this.subjectLoginList=function(e){void 0===e&&(e={});var o=e.extra_params;return t.request({url:_.SUBJECT_LOGIN_LIST,method:\"GET\",data:void 0===o?{}:o})},this.subjectLogin=function(e){var o=e.user_identity_id,r=e.extra_params,i=w(s({login_subject_uid:e.login_subject_uid,user_identity_id:void 0===o?\"0\":o},void 0===r?{}:r),[\"login_subject_uid\",\"user_identity_id\"]);return t.request({url:_.SUBJECT_LOGIN,method:\"POST\",data:i})},this.logout=function(e){var o=e.next,r=void 0===o?\"\":o,i=e.not_redirect,a=void 0!==i&&i,n=C(\"initProps\")||{},s=n.aid,c=n.subjectAid,u=encodeURIComponent(r),d=_.LOGOUT+\"?account_sdk_source=web&aid=\"+s+\"&subject_aid=\"+c+\"&next=\"+u;if(a)return t.request({url:d});window.location.href=d},this.memberSwitch=function(e){var o=e.extra_params;return t.request({url:_.MEMBER_SWITCH,method:\"POST\",data:s({to_sec_member_id:e.to_sec_member_id},void 0===o?{}:o)})},this.request=e.request},q=function(e){var t=this;this.sendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,type:1},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:_.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.verifyEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,type:1},void 0===o?{}:o),[\"email\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:_.CHECK_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.registerByEmail=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=e.only_user,a=void 0!==i&&i,n=u(e,[\"extra_params\",\"only_user\"]),c=w(s({},n,r),[\"base_infos\",\"subject_name\",\"password\",\"identity_card\",\"real_name\"]),d=a?_.REGISTER_EMAIL_USER_ONLY:_.REGISTER_EMAIL;return new Promise((function(e,o){t.request({url:d,method:\"POST\",data:c}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendMobileCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:1},void 0===o?{}:o),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:_.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.verifyMobile=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,type:1},void 0===o?{}:o),[\"mobile\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:_.CHECK_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.registerByMobile=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=e.only_user,a=void 0!==i&&i,n=u(e,[\"extra_params\",\"only_user\"]),c=w(s({},n,r),[\"base_infos\",\"subject_name\",\"password\",\"identity_card\",\"real_name\"]),d=a?_.REGISTER_MOBILE_USER_ONLY:_.REGISTER_MOBILE;return new Promise((function(e,o){t.request({url:d,method:\"POST\",data:c}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},M=function(e){var t=this;this.sendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,type:4},void 0===o?{}:o),[\"email\",\"type\"]);return t.request({url:_.SEND_EMAIL_CODE,method:\"POST\",data:r})},this.sendMobileCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:6},void 0===o?{}:o),[\"mobile\",\"type\"]);return t.request({url:_.SEND_MOBILE_CODE,method:\"POST\",data:r})},this.mobileReset=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,password:e.password},void 0===o?{}:o),[\"mobile\",\"code\",\"password\"]);return t.request({url:_.RESET_BY_MOBILE,method:\"POST\",data:r})},this.emailReset=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,password:e.password},void 0===o?{}:o),[\"email\",\"code\",\"password\"]);return t.request({url:_.RESET_BY_EMAIL,method:\"POST\",data:r})},this.request=e.request},N=function(e){var t=this;this.mobileInvite=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]),a=w(s({},i,r),[\"mobile\"]);return t.request({url:_.MOBILE_INVITE,method:\"POST\",data:a})},this.emailInvite=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]),a=w(s({},i,r),[\"email\"]);return t.request({url:_.EMAIL_INVITE,method:\"POST\",data:a})},this.larkInvite=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]),a=w(s({},i,r),[\"email\"]);return t.request({url:_.LARK_INVITE,method:\"POST\",data:a})},this.getInvitationList=function(e){var o=e.page,r=void 0===o?1:o,i=e.page_size,a=void 0===i?10:i,n=e.extra_params,c=void 0===n?{}:n;return new Promise((function(e,o){t.request({url:\"\"+_.INVITE_LIST+r+\"/\",method:\"GET\",data:s({page_size:a},c)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.cancelInvitation=function(e){var o=e.invite_id,r=void 0===o?0:o,i=e.extra_params,a=void 0===i?{}:i;return new Promise((function(e,o){t.request({url:_.CANCEL_INVITE,method:\"POST\",data:s({invite_id:r},a)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.resendInvitation=function(e){var o=e.invite_id,r=void 0===o?0:o,i=e.next_url,a=void 0===i?\"\":i,n=e.link,c=void 0===n?\"\":n,u=e.extra_params,d=void 0===u?{}:u;return new Promise((function(e,o){t.request({url:_.RESEND_INVITE,method:\"POST\",data:s({invite_id:r,next_url:a,link:c},d)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.updateInvitation=function(e){var o=e.invite_id,r=e.extra_params,i=w(s({invite_id:void 0===o?0:o,deputy_identity_id:e.deputy_identity_id,deputy_name:e.deputy_name},void 0===r?{}:r),[\"deputy_name\"]);return new Promise((function(e,o){t.request({url:_.UPDATE_INVITE,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.checkRegisterStatus=function(e){var o=e.invite_ticket,r=e.extra_params,i=void 0===r?{}:r;return new Promise((function(e,r){t.request({url:_.CHECK_INVITE_VALID,method:\"POST\",data:s({invite_ticket:o},i)}).then((function(t){e(t)})).catch((function(e){r(e)}))}))},this.acceptInvitation=function(e){var o=e.extra_params,r=w(s({invite_ticket:e.invite_ticket,password:e.password,extra:e.extra},void 0===o?{}:o),[\"password\",\"extra\"]);return t.request({url:_.ACCEPT_INVITE,method:\"POST\",data:r})},this.request=e.request},D=function(e){var t=this;this.createByUsername=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]),a=w(s({},i,r),[\"subject_name\",\"deputy_name\",\"password\",\"username\",\"base_infos\",\"detail_infos\"]);return new Promise((function(e,o){t.request({url:_.CREATE_BY_USERNAME,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.createByMobile=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]),a=w(s({},i,r),[\"subject_name\",\"deputy_name\",\"password\",\"mobile\",\"base_infos\",\"detail_infos\"]);return new Promise((function(e,o){t.request({url:_.CREATE_BY_MOBILE,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.createByEmail=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]),a=w(s({},i,r),[\"subject_name\",\"deputy_name\",\"password\",\"email\",\"base_infos\",\"detail_infos\"]);return new Promise((function(e,o){t.request({url:_.CREATE_BY_EMAIL,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.getSubjectList=function(e){var o=e.page,r=void 0===o?1:o,i=e.page_size,a=void 0===i?10:i,n=e.deputy_identity_id,c=e.extra_params,u=void 0===c?{}:c;return new Promise((function(e,o){t.request({url:\"\"+_.SUBJECT_LIST+r+\"/\",method:\"GET\",data:s({page_size:a,deputy_identity_id:n},u)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.getSubjectDeputyList=function(e){var o=e.page,r=void 0===o?1:o,i=e.page_size,a=void 0===i?10:i,n=e.extra_params,c=void 0===n?{}:n;return new Promise((function(e,o){t.request({url:\"\"+_.SUBJECT_DEPUTY_LIST+r+\"/\",method:\"GET\",data:s({page_size:a},c)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.getSubjectIdentityList=function(e){var o=e.page,r=void 0===o?1:o,i=e.page_size,a=void 0===i?10:i,n=e.extra_params,c=void 0===n?{}:n;return new Promise((function(e,o){t.request({url:\"\"+_.SUBJECT_IDENTITY_LIST+r+\"/\",method:\"GET\",data:s({page_size:a},c)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.updateDeputyInfo=function(e){var o=e.extra_params,r=w(s({sec_user_id:e.sec_user_id,deputy_identity_id:e.deputy_identity_id,deputy_name:e.deputy_name,user_identity_id:e.user_identity_id},void 0===o?{}:o),[\"deputy_name\",\"user_identity_id\"]);return new Promise((function(e,o){t.request({url:_.UPDATE_DEPUTY_INFO,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.freezeDeputy=function(e){var o=e.is_frozen,r=e.extra_params,i=w(s({sec_user_id:e.sec_user_id,user_identity_id:e.user_identity_id,is_frozen:void 0===o?0:o},void 0===r?{}:r),[\"sec_user_id\",\"user_identity_id\"]);return new Promise((function(e,o){t.request({url:_.FREEZE_DEPUTY,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.deleteDeputy=function(e){var o=e.extra_params,r=w(s({sec_user_id:e.sec_user_id,user_identity_id:e.user_identity_id},void 0===o?{}:o),[\"user_identity_id\"]);return new Promise((function(e,o){t.request({url:_.DELETE_DEPUTY,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.updateSubjectInfo=function(e){var o=e.extra_params,r=w(s({sec_subject_uid:e.sec_subject_uid,subject_name:e.subject_name,base_infos:e.base_infos,detail_infos:e.detail_infos},void 0===o?{}:o),[\"sec_subject_uid\",\"subject_name\",\"base_infos\",\"detail_infos\"]);return new Promise((function(e,o){t.request({url:_.UPDATE_SUBJECT_INFO,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.freezeSubject=function(e){var o=e.is_frozen,r=e.extra_params,i=w(s({sec_subject_uid:e.sec_subject_uid,is_frozen:void 0===o?0:o},void 0===r?{}:r),[\"sec_subject_uid\"]);return new Promise((function(e,o){t.request({url:_.FREEZE_SUBJECT,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},k=function(e){var t=this;this.getResourceList=function(e){var o=e.page,r=void 0===o?1:o,i=e.page_size,a=void 0===i?10:i,n=e.subject_uid,c=e.extra_params,u=void 0===c?{}:c;return new Promise((function(e,o){t.request({url:\"\"+_.RESOURCE_LIST+r+\"/\",method:\"GET\",data:s({page_size:a,subject_uid:n},u)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},B=function(e){var t=this;this.createRole=function(e){var o=e.role_name,r=e.permissions,i=e.subject_uid,a=e.extra_params,n=void 0===a?{}:a;return new Promise((function(e,a){t.request({url:_.CREATE_ROLE,method:\"POST\",data:s({role_name:o,permissions:r,subject_uid:i},n)}).then((function(t){e(t)})).catch((function(e){a(e)}))}))},this.updateRole=function(e){var o=e.role_key,r=e.role_name,i=e.permissions,a=e.description,n=e.subject_uid,c=e.extra_params,u=void 0===c?{}:c;return new Promise((function(e,c){t.request({url:_.UPDATE_ROLE,method:\"POST\",data:s({role_key:o,role_name:r,permissions:i,description:a,subject_uid:n},u)}).then((function(t){e(t)})).catch((function(e){c(e)}))}))},this.banRole=function(e){var o=e.role_key,r=e.subject_uid,i=e.extra_params,a=void 0===i?{}:i;return new Promise((function(e,i){t.request({url:_.BAN_ROLE,method:\"POST\",data:s({role_key:o,subject_uid:r},a)}).then((function(t){e(t)})).catch((function(e){i(e)}))}))},this.getRoleList=function(e){var o=e.subject_uid,r=e.extra_params,i=void 0===r?{}:r;return new Promise((function(e,r){t.request({url:_.ROLE_LIST,method:\"GET\",data:s({subject_uid:o},i)}).then((function(t){e(t)})).catch((function(e){r(e)}))}))},this.getRoleInfo=function(e){var o=e.role_key,r=e.subject_uid,i=e.extra_params,a=void 0===i?{}:i;return new Promise((function(e,i){t.request({url:_.ROLE_INFO,method:\"GET\",data:s({role_key:o,subject_uid:r},a)}).then((function(t){e(t)})).catch((function(e){i(e)}))}))},this.request=e.request},U=function(e){var t=this;this.createUserWithRole=function(e){var o=e.role_key,r=e.sec_user_id,i=e.name,a=e.identity_id,n=e.subject_uid,c=e.extra_params,u=void 0===c?{}:c;return new Promise((function(e,c){t.request({url:_.CREATE_USER_WITH_ROLE,method:\"POST\",data:s({role_key:o,sec_user_id:r,name:i,identity_id:a,subject_uid:n},u)}).then((function(t){e(t)})).catch((function(e){c(e)}))}))},this.addUserRole=function(e){var o=e.role_key,r=e.sec_user_identity_ids,i=e.subject_uid,a=e.extra_params,n=void 0===a?{}:a;return new Promise((function(e,a){t.request({url:_.ADD_USER_ROLE,method:\"POST\",data:s({role_key:o,sec_user_identity_ids:r,subject_uid:i},n)}).then((function(t){e(t)})).catch((function(e){a(e)}))}))},this.deleteUserRole=function(e){var o=e.role_key,r=e.sec_user_identity_ids,i=e.subject_uid,a=e.extra_params,n=void 0===a?{}:a;return new Promise((function(e,a){t.request({url:_.DELETE_USER_ROLE,method:\"POST\",data:s({role_key:o,sec_user_identity_ids:r,subject_uid:i},n)}).then((function(t){e(t)})).catch((function(e){a(e)}))}))},this.getUserRoleList=function(e){var o=e.subject_uid,r=e.extra_params,i=void 0===r?{}:r;return new Promise((function(e,r){t.request({url:_.USER_ROLE_LIST,method:\"GET\",data:s({subject_uid:o},i)}).then((function(t){e(t)})).catch((function(e){r(e)}))}))},this.getAllUserRoleList=function(e){var o=e.subject_uid,r=e.identity_id,i=e.page,a=void 0===i?1:i,n=e.page_size,c=void 0===n?10:n,u=e.extra_params,d=void 0===u?{}:u;return new Promise((function(e,i){t.request({url:\"\"+_.ALL_USER_ROLE_LIST+a+\"/\",method:\"GET\",data:s({subject_uid:o,identity_id:r,page_size:c},d)}).then((function(t){e(t)})).catch((function(e){i(e)}))}))},this.getUserPermissions=function(e){var o=e.subject_uid,r=e.extra_params,i=void 0===r?{}:r;return new Promise((function(e,r){t.request({url:_.USER_PERMISSIONS,method:\"GET\",data:s({subject_uid:o},i)}).then((function(t){e(t)})).catch((function(e){r(e)}))}))},this.request=e.request},G=function(e){var t=this;this.sendCodeToOldManager=function(e){void 0===e&&(e={});var o=e.extra_params,r=w(s({type:22},void 0===o?{}:o),[\"type\"]);return new Promise((function(e,o){t.request({url:_.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendEmailCodeToOldManager=function(e){void 0===e&&(e={});var o=e.extra_params,r=w(s({type:6},void 0===o?{}:o),[\"type\"]);return new Promise((function(e,o){t.request({url:_.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.verifyOldManagerMobile=function(e){var o=e.extra_params,r=w(s({code:e.code,type:22},void 0===o?{}:o),[\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:_.VERIFY_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.verifyOldManagerEmail=function(e){var o=e.extra_params,r=w(s({code:e.code,type:6},void 0===o?{}:o),[\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:_.VERIFY_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendCodeToNewManager=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,verify_ticket:e.verify_ticket,type:101},void 0===o?{}:o),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:_.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendEmailCodeToNewManager=function(e){var o=e.extra_params,r=w(s({email:e.email,verify_ticket:e.verify_ticket,type:101},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:_.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.verifyNewManagerMobile=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,type:101},void 0===o?{}:o),[\"mobile\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:_.CHECK_MOBILE_CODE,method:\"GET\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.verifyNewManagerEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,type:101},void 0===o?{}:o),[\"email\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:_.CHECK_EMAIL_CODE,method:\"GET\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.transferManager=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.request({url:_.TRANSFER_MANAGER,method:\"POST\",data:s({},i,r)})},this.request=e.request},H=function(e){var t=this;this.sendCode=function(e){var o=e.registerOnly,r=e.extra_params,i=w(s({mobile:e.mobile,type:void 0!==o&&o?16:24},void 0===r?{}:r),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.smsLogin=function(e){var o=e.login_only,r=void 0!==o&&o,i=e.extra_params,a=w(s({mobile:e.mobile,code:e.code},void 0===i?{}:i),[\"mobile\",\"code\"]),n=r?d.SMS_LOGIN_ONLY:d.SMS_LOGIN;return new Promise((function(e,o){t.request({url:n,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.smsLoginContinue=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,sms_code_key:e.sms_code_key},void 0===o?{}:o),[\"mobile\",\"sms_code_key\"]);return new Promise((function(e,o){t.request({url:d.SMS_LOGIN_CONTINUE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.webLogin=function(e){var o=e.platform_app_id,r=e.next,i=e.extra_params,a=void 0===i?{}:i;return new Promise((function(e,i){t.request({url:d.SMS_LOGIN_CONTINUE,method:\"POST\",data:s({platform_app_id:o,next:r},a)}).then((function(t){e(t)})).catch((function(e){i(e)}))}))},this.emailLogin=function(e){var o=e.extra_params,r=w(s({email:e.email,password:e.password},void 0===o?{}:o),[\"email\",\"password\"]);return new Promise((function(e,o){t.request({url:d.EMAIL_LOGIN,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.emailCodeLogin=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,ect_type:13},void 0===o?{}:o),[\"email\",\"code\"]);return new Promise((function(e,o){return t.request({url:d.EMAIL_CODE_LOGIN,method:\"POST\",data:r})}))},this.pwdLogin=function(e){var o=e.extra_params,r=w(s({account:e.account,password:e.password},void 0===o?{}:o),[\"account\",\"password\"]);return new Promise((function(e,o){t.request({url:d.PWD_LOGIN,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.authLogin=function(e){var o=e.platform_app_id,r=e.code,i=e.access_token,a=e.access_token_secret,n=e.openid,c=e.profile_key,u=e.login_only,_=void 0!==u&&u,l=e.extra_params,p=void 0===l?{}:l;return new Promise((function(e,u){t.request({url:_?d.AUTH_LOGIN_ONLY:d.AUTH_LOGIN,method:\"POST\",data:s({platform_app_id:o,code:r,access_token:i,access_token_secret:a,openid:n,profile_key:c},p)}).then((function(t){e(t)})).catch((function(e){u(e)}))}))},this.getOauthMobile=function(e){var o=e.access_token,r=e.access_token_secret,i=e.code,a=e.expires_in,n=e.openid,c=e.platform_app_id,u=e.platform,_=e.need_plaintext,l=void 0!==_&&_,p=e.profile_key,m=e.extra_params,f=void 0===m?{}:m;return new Promise((function(e,_){t.request({url:d.MOBILE_OAUTH,method:\"POST\",data:s({access_token:o,access_token_secret:r,code:i,expires_in:a,openid:n,platform_app_id:c,platform:u,need_plaintext:l,profile_key:p},f)}).then((function(t){e(t)})).catch((function(e){_(e)}))}))},this.authBindLogin=function(e){var o=e.extra_params,r=w(s({platform_app_id:e.platform_app_id,code:e.code,mobile:e.mobile,sms_code:e.sms_code,sms_code_key:e.sms_code_key,profile_key:e.profile_key},void 0===o?{}:o),[\"mobile\",\"sms_code\"]);return new Promise((function(e,o){t.request({url:d.AUTH_BIND_ONLY,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.mobileBindLogin=function(e){var o=e.extra_params,r=w(s({code:e.code,mobile:e.mobile,profile_key:e.profile_key},void 0===o?{}:o),[\"mobile\",\"code\"]);return new Promise((function(e,o){t.request({url:d.MOBILE_BIND_ONLY,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.logout=function(e){var t,o=e.next,r=void 0===o?\"/\":o,i=(null===(t=C(\"initProps\"))||void 0===t?void 0:t.aid)||\"\",a=encodeURIComponent(r);window.location.href=d.LOGOUT+\"?account_sdk_source=web&aid=\"+i+\"&next=\"+a},this.sendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,next:e.next,password:e.password,type:1},void 0===o?{}:o),[\"email\",\"password\",\"type\"]);return t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r})},this.sendEmailLoginCode=function(e){var o=e.extra_params,r=w(s({email:e.email,next:e.next,type:13},void 0===o?{}:o),[\"email\",\"type\"]);return t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r})},this.emailRegister=function(e){var o=e.ifLogin,r=void 0!==o&&o,i=e.extra_params,a=w(s({email:e.email,code:e.code,password:e.password,type:1},void 0===i?{}:i),[\"email\",\"password\",\"type\",\"code\"]);return t.request({url:r?d.EMAIL_REGISTER_LOGIN:d.EMAIL_REGISTER,method:\"POST\",data:a})},this.mobileRegister=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,password:e.password,type:16},void 0===o?{}:o),[\"mobile\",\"code\",\"password\",\"type\"]);return new Promise((function(e,o){t.request({url:d.MOBILE_REGISTER,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.mobileEmailRegister=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,sms_code:e.sms_code,email:e.email,email_code:e.email_code,password:e.password,verify_ticket:e.verify_ticket,sms_type:16,ect_type:1},void 0===o?{}:o),[\"mobile\",\"sms_code\",\"sms_type\",\"email\",\"email_code\",\"ect_type\",\"password\"]);return new Promise((function(e,o){t.request({url:d.MOBILE_EMAIL_REGISTER,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.checkLogin=function(e){void 0===e&&(e={});var o=e.extra_params;return t.request({url:d.CHECK_LOGIN,method:\"GET\",data:void 0===o?{}:o})},this.bindWithMobileLogin=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.request({url:d.BIND_WITH_MOBILE_LOGIN,method:\"POST\",data:s({},r,i)})},this.thirdAuth=function(e){var t,o=e.platform_app_id,r=e.next,i=void 0===r?\"/\":r,a=e.use_local_host,n=void 0===a?0:a,s=e.action,c=(null===(t=C(\"initProps\"))||void 0===t?void 0:t.aid)||\"\",u=encodeURIComponent(i);window.location.href=d.THIRD_AUTH+\"?account_sdk_source=web&aid=\"+c+\"&next=\"+u+\"&platform_app_id=\"+o+\"&use_local_host=\"+n+\"&action=\"+s},this.request=e.request},V=function(){function e(e){this.request=e.request}var t=e.prototype;return t.getQrcode=function(e){return this.request({url:d.GET_QRCODE+\"?next=\"+encodeURIComponent(e.next),method:\"GET\"})},t.checkQrconnect=function(e){var t=e.token;return this.request({url:d.CHECK_QRCONNECT+\"?next=\"+encodeURIComponent(e.next),method:\"GET\",data:{token:t}})},e}(),j=function(e){var t=this;this.sendCode=function(e){var o=e.unbind_exist,r=e.extra_params,i=w(s({mobile:e.mobile,type:17,unbind_exist:void 0===o?0:o},void 0===r?{}:r),[\"mobile\",\"type\",\"unbind_exist\"]);return t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:i})},this.bindMobile=function(e){void 0===e&&(e={});var o=e.unbind_exist,r=e.extra_params,i=w(s({mobile:e.mobile,code:e.code,password:e.password,verify_ticket:e.verify_ticket,unbind_exist:void 0===o?0:o,type:17},void 0===r?{}:r),[\"mobile\",\"code\",\"password\",\"unbind_exist\",\"type\"]);return t.request({url:d.MOBILE_BIND,method:\"POST\",data:i})},this.sendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,type:8},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.bindEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code},void 0===o?{}:o),[\"email\",\"code\"]);return new Promise((function(e,o){t.request({url:d.EMAIL_BIND,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.bindAuth=function(e){var o=e.platform_app_id,r=e.code,i=e.access_token,a=e.access_token_secret,n=e.openid,c=e.profile_key,u=e.extra_params,_=void 0===u?{}:u;return new Promise((function(e,u){t.request({url:d.AUTH_BIND,method:\"POST\",data:s({platform_app_id:o,code:r,access_token:i,access_token_secret:a,openid:n,profile_key:c},_)}).then((function(t){e(t)})).catch((function(e){u(e)}))}))},this.unbindAuth=function(e){var o=e.platform,r=e.extra_params,i=void 0===r?{}:r;return new Promise((function(e,r){t.request({url:d.AUTH_UNBIND,method:\"POST\",data:s({platform:o},i)}).then((function(t){e(t)})).catch((function(e){r(e)}))}))},this.switchBindAuth=function(e){var o=e.platform_app_id,r=e.profile_key,i=e.extra_params,a=void 0===i?{}:i;return new Promise((function(e,i){t.request({url:d.AUTH_SWITCH_BIND,method:\"POST\",data:s({platform_app_id:o,profile_key:r},a)}).then((function(t){e(t)})).catch((function(e){i(e)}))}))},this.changeQrcodeSuccess=function(e){var o=e.extra_params;return t.request({url:d.CHANGE_QRCODE_SUCCESS,method:\"POST\",data:s({token:e.token},void 0===o?{}:o)})},this.changeQrcodeComfirm=function(e){var o=e.extra_params;return t.request({url:d.CHANGE_QRCODE_CONFIRM,method:\"POST\",data:s({token:e.token,verify_ticket:e.verify_ticket},void 0===o?{}:o)})},this.request=e.request},Y=function(e){var t=this;this.checkMobileRegistered=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile},void 0===o?{}:o),[\"mobile\"]);return new Promise((function(e,o){t.request({url:d.CHECK_MOBILE_REGISTER,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.checkEmailRegistered=function(e){var o=e.extra_params,r=w(s({email:e.email},void 0===o?{}:o),[\"email\"]);return t.request({url:d.CHECK_EMAIL_REGISTER,method:\"POST\",data:r})},this.request=e.request},W=function(e){this.request=e.request},F=function(e){var t=this;this.sendCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:6},void 0===o?{}:o),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.validateCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,type:6},void 0===o?{}:o),[\"mobile\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.CHECK_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.resetPwdByMobile=function(e){var o=e.extra_params,r=w(s({password:e.password,mobile:e.mobile,code:e.code},void 0===o?{}:o),[\"password\",\"mobile\",\"code\"]);return new Promise((function(e,o){t.request({url:d.RESET_PWD_BY_MOBILE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,type:4},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.validateEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,type:4},void 0===o?{}:o),[\"email\",\"code\",\"type\"]);return t.request({url:d.CHECK_EMAIL_CODE,method:\"POST\",data:r})},this.resetPwdByEmail=function(e){var o=e.extra_params,r=w(s({password:e.password,email:e.email,code:e.code},void 0===o?{}:o),[\"password\",\"email\",\"code\"]);return new Promise((function(e,o){t.request({url:d.RESET_PWD_BY_EMAIL,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.resetPwdByMobileTicket=function(e){var o=e.extra_params,r=w(s({password:e.password,ticket:e.ticket},void 0===o?{}:o),[\"password\"]);return new Promise((function(e,o){t.request({url:d.RESET_PWD_BY_MOBILE_TICKET,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.resetPwdByEmailTicket=function(e){var o=e.extra_params,r=w(s({password:e.password,ticket:e.ticket},void 0===o?{}:o),[\"password\"]);return new Promise((function(e,o){t.request({url:d.RESET_PWD_BY_EMAIL_TICKET,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},K=function(e){var t=this;this.sendCodeToOldMobile=function(e){var o=e.use_bind_mobile,r=e.extra_params,i=w(s({mobile:e.mobile,type:void 0===o||o?22:28},void 0===r?{}:r),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.validateOldMobile=function(e){var o=e.use_bind_mobile,r=e.extra_params,i=w(s({code:e.code,type:void 0===o||o?22:28},void 0===r?{}:r),[\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.VERIFY_MOBILE_CODE,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendCodeToNewMobile=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,old_mobile:e.old_mobile,type:20,ticket:e.ticket},void 0===o?{}:o),[\"mobile\",\"old_mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.rebindMobile=function(e){var o=e.kick_other,r=e.extra_params,i=w(s({mobile:e.mobile,code:e.code,ticket:e.ticket,kick_other:void 0===o?0:o},void 0===r?{}:r),[\"mobile\",\"code\"]);return new Promise((function(e,o){t.request({url:d.MOBILE_REBIND,method:\"POST\",data:i}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendCodeToOldEmail=function(e){void 0===e&&(e={});var o=e.extra_params,r=w(s({email:e.email,type:6},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.validateOldEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,type:6},void 0===o?{}:o),[\"email\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.VERIFY_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendCodeToNewEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,ticket:e.ticket,type:7},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.rebindEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,type:7,ticket:e.ticket},void 0===o?{}:o),[\"email\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.EMAIL_REBIND,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},z=function(e){var t=this;this.sendCode=function(e){void 0===e&&(e={});var o=e.verify_mobile_seperate,r=e.extra_params,i=w(s({type:void 0!==o&&o?22:13},void 0===r?{}:r),[\"type\"]);return t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:i})},this.validateMobile=function(e){var o=e.extra_params,r=w(s({code:e.code,type:22},void 0===o?{}:o),[\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.VERIFY_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.changePwdByMobile=function(e){var o=e.extra_params,r=w(s({password:e.password,code:e.code,ticket:e.ticket},void 0===o?{}:o),[\"password\",\"code\"]);return new Promise((function(e,o){t.request({url:d.PWD_CHANGE_BY_MOBILE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.updatePwd=function(e){var o=e.extra_params,r=w(s({password:e.password,current_password:e.current_password},void 0===o?{}:o),[\"password\",\"current_password\"]);return new Promise((function(e,o){t.request({url:d.PWD_UPDATE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendEmailCode=function(e){void 0===e&&(e={});var o=e.extra_params,r=w(s({type:11},void 0===o?{}:o),[\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.validateEmail=function(e){var o=e.extra_params,r=w(s({code:e.code,type:11},void 0===o?{}:o),[\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.VERIFY_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.changePwdByEmail=function(e){var o=e.extra_params,r=w(s({password:e.password,code:e.code,ticket:e.ticket},void 0===o?{}:o),[\"password\",\"code\"]);return new Promise((function(e,o){t.request({url:d.PWD_CHANGE_BY_EMAIL,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.setPassword=function(e){var o=e.extra_params,r=w(s({password:e.password},void 0===o?{}:o),[\"password\"]);return new Promise((function(e,o){t.request({url:d.PWD_SET,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.checkHasSetPwd=function(e){void 0===e&&(e={});var o=e.extra_params,r=void 0===o?{}:o;return new Promise((function(e,o){t.request({url:d.PWD_HAS_SET,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.checkWebHasSetPwd=function(e){void 0===e&&(e={});var o=e.extra_params;return t.request({url:d.PWD_HAS_SET_V2,method:\"GET\",data:void 0===o?{}:o})},this.request=e.request},Q=function(e){var t=this;this.notLoginSendCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:34},void 0===o?{}:o),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.notLoginValidateMobile=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,type:34},void 0===o?{}:o),[\"mobile\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.CHECK_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.notLoginSendEmailCode=function(e){var o=e.extra_params,r=w(s({email:e.email,type:15},void 0===o?{}:o),[\"email\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.notLoginValidateEmail=function(e){var o=e.extra_params,r=w(s({email:e.email,code:e.code,type:15},void 0===o?{}:o),[\"email\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.CHECK_EMAIL_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendCode=function(e){void 0===e&&(e={});var o=e.extra_params,r=w(s({type:22},void 0===o?{}:o),[\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.validateMobile=function(e){var o=e.extra_params,r=w(s({code:e.code,type:22},void 0===o?{}:o),[\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.VERIFY_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.sendEmailCode=function(e){void 0===e&&(e={});var o=e.extra_params,r=w(s({type:6},void 0===o?{}:o),[\"type\"]);return t.request({url:d.SEND_EMAIL_CODE,method:\"POST\",data:r})},this.validateEmail=function(e){var o=e.extra_params,r=w(s({code:e.code,type:6},void 0===o?{}:o),[\"code\",\"type\"]);return t.request({url:d.VERIFY_EMAIL_CODE,method:\"POST\",data:r})},this.accountVerify=function(e){var o=e.extra_params,r=w(s({account:e.account,password:e.password,user_login_version:1},void 0===o?{}:o),[\"account\",\"password\"]);return new Promise((function(e,o){t.request({url:d.ACCOUNT_VERIFY,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.authVerify=function(e){var o=e.platform_app_id,r=e.code,i=e.access_token,a=e.access_token_secret,n=e.openid,c=e.profile_key,u=e.extra_params,_=void 0===u?{}:u;return new Promise((function(e,u){t.request({url:d.AUTH_VERIFY,method:\"POST\",data:s({platform_app_id:o,code:r,access_token:i,access_token_secret:a,openid:n,profile_key:c},_)}).then((function(t){e(t)})).catch((function(e){u(e)}))}))},this.smsAuthorizeSendCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:26},void 0===o?{}:o),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SEND_MOBILE_CODE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.smsAuthorize=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,type:26},void 0===o?{}:o),[\"mobile\",\"code\",\"type\"]);return new Promise((function(e,o){t.request({url:d.SMS_AUTHORIZE,method:\"POST\",data:r}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},J=function(e){var t=this;this.verifyWay=function(e){var o=e.extra_params;return t.request({url:d.CANCEL_VERIFY_WAY,method:\"GET\",data:s({cancel_ticket:e.cancel_ticket},void 0===o?{}:o)})},this.checkIfPass=function(e){return t.request({url:d.CANCEL_CHECK,method:\"GET\",data:s({value_ticket:e.value_ticket},e.extra_params)})},this.confirm=function(e){var o=e.extra_params;return t.request({url:d.CANCEL_CONFIRM,method:\"POST\",data:s({value_ticket:e.value_ticket,token:e.token,cancel_ticket:e.cancel_ticket,abandon:e.abandon},void 0===o?{}:o)})},this.request=e.request},Z=function(){function e(e){this.request=e.request}var t=e.prototype;return t.getAuthInfo=function(e){var t=e.extra_params;return this.request({url:d.GET_OPEN_AUTH_INFO,method:\"GET\",data:s({client_key:e.client_key,scope:e.scope},void 0===t?{}:t)})},t.sendCode=function(e){var t=e.extra_params,o=w(s({mobile:e.mobile,type:27},void 0===t?{}:t),[\"mobile\",\"type\"]);return this.request({url:d.OPEN_SEND_CODE,method:\"GET\",data:o})},t.smsAuth=function(e){var t=e.extra_params,o=w(s({client_key:e.client_key,scope:e.scope,source:e.source,redirect_uri:e.redirect_uri,state:e.state,mobile:e.mobile,code:e.code},void 0===t?{}:t),[\"mobile\",\"code\"]);return this.request({url:d.OPEN_SMS_AUTH,method:\"POST\",data:o})},t.accountAuth=function(e){var t=e.extra_params,o=w(s({client_key:e.client_key,scope:e.scope,source:e.source,redirect_uri:e.redirect_uri,state:e.state,password:e.password,account:e.account},void 0===t?{}:t),[\"password\",\"account\"]);return this.request({url:d.OPEN_ACCOUNT_AUTH,method:\"POST\",data:o})},t.thirdAuth=function(e){var t=e.extra_params,o=void 0===t?{}:t,r=u(e,[\"extra_params\"]);return this.request({url:d.OPEN_THIRD_AUTH,method:\"POST\",data:s({},r,o)})},t.webAuth=function(e){var t=e.extra_params,o=void 0===t?{}:t,r=u(e,[\"extra_params\"]);return this.request({url:d.OPEN_WEB_AUTH,method:\"POST\",data:s({},r,o)})},e}(),X=function(e){var t=this;this.getAccountInfo=function(e){void 0===e&&(e={});var o=e.extra_params;return t.request({url:d.ACCOUNT_INFO,method:\"GET\",data:void 0===o?{}:o})},this.request=e.request},$=function(e){function t(t){var o;o=e.call(this,t,\"web\")||this;var r=t.printLog,i=t.acrawler,a=void 0===i?\"\":i;void 0!==r&&r&&console.log(\"%cWebInterface Initial Props >>>>%O\",\"background: #222; color: #bada55\",t),a&&m(a,t);var n=s({},t,{request:o.request});return o.login=new H(n),o.qrcodeLogin=new V(n),o.register=new W(n),o.forgetPwd=new F(n),o.bind=new j(n),o.rebind=new K(n),o.password=new z(n),o.extra=new Y(n),o.verify=new Q(n),o.cancel=new J(n),o.open=new Z(n),o.account=new X(n),o.affLogin=new A(n),o.affRegister=new q(n),o.affInvite=new N(n),o.affSubject=new D(n),o.affForgetPwd=new M(n),o.affResource=new k(n),o.affRole=new B(n),o.affUser=new U(n),o.affSuper=new G(n),o}return c(t,e),t}(x),ee=function(e){var t=this;this.notLoginSendCode=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,type:34},void 0===o?{}:o),[\"mobile\",\"type\"]);return t.request({url:\"/passport/mobile/send_code/\",method:\"POST\",data:r})},this.notLoginValidateMobile=function(e){var o=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,type:34},void 0===o?{}:o),[\"mobile\",\"code\",\"type\"]);return t.request({url:\"/passport/mobile/check_code/\",method:\"POST\",data:r})},this.request=e.request},te=function(e){var t=this;this.bindWithMobileLogin=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.request({url:\"/passport/auth/bind_with_mobile_login/\",method:\"POST\",data:s({},r,i)})},this.authLogin=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.request({url:\"/passport/auth/login/\",method:\"POST\",data:s({},r,i)})},this.memberSwitch=function(e){return t.request({url:\"/passport/aff/mobile/member/switch/\",method:\"POST\",data:{to_sec_member_id:e.to_sec_member_id}})},this.request=e.request},oe=function(e){function t(t){var o;o=e.call(this,t,\"app\")||this;var r=t.printLog,i=t.acrawler,a=void 0===i?\"\":i;void 0!==r&&r&&console.log(\"AppInterface Initial Props >>>>\",t),a&&m(a,t);var n=s({},t,{request:o.request});return o.verify=new ee(n),o.login=new te(n),o}return c(t,e),t}(x),re=function(e){var t=this;this.baseSendMobileCode=function(e){var o=e.mobile,r=e.type,i=u(e,[\"mobile\",\"type\"]),a=w(s({mobile:o,type:r},i),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:l.MOBILE_CODE_URL,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.baseSendMobileCodeV2=function(e){var o=e.mobile,r=e.type,i=u(e,[\"mobile\",\"type\"]),a=w(s({mobile:o,type:r},i),[\"mobile\",\"type\"]);return new Promise((function(e,o){t.request({url:l.MOBILE_CODE_URL_V2,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.baseSendEmailLink=function(e){var o=e.email,r=e.password,i=u(e,[\"email\",\"password\"]),a=w(s({email:o,password:r},i),[\"email\",\"password\"]);return new Promise((function(e,o){t.request({url:l.EMAIL_ACTIVATE_URL,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.baseSendEmailLinkV2=function(e){var o=e.email,r=e.password,i=u(e,[\"email\",\"password\"]),a=w(s({email:o,password:r},i),[\"email\",\"password\"]);return new Promise((function(e,o){t.request({url:l.EMAIL_ACTIVATE_URL_V2,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.baseSendEmailCode=function(e){var o=e.email,r=e.password,i=u(e,[\"email\",\"password\"]),a=w(s({email:o,password:r},i),[\"email\",\"password\"]);return new Promise((function(e,o){t.request({url:l.EMAIL_ACTIVATE_CODE_URL,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.baseSendEmailCodeV2=function(e){var o=e.email,r=e.password,i=u(e,[\"email\",\"password\"]),a=w(s({email:o,password:r},i),[\"email\",\"password\"]);return new Promise((function(e,o){t.request({url:l.EMAIL_ACTIVATE_CODE_URL_V2,method:\"POST\",data:a}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},this.request=e.request},ie=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).sendMobileCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCode(s({},i,{type:8},r))},t.sendMobileCodeV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCodeV2(s({},i,{type:8},r))},t.mobileBind=function(e){var o=e.mobile,r=e.code,i=e.extra_params,a=void 0===i?{}:i,n=u(e,[\"mobile\",\"code\",\"extra_params\"]),c=w(s({mobile:o,code:r},n,{type:8},a),[\"mobile\",\"type\",\"code\"]);return t.request({url:l.BIND_MOBILE,method:\"POST\",data:c})},t}return c(t,e),t}(re),ae=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).sendMobileCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCode(s({},i,{type:20},r))},t.sendMobileCodeV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCodeV2(s({},i,{type:20},r))},t.mobileChange=function(e){var o=e.mobile,r=e.code,i=e.extra_params,a=void 0===i?{}:i,n=u(e,[\"mobile\",\"code\",\"extra_params\"]),c=w(s({mobile:o,code:r},n,a),[\"mobile\",\"code\"]);return t.request({url:l.CHANGE_MOBILE,method:\"POST\",data:c})},t}return c(t,e),t}(re),ne=function(e){function t(t){var o;(o=e.call(this,t)||this).checkLogin=function(e){var t=e.extra_params,r=void 0===t?{}:t,i=u(e,[\"extra_params\"]);return o.request({url:l.CHECK_LOGIN,method:\"GET\",data:s({},i,r)})},o.sendMobileCodeV2=function(e){var t=e.extra_params,r=void 0===t?{}:t,i=u(e,[\"extra_params\"]);return o.baseSendMobileCodeV2(s({},i,{type:24},r))},o.quickAuthV2=function(e){var t=e.extra_params,r=w(s({mobile:e.mobile,code:e.code,service:e.service},void 0===t?{}:t),[\"mobile\",\"code\"]);return o.request({url:l.MOBILE_CODE_LOGIN_URL_V2,method:\"POST\",data:r})},o.accountLoginV2=function(e){var t=e.extra_params,r=w(s({account:e.account,password:e.password,service:e.service},void 0===t?{}:t),[\"account\",\"password\"]);return o.request({url:l.ACCOUNT_LOGIN_URL_V2,method:\"POST\",data:r})},o.logout=function(e){window.location.href=\"\"+o.host+l.LOGOUT+\"?service=\"+e.service},o.wapLogin=function(e){var t=e.origin,r=void 0===t?\"\":t,i=e.type,a=void 0===i?\"sso\":i,n=e.use_local_host,s=e.scopes,c=void 0===s?\"user_info\":s,u=e.url_params,d=void 0===u?\"\":u,_=e.platform_app_id,p=e.platform,m=void 0===p?\"\":p,f=e.replace,h=void 0!==f&&f,v=encodeURIComponent(e.next),E=encodeURIComponent(o.host+\"/auth/login_success/?service=\"+v),b={aid:o.aid,type:a,use_local_host:n,scopes:c,next:E,url_params:d,platform_app_id:_,platform:m},O=\"\",w=Object.keys(b).length;Object.keys(b).forEach((function(e,t){O+=w===t+1?e+\"=\"+b[e]:e+\"=\"+b[e]+\"&\"}));var I=\"\"+r+l.AUTH_LOGIN_URL+\"?\"+O;h?window.location.href=I:window.open(I,\"_blank\")},o.sendEmailLink=function(e){var t=e.extra_params,r=void 0===t?{}:t,i=u(e,[\"extra_params\"]);return o.baseSendEmailLink(s({},i,{ect_type:13},r))},o.sendEmailLinkV2=function(e){var t=e.extra_params,r=void 0===t?{}:t,i=u(e,[\"extra_params\"]);return o.baseSendEmailLinkV2(s({},i,{ect_type:13},r))},o.sendEmailCode=function(e){var t=e.extra_params,r=void 0===t?{}:t,i=u(e,[\"extra_params\"]);return o.baseSendEmailCode(s({},i,{ect_type:13},r))},o.sendEmailCodeV2=function(e){var t=e.extra_params,r=void 0===t?{}:t,i=u(e,[\"extra_params\"]);return o.baseSendEmailCodeV2(s({},i,{ect_type:13},r))},o.bindWithMobileLogin=function(e){var t=e.change_bind,r=e.extra_params;return o.request({url:l.BIND_WITH_MOBILE_LOGIN,method:\"POST\",data:s({code:e.code,platform_app_id:e.platform_app_id,service:e.service,profile_key:e.profile_key,change_bind:void 0===t?0:t},void 0===r?{}:r)})},o.authLogin=function(e){var t=e.login_only,r=e.extra_params;return o.request({url:void 0!==t&&t?l.AUTH_LOGIN_ONLY:l.AUTH_LOGIN,method:\"POST\",data:s({code:e.code,platform_app_id:e.platform_app_id,service:e.service,profile_key:e.profile_key},void 0===r?{}:r)})},o.mobileEmailRegister=function(e){var t=e.extra_params,r=w(s({mobile:e.mobile,sms_code:e.sms_code,email:e.email,email_code:e.email_code,password:e.password,verify_ticket:e.verify_ticket,service:e.service,sms_type:16,ect_type:1},void 0===t?{}:t),[\"mobile\",\"sms_code\",\"sms_type\",\"email\",\"email_code\",\"ect_type\",\"password\"]);return o.request({url:l.MOBILE_EMAIL_REGISTER,method:\"POST\",data:r})},o.memberSwitch=function(e){var t=e.extra_params;return o.request({url:\"/aff/member/switch/\",method:\"POST\",data:s({to_sec_member_id:e.to_sec_member_id},void 0===t?{}:t)})};var r=t.host,i=t.originHost;return o.aid=t.aid,o.host=r,o.originHost=i,o}return c(t,e),t}(re),se=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).sendMobileCodeV2=function(e){var o=e.check_register,r=e.extra_params;return t.baseSendMobileCodeV2(s({mobile:e.mobile,type:void 0!==o&&o?4:6},void 0===r?{}:r))},t.sendEmailCodeV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendEmailCodeV2(s({},i,{ect_type:4},r))},t.resetPassword=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=w({account:e.account,code:e.code,password:e.password},[\"account\",\"code\",\"password\"]);return new Promise((function(e,o){t.request({url:l.RESET_PASSWORD,method:\"POST\",data:s({},i,r)}).then((function(t){e(t)})).catch((function(e){o(e)}))}))},t.resetPasswordByEmailCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=w({email:e.email,code:e.code,password:e.password},[\"email\",\"code\",\"password\"]);return t.request({url:l.RESET_PASSWORD_BY_EMAIL,method:\"POST\",data:s({},i,{ect_type:4},r)})},t.sendEmailCodeModifyPassword=function(e){void 0===e&&(e={});var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendEmailCodeV2(s({},i,{ect_type:11},r))},t.modifyPasswordByEmailCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=w({email:e.email,code:e.code,password:e.password},[\"email\",\"code\",\"password\"]);return t.request({url:l.RESET_PASSWORD_BY_EMAIL,method:\"POST\",data:s({},i,{ect_type:11},r)})},t}return c(t,e),t}(re),ce=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).getQrcode=function(e){var o=e.extra_params,r=void 0===o?{}:o;return t.request({url:l.GET_QRCODE+\"?service=\"+encodeURIComponent(e.service),method:\"GET\",data:r})},t.checkQrconnect=function(e){var o=e.token,r=e.extra_params,i=void 0===r?{}:r;return t.request({url:l.CHECK_QRCONNECT+\"?service=\"+encodeURIComponent(e.service),method:\"GET\",data:s({token:o},i)})},t}return c(t,e),t}(re),ue=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).sendMobileCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCode(s({},i,{type:22},r))},t.sendMobileCodeV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCodeV2(s({},i,{type:22},r))},t.quickAuth=function(e){var o=e.code,r=e.extra_params,i=void 0===r?{}:r,a=u(e,[\"code\",\"extra_params\"]),n=w(s({code:o},a,i),[\"code\"]);return t.request({url:l.QUICK_AUTH,method:\"POST\",data:n})},t}return c(t,e),t}(re),de=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).emailRegisterXhr=function(e){return t.request({url:l.EMAIL_REGISTER,method:\"POST\",data:e})},t.emailRegister=function(e){var o=e.email,r=e.extra_params,i=void 0===r?{}:r,a=u(e,[\"email\",\"extra_params\"]),n=w(s({email:o},a,{ect_type:1},i),[\"email\",\"code\",\"password\"]);return t.emailRegisterXhr(n)},t.emailRegisterAndBindMoblieV2=function(e){var o=e.email,r=e.code,i=e.mobile,a=e.password,n=e.extra_params,c=void 0===n?{}:n,d=u(e,[\"email\",\"code\",\"mobile\",\"password\",\"extra_params\"]),_=w(s({email:o,code:r,mobile:i,password:a},d,c),[\"email\",\"code\",\"mobile\",\"password\"]);return t.request({url:l.EMAIL_REGISTER_V2,method:\"POST\",data:_})},t.mobileRegisterAndBindEmailV2=function(e){var o=e.email,r=e.code,i=e.mobile,a=e.password,n=e.extra_params,c=void 0===n?{}:n,d=u(e,[\"email\",\"code\",\"mobile\",\"password\",\"extra_params\"]),_=w(s({email:o,code:r,mobile:i,password:a},d,c),[\"email\",\"code\",\"mobile\",\"password\"]);return t.request({url:l.MOBILE_REGISTER_WITH_EMAIL,method:\"POST\",data:_})},t.emailActivateCodeLogin=function(e){var o=e.email,r=e.code,i=e.extra_params,a=void 0===i?{}:i,n=u(e,[\"email\",\"code\",\"extra_params\"]),c=w(s({email:o,code:r},n,{ect_type:13},a),[\"email\",\"code\"]);return t.request({url:l.EMAIL_ACTIVATE_CODE_LOGIN,method:\"POST\",data:c})},t.sendMobileCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCode(s({},i,{type:16},r))},t.sendMobileCodeV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendMobileCodeV2(s({},i,{type:16},r))},t.sendEmailLink=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendEmailLink(s({},i,{ect_type:1},r))},t.sendEmailLinkV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendEmailLinkV2(s({},i,{ect_type:1},r))},t.sendEmailCode=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendEmailCode(s({},i,{ect_type:1},r))},t.sendEmailCodeV2=function(e){var o=e.extra_params,r=void 0===o?{}:o,i=u(e,[\"extra_params\"]);return t.baseSendEmailCodeV2(s({},i,{ect_type:1},r))},t}return c(t,e),t}(re),_e=function(e){function t(t){var o;o=e.call(this,t,\"sso\")||this;var r=t.host,i=t.acrawler,a=void 0===i?\"\":i;t.printLog&&console.log(\"%cSSOInterface Initial Props >>>>%O\",\"background: #222; color: #bada55\",t),a&&m(a,t),o.host=r||\"\",o.originHost=window.location.origin;var n=s({},t,{request:o.request});return o.bindMobile=new ie(n),o.changeMobile=new ae(n),o.login=new ne(s({},n,{originHost:o.originHost})),o.password=new se(n),o.qrcodeLogin=new ce(n),o.quickAuth=new ue(n),o.register=new de(n),o}return c(t,e),t}(x),le=function(e){var t=this;this.webSdkInit=function(e){var o=e.extra_params;return t.request({url:\"/user_info/common/v1/web_sdk_init/\",method:\"POST\",data:s({mode:e.mode,scene:e.scene},void 0===o?{}:o)})},this.request=e.request},pe=function(e){function t(t){var o;o=e.call(this,t,\"auth\")||this;var r=t.printLog,i=t.acrawler,a=void 0===i?\"\":i;void 0!==r&&r&&console.log(\"AuthInterface Initial Props >>>>\",t),a&&m(a,t);var n=s({},t,{request:o.request});return o.common=new le(n),o}return c(t,e),t}(x),me=$,fe=oe,he=_e,ve=pe,Ee={web:$,app:oe,sso:_e,auth:pe},be={web:null,app:null,sso:null,auth:null};exports.AccountSdkInstance=function(){function e(){}return e.createAccountSdk=function(t,o){return be[t]||(be[t]=e.create(Ee[t]||Ee.web,o)),be[t]},e.create=function(e,t){return new e(t)},e}().createAccountSdk,exports.AppInterfaceSdk=fe,exports.AuthInterfaceSdk=ve,exports.SsoInterfaceSdk=he,exports.WebInterfaceSdk=me,exports.default=function(e){var t=e.scope;switch(void 0===t?\"web\":t){case\"web\":return new $(e);case\"app\":return new oe(e);case\"sso\":return new _e(e);case\"auth\":return new pe(e);default:return new $(e)}},exports.encryptParams=w;\n//# sourceMappingURL=account-api.cjs.production.min.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./account-api.cjs.production.min.js')\n} else {\n module.exports = require('./account-api.cjs.development.js')\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n value: function assign(target, varArgs) {\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true,\n });\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar es6Promise = createCommonjsModule(function (module, exports) {\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t module.exports = factory() ;\n}(commonjsGlobal, (function () {\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof commonjsRequire === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) ; else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof commonjsGlobal !== 'undefined') {\n local = commonjsGlobal;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n\n});\n\nvar AJAX_TIMEOUT = 5000;\nvar TEA_EVENT_PREFIX = 'h5_';\nvar WEBID_KEY = 's_v_web_id';\nvar URL = {\n setting: '/vc/setting',\n report: '/captcha/reportFrontend',\n};\n\nvar stringify = function (params) {\n var keys = Object.keys(params);\n var url = '';\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = params[key];\n var encodeURI_1 = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n if (i >= 1) {\n url = url + \"&\" + encodeURI_1;\n }\n else {\n url = encodeURI_1;\n }\n }\n return url;\n};\nvar getTeaCommonParams = function (options) {\n var commonOptions = options.commonOptions, captchaOptions = options.captchaOptions;\n return {\n aid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.aid) || options.aid,\n did: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.did) || options.did,\n iid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.iid) || options.iid,\n user_unique_id: captchaOptions === null || captchaOptions === void 0 ? void 0 : captchaOptions.user_unique_id,\n };\n};\n\nvar ajax = (function (request) {\n var url = request.url, method = request.method, data = request.data, config = request.config;\n return new es6Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === xhr.DONE) {\n if (xhr.status >= 200 && xhr.status < 300) {\n var data_1 = {};\n var body = xhr.response || xhr.responseText;\n var contentType = xhr.getResponseHeader('Content-Type');\n if (contentType && contentType.indexOf('application/json') !== -1) {\n try {\n data_1 = JSON.parse(body);\n }\n catch (err) { }\n }\n else {\n data_1 = body;\n }\n setTimeout(function () {\n resolve(data_1);\n }, 0);\n }\n else {\n reject(new TypeError('Network request failed'));\n }\n }\n };\n xhr.onerror = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.ontimeout = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.onabort = function () {\n setTimeout(function () {\n reject(new DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n var uri = url;\n if (config === null || config === void 0 ? void 0 : config.params) {\n uri = uri + \"?\" + stringify(config.params);\n }\n xhr.open(method, uri, true);\n xhr.timeout = AJAX_TIMEOUT;\n if (config === null || config === void 0 ? void 0 : config.headers) {\n var headers = config.headers;\n for (var _i = 0, _a = Object.keys(headers); _i < _a.length; _i++) {\n var key = _a[_i];\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n if (config === null || config === void 0 ? void 0 : config.withCredentials) {\n xhr.withCredentials = config.withCredentials;\n }\n if (method.toUpperCase() === 'POST' && data) {\n xhr.send(JSON.stringify(data));\n }\n else {\n xhr.send(null);\n }\n });\n});\n\nvar get = function (url, config) {\n if (config === void 0) { config = {}; }\n return ajax({\n url: url,\n method: 'GET',\n config: config,\n });\n};\nvar post = function (url, data, config) {\n if (config === void 0) { config = {}; }\n var headers = config.headers\n ? __assign({ 'Content-Type': 'application/json' }, config.headers) : {\n 'Content-Type': 'application/json',\n };\n return ajax({\n url: url,\n method: 'POST',\n data: data,\n config: __assign(__assign({}, config), { headers: headers }),\n });\n};\n\nvar loadScript = (function (src) {\n return new es6Promise(function (resolve, reject) {\n var header = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n script.setAttribute('src', src);\n header.appendChild(script);\n var timeout = setTimeout(function () {\n reject(new Error('LoadJSSDKMoreTan4000ms'));\n }, 4000);\n {\n // 如果不是IE\n script.onload = function () {\n clearTimeout(timeout);\n resolve(0);\n };\n script.onerror = function () {\n clearTimeout(timeout);\n reject(new Error('Failed to load SDK!'));\n };\n }\n });\n});\n\nvar commonjs = (function (source) {\n var module = {\n exports: {}\n };\n var executor = new Function('exports', 'module', source);\n executor(module.exports, module);\n return module;\n});\n\nvar option = {\n serverHost: '',\n settingHost: '',\n};\nvar setHost = function (env) {\n option.serverHost = env.serverHost;\n option.settingHost = env.settingHost;\n};\nvar getSetting = function () {\n var settingHost = option.settingHost;\n return post(\"\" + settingHost + URL.setting, {}, {\n headers: {\n 'X-Setting-Flag': 1,\n },\n });\n};\nvar report = function (body) {\n var serverHost = option.serverHost;\n return post(\"\" + serverHost + URL.report, body);\n};\n\nvar EVT_NAME = 'turing_verify_sdk';\nvar Logger = /** @class */ (function () {\n function Logger() {\n this.conf = {\n app_id: 0,\n user_unique_id: '',\n evtParams: {},\n };\n }\n Logger.prototype.init = function (options, params) {\n if (params === void 0) { params = {}; }\n this.conf.app_id = options.region === 'cn' ? 2018 : 2740;\n this.conf.user_unique_id = options.user_unique_id || '';\n this.conf.evtParams = __assign(__assign({}, params), { webdriver: 'undefined', isScheduling: 'false', product_host: window.location.host, product_path: window.location.hostname, type: 2, aid: options.aid, did: options.did, iid: options.iid });\n };\n Logger.prototype.setParams = function (evtParams) {\n this.conf.evtParams = __assign(__assign({}, this.conf.evtParams), evtParams);\n };\n Logger.prototype.trackEvent = function (evtName, evtParams) {\n if (evtParams === void 0) { evtParams = {}; }\n var logs = [\n {\n events: [\n {\n event: EVT_NAME,\n is_bav: 0,\n local_time_ms: Date.now(),\n params: JSON.stringify(__assign(__assign(__assign({}, this.conf.evtParams), evtParams), { key: \"\" + TEA_EVENT_PREFIX + evtName, time: Date.now() })),\n },\n ],\n header: {\n app_id: this.conf.app_id,\n },\n user: {\n user_unique_id: this.conf.user_unique_id,\n },\n },\n ];\n this.sendEvents(logs);\n };\n Logger.prototype.sendEvents = function (logs) {\n report({\n logs: logs,\n }).catch(function (err) {\n console.log('report err: ', err);\n });\n };\n return Logger;\n}());\nvar logger = new Logger();\n\nvar js_cookie = createCommonjsModule(function (module, exports) {\n(function (factory) {\n\tvar registeredInModuleLoader;\n\t{\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n});\n\nfunction mergeFp() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n var length = chars.length;\n var timePrex = Date.now().toString(36);\n var uuid = [];\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '_';\n uuid[14] = '4';\n for (var i = 0, r = void 0; i < 36; i++) {\n if (!uuid[i]) {\n r = 0 | (Math.random() * length);\n uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];\n }\n }\n return 'verify' + '_' + timePrex + '_' + uuid.join('');\n}\nfunction setWebidCookie(fpCookieOption) {\n fpCookieOption = typeof fpCookieOption === 'object' ? fpCookieOption : {};\n var start_time = Date.now();\n var webid = mergeFp();\n var cookieOption = {\n path: '/',\n };\n if (fpCookieOption.domain && /^([a-z0-9-]+)?(\\.[a-z0-9-]+)+$/.test(fpCookieOption.domain)) {\n cookieOption.domain = fpCookieOption.domain;\n }\n js_cookie.set(WEBID_KEY, webid, cookieOption);\n var isSuccess = !!webid && !!js_cookie.get(WEBID_KEY);\n logger.trackEvent('fp_set_cookie', {\n duration: Date.now() - start_time,\n is_success: isSuccess ? 1 : 0,\n msg: isSuccess ? '' : webid ? 'set cookie failed' : 'generate fp failed',\n });\n return webid;\n}\nvar generateFpSync = function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = js_cookie.get(WEBID_KEY);\n if (!webid || webid.indexOf('verify_') !== 0) {\n webid = setWebidCookie(fpCookieOption);\n }\n return webid;\n};\nvar generateFp = (function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = generateFpSync(fpCookieOption);\n return es6Promise.resolve(webid);\n});\n\nvar config = JSON.parse('{\"region\":\"cn\",\"executor\":\"Function\",\"serverHost\":\"https://verify.snssdk.com\",\"settingHost\":\"https://vcs.snssdk.com\",\"cdn\":\"https://lf-cdn-tos.bytescm.com/obj/static/secsdk-captcha/cn2/2.21.2/captcha.js\"}');\nvar initOptions = {};\nsetHost({\n serverHost: config.serverHost,\n settingHost: config.settingHost,\n});\n// 热更新模式获取实际sdk版本\nvar getCDN = function () {\n var region = config.region;\n var startTime = Date.now();\n return getSetting()\n .catch(function () {\n // 重试,二次获取\n return getSetting();\n })\n .then(function (setting) {\n var _a;\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return (_a = setting === null || setting === void 0 ? void 0 : setting.verify) === null || _a === void 0 ? void 0 : _a.js[region];\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err === null || err === void 0 ? void 0 : err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar loadCDNModule = function (cdn, executor) {\n var startTime = Date.now();\n var promise = es6Promise.resolve({});\n if (executor === 'script') {\n promise = loadScript(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return loadScript(cdn);\n })\n .then(function () {\n return window.verifySDK;\n });\n }\n else {\n promise = get(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return get(cdn);\n })\n .then(function (scriptText) {\n var module = commonjs(scriptText);\n return module.exports;\n });\n }\n return promise\n .then(function (sdk) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return sdk;\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar SDK = /** @class */ (function () {\n function SDK() {\n }\n SDK.load = function (executor) {\n if (!SDK.fetch) {\n SDK.fetch = true;\n SDK.core = getCDN()\n .catch(function (err) {\n return config.cdn;\n })\n .then(function (cdn) {\n return loadCDNModule(cdn, executor);\n });\n }\n return SDK.core;\n };\n SDK.get = function () {\n return SDK.core;\n };\n SDK.fetch = false;\n return SDK;\n}());\nvar init = function (options, successCb, errorCb) {\n var _a;\n if (successCb === void 0) { successCb = function () { }; }\n if (errorCb === void 0) { errorCb = function () { }; }\n var executor = ((_a = options === null || options === void 0 ? void 0 : options.captchaOptions) === null || _a === void 0 ? void 0 : _a.executor) || config.executor;\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n SDK.load(executor)\n .then(function (sdk) {\n if (JSON.stringify(options) !== JSON.stringify({})) {\n initOptions = __assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) });\n sdk === null || sdk === void 0 ? void 0 : sdk.initVerifyOptions(initOptions);\n }\n successCb(sdk);\n })\n .catch(function (err) {\n var _a;\n errorCb({\n type: 'loadJSSDK',\n msg: (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '',\n });\n });\n};\nvar render = function (options) {\n logger.trackEvent('hotsdk_render');\n var renderOptions = options;\n SDK.get().then(function (sdk) {\n var _a;\n if ((_a = renderOptions === null || renderOptions === void 0 ? void 0 : renderOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.challenge_code) {\n // challenge_code 说明是验证码渲染\n sdk === null || sdk === void 0 ? void 0 : sdk.renderCaptcha(__assign(__assign({}, initOptions), renderOptions));\n }\n else {\n sdk === null || sdk === void 0 ? void 0 : sdk.autoRender(renderOptions);\n }\n });\n};\nvar close = function () {\n SDK.get().then(function (sdk) {\n sdk === null || sdk === void 0 ? void 0 : sdk.closeCaptcha();\n });\n};\nvar getFp = function () {\n var _a;\n return generateFp((_a = initOptions === null || initOptions === void 0 ? void 0 : initOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.fpCookieOption);\n};\nvar TTVerifyCenter = /** @class */ (function () {\n function TTVerifyCenter() {\n }\n TTVerifyCenter.setEnv = function (key, value) {\n TTVerifyCenter.env[key] = value;\n };\n TTVerifyCenter.get = function () {\n return SDK.load(TTVerifyCenter.env.executor);\n };\n TTVerifyCenter.init = function (options, successCb, errorCb) {\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n return TTVerifyCenter\n .get()\n .then(function (sdk) {\n var verifyCenter = sdk.initVerifyCenter(__assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) }));\n if (successCb) {\n successCb(verifyCenter);\n }\n else {\n return verifyCenter;\n }\n }).catch(function (err) {\n if (errorCb) {\n errorCb(err);\n }\n else {\n return es6Promise.reject(err);\n }\n });\n };\n TTVerifyCenter.env = {\n executor: config.executor,\n };\n return TTVerifyCenter;\n}());\n\nexports.TTVerifyCenter = TTVerifyCenter;\nexports.close = close;\nexports.getFp = getFp;\nexports.init = init;\nexports.render = render;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n value: function assign(target, varArgs) {\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true,\n });\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar es6Promise = createCommonjsModule(function (module, exports) {\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t module.exports = factory() ;\n}(commonjsGlobal, (function () {\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof commonjsRequire === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) ; else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof commonjsGlobal !== 'undefined') {\n local = commonjsGlobal;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n\n});\n\nvar AJAX_TIMEOUT = 5000;\nvar TEA_EVENT_PREFIX = 'h5_';\nvar WEBID_KEY = 's_v_web_id';\nvar URL = {\n setting: '/vc/setting',\n report: '/captcha/reportFrontend',\n};\n\nvar stringify = function (params) {\n var keys = Object.keys(params);\n var url = '';\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = params[key];\n var encodeURI_1 = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n if (i >= 1) {\n url = url + \"&\" + encodeURI_1;\n }\n else {\n url = encodeURI_1;\n }\n }\n return url;\n};\nvar getTeaCommonParams = function (options) {\n var commonOptions = options.commonOptions, captchaOptions = options.captchaOptions;\n return {\n aid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.aid) || options.aid,\n did: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.did) || options.did,\n iid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.iid) || options.iid,\n user_unique_id: captchaOptions === null || captchaOptions === void 0 ? void 0 : captchaOptions.user_unique_id,\n };\n};\n\nvar ajax = (function (request) {\n var url = request.url, method = request.method, data = request.data, config = request.config;\n return new es6Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === xhr.DONE) {\n if (xhr.status >= 200 && xhr.status < 300) {\n var data_1 = {};\n var body = xhr.response || xhr.responseText;\n var contentType = xhr.getResponseHeader('Content-Type');\n if (contentType && contentType.indexOf('application/json') !== -1) {\n try {\n data_1 = JSON.parse(body);\n }\n catch (err) { }\n }\n else {\n data_1 = body;\n }\n setTimeout(function () {\n resolve(data_1);\n }, 0);\n }\n else {\n reject(new TypeError('Network request failed'));\n }\n }\n };\n xhr.onerror = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.ontimeout = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.onabort = function () {\n setTimeout(function () {\n reject(new DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n var uri = url;\n if (config === null || config === void 0 ? void 0 : config.params) {\n uri = uri + \"?\" + stringify(config.params);\n }\n xhr.open(method, uri, true);\n xhr.timeout = AJAX_TIMEOUT;\n if (config === null || config === void 0 ? void 0 : config.headers) {\n var headers = config.headers;\n for (var _i = 0, _a = Object.keys(headers); _i < _a.length; _i++) {\n var key = _a[_i];\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n if (config === null || config === void 0 ? void 0 : config.withCredentials) {\n xhr.withCredentials = config.withCredentials;\n }\n if (method.toUpperCase() === 'POST' && data) {\n xhr.send(JSON.stringify(data));\n }\n else {\n xhr.send(null);\n }\n });\n});\n\nvar get = function (url, config) {\n if (config === void 0) { config = {}; }\n return ajax({\n url: url,\n method: 'GET',\n config: config,\n });\n};\nvar post = function (url, data, config) {\n if (config === void 0) { config = {}; }\n var headers = config.headers\n ? __assign({ 'Content-Type': 'application/json' }, config.headers) : {\n 'Content-Type': 'application/json',\n };\n return ajax({\n url: url,\n method: 'POST',\n data: data,\n config: __assign(__assign({}, config), { headers: headers }),\n });\n};\n\nvar loadScript = (function (src) {\n return new es6Promise(function (resolve, reject) {\n var header = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n script.setAttribute('src', src);\n header.appendChild(script);\n var timeout = setTimeout(function () {\n reject(new Error('LoadJSSDKMoreTan4000ms'));\n }, 4000);\n {\n // 如果不是IE\n script.onload = function () {\n clearTimeout(timeout);\n resolve(0);\n };\n script.onerror = function () {\n clearTimeout(timeout);\n reject(new Error('Failed to load SDK!'));\n };\n }\n });\n});\n\nvar commonjs = (function (source) {\n var module = {\n exports: {}\n };\n var executor = new Function('exports', 'module', source);\n executor(module.exports, module);\n return module;\n});\n\nvar option = {\n serverHost: '',\n settingHost: '',\n};\nvar setHost = function (env) {\n option.serverHost = env.serverHost;\n option.settingHost = env.settingHost;\n};\nvar getSetting = function () {\n var settingHost = option.settingHost;\n return post(\"\" + settingHost + URL.setting, {}, {\n headers: {\n 'X-Setting-Flag': 1,\n },\n });\n};\nvar report = function (body) {\n var serverHost = option.serverHost;\n return post(\"\" + serverHost + URL.report, body);\n};\n\nvar EVT_NAME = 'turing_verify_sdk';\nvar Logger = /** @class */ (function () {\n function Logger() {\n this.conf = {\n app_id: 0,\n user_unique_id: '',\n evtParams: {},\n };\n }\n Logger.prototype.init = function (options, params) {\n if (params === void 0) { params = {}; }\n this.conf.app_id = options.region === 'cn' ? 2018 : 2740;\n this.conf.user_unique_id = options.user_unique_id || '';\n this.conf.evtParams = __assign(__assign({}, params), { webdriver: 'undefined', isScheduling: 'false', product_host: window.location.host, product_path: window.location.hostname, type: 2, aid: options.aid, did: options.did, iid: options.iid });\n };\n Logger.prototype.setParams = function (evtParams) {\n this.conf.evtParams = __assign(__assign({}, this.conf.evtParams), evtParams);\n };\n Logger.prototype.trackEvent = function (evtName, evtParams) {\n if (evtParams === void 0) { evtParams = {}; }\n var logs = [\n {\n events: [\n {\n event: EVT_NAME,\n is_bav: 0,\n local_time_ms: Date.now(),\n params: JSON.stringify(__assign(__assign(__assign({}, this.conf.evtParams), evtParams), { key: \"\" + TEA_EVENT_PREFIX + evtName, time: Date.now() })),\n },\n ],\n header: {\n app_id: this.conf.app_id,\n },\n user: {\n user_unique_id: this.conf.user_unique_id,\n },\n },\n ];\n this.sendEvents(logs);\n };\n Logger.prototype.sendEvents = function (logs) {\n report({\n logs: logs,\n }).catch(function (err) {\n console.log('report err: ', err);\n });\n };\n return Logger;\n}());\nvar logger = new Logger();\n\nvar js_cookie = createCommonjsModule(function (module, exports) {\n(function (factory) {\n\tvar registeredInModuleLoader;\n\t{\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n});\n\nfunction mergeFp() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n var length = chars.length;\n var timePrex = Date.now().toString(36);\n var uuid = [];\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '_';\n uuid[14] = '4';\n for (var i = 0, r = void 0; i < 36; i++) {\n if (!uuid[i]) {\n r = 0 | (Math.random() * length);\n uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];\n }\n }\n return 'verify' + '_' + timePrex + '_' + uuid.join('');\n}\nfunction setWebidCookie(fpCookieOption) {\n fpCookieOption = typeof fpCookieOption === 'object' ? fpCookieOption : {};\n var start_time = Date.now();\n var webid = mergeFp();\n var cookieOption = {\n path: '/',\n };\n if (fpCookieOption.domain && /^([a-z0-9-]+)?(\\.[a-z0-9-]+)+$/.test(fpCookieOption.domain)) {\n cookieOption.domain = fpCookieOption.domain;\n }\n js_cookie.set(WEBID_KEY, webid, cookieOption);\n var isSuccess = !!webid && !!js_cookie.get(WEBID_KEY);\n logger.trackEvent('fp_set_cookie', {\n duration: Date.now() - start_time,\n is_success: isSuccess ? 1 : 0,\n msg: isSuccess ? '' : webid ? 'set cookie failed' : 'generate fp failed',\n });\n return webid;\n}\nvar generateFpSync = function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = js_cookie.get(WEBID_KEY);\n if (!webid || webid.indexOf('verify_') !== 0) {\n webid = setWebidCookie(fpCookieOption);\n }\n return webid;\n};\nvar generateFp = (function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = generateFpSync(fpCookieOption);\n return es6Promise.resolve(webid);\n});\n\nvar config = JSON.parse('{\"region\":\"in\",\"executor\":\"Function\",\"serverHost\":\"https://verification-va-useast2a.byteoversea.com\",\"settingHost\":\"https://vcs-va-useast2a.byteoversea.com\",\"cdn\":\"https://sf16-scmcdn-useast2a.ibytedtos.com/obj/static-aiso/secsdk-captcha/in/2.21.2/captcha.js\"}');\nvar initOptions = {};\nsetHost({\n serverHost: config.serverHost,\n settingHost: config.settingHost,\n});\n// 热更新模式获取实际sdk版本\nvar getCDN = function () {\n var region = config.region;\n var startTime = Date.now();\n return getSetting()\n .catch(function () {\n // 重试,二次获取\n return getSetting();\n })\n .then(function (setting) {\n var _a;\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return (_a = setting === null || setting === void 0 ? void 0 : setting.verify) === null || _a === void 0 ? void 0 : _a.js[region];\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err === null || err === void 0 ? void 0 : err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar loadCDNModule = function (cdn, executor) {\n var startTime = Date.now();\n var promise = es6Promise.resolve({});\n if (executor === 'script') {\n promise = loadScript(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return loadScript(cdn);\n })\n .then(function () {\n return window.verifySDK;\n });\n }\n else {\n promise = get(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return get(cdn);\n })\n .then(function (scriptText) {\n var module = commonjs(scriptText);\n return module.exports;\n });\n }\n return promise\n .then(function (sdk) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return sdk;\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar SDK = /** @class */ (function () {\n function SDK() {\n }\n SDK.load = function (executor) {\n if (!SDK.fetch) {\n SDK.fetch = true;\n SDK.core = getCDN()\n .catch(function (err) {\n return config.cdn;\n })\n .then(function (cdn) {\n return loadCDNModule(cdn, executor);\n });\n }\n return SDK.core;\n };\n SDK.get = function () {\n return SDK.core;\n };\n SDK.fetch = false;\n return SDK;\n}());\nvar init = function (options, successCb, errorCb) {\n var _a;\n if (successCb === void 0) { successCb = function () { }; }\n if (errorCb === void 0) { errorCb = function () { }; }\n var executor = ((_a = options === null || options === void 0 ? void 0 : options.captchaOptions) === null || _a === void 0 ? void 0 : _a.executor) || config.executor;\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n SDK.load(executor)\n .then(function (sdk) {\n if (JSON.stringify(options) !== JSON.stringify({})) {\n initOptions = __assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) });\n sdk === null || sdk === void 0 ? void 0 : sdk.initVerifyOptions(initOptions);\n }\n successCb(sdk);\n })\n .catch(function (err) {\n var _a;\n errorCb({\n type: 'loadJSSDK',\n msg: (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '',\n });\n });\n};\nvar render = function (options) {\n logger.trackEvent('hotsdk_render');\n var renderOptions = options;\n SDK.get().then(function (sdk) {\n var _a;\n if ((_a = renderOptions === null || renderOptions === void 0 ? void 0 : renderOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.challenge_code) {\n // challenge_code 说明是验证码渲染\n sdk === null || sdk === void 0 ? void 0 : sdk.renderCaptcha(__assign(__assign({}, initOptions), renderOptions));\n }\n else {\n sdk === null || sdk === void 0 ? void 0 : sdk.autoRender(renderOptions);\n }\n });\n};\nvar close = function () {\n SDK.get().then(function (sdk) {\n sdk === null || sdk === void 0 ? void 0 : sdk.closeCaptcha();\n });\n};\nvar getFp = function () {\n var _a;\n return generateFp((_a = initOptions === null || initOptions === void 0 ? void 0 : initOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.fpCookieOption);\n};\nvar TTVerifyCenter = /** @class */ (function () {\n function TTVerifyCenter() {\n }\n TTVerifyCenter.setEnv = function (key, value) {\n TTVerifyCenter.env[key] = value;\n };\n TTVerifyCenter.get = function () {\n return SDK.load(TTVerifyCenter.env.executor);\n };\n TTVerifyCenter.init = function (options, successCb, errorCb) {\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n return TTVerifyCenter\n .get()\n .then(function (sdk) {\n var verifyCenter = sdk.initVerifyCenter(__assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) }));\n if (successCb) {\n successCb(verifyCenter);\n }\n else {\n return verifyCenter;\n }\n }).catch(function (err) {\n if (errorCb) {\n errorCb(err);\n }\n else {\n return es6Promise.reject(err);\n }\n });\n };\n TTVerifyCenter.env = {\n executor: config.executor,\n };\n return TTVerifyCenter;\n}());\n\nexports.TTVerifyCenter = TTVerifyCenter;\nexports.close = close;\nexports.getFp = getFp;\nexports.init = init;\nexports.render = render;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n value: function assign(target, varArgs) {\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true,\n });\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar es6Promise = createCommonjsModule(function (module, exports) {\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t module.exports = factory() ;\n}(commonjsGlobal, (function () {\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof commonjsRequire === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) ; else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof commonjsGlobal !== 'undefined') {\n local = commonjsGlobal;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n\n});\n\nvar AJAX_TIMEOUT = 5000;\nvar TEA_EVENT_PREFIX = 'h5_';\nvar WEBID_KEY = 's_v_web_id';\nvar URL = {\n setting: '/vc/setting',\n report: '/captcha/reportFrontend',\n};\n\nvar stringify = function (params) {\n var keys = Object.keys(params);\n var url = '';\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = params[key];\n var encodeURI_1 = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n if (i >= 1) {\n url = url + \"&\" + encodeURI_1;\n }\n else {\n url = encodeURI_1;\n }\n }\n return url;\n};\nvar getTeaCommonParams = function (options) {\n var commonOptions = options.commonOptions, captchaOptions = options.captchaOptions;\n return {\n aid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.aid) || options.aid,\n did: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.did) || options.did,\n iid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.iid) || options.iid,\n user_unique_id: captchaOptions === null || captchaOptions === void 0 ? void 0 : captchaOptions.user_unique_id,\n };\n};\n\nvar ajax = (function (request) {\n var url = request.url, method = request.method, data = request.data, config = request.config;\n return new es6Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === xhr.DONE) {\n if (xhr.status >= 200 && xhr.status < 300) {\n var data_1 = {};\n var body = xhr.response || xhr.responseText;\n var contentType = xhr.getResponseHeader('Content-Type');\n if (contentType && contentType.indexOf('application/json') !== -1) {\n try {\n data_1 = JSON.parse(body);\n }\n catch (err) { }\n }\n else {\n data_1 = body;\n }\n setTimeout(function () {\n resolve(data_1);\n }, 0);\n }\n else {\n reject(new TypeError('Network request failed'));\n }\n }\n };\n xhr.onerror = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.ontimeout = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.onabort = function () {\n setTimeout(function () {\n reject(new DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n var uri = url;\n if (config === null || config === void 0 ? void 0 : config.params) {\n uri = uri + \"?\" + stringify(config.params);\n }\n xhr.open(method, uri, true);\n xhr.timeout = AJAX_TIMEOUT;\n if (config === null || config === void 0 ? void 0 : config.headers) {\n var headers = config.headers;\n for (var _i = 0, _a = Object.keys(headers); _i < _a.length; _i++) {\n var key = _a[_i];\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n if (config === null || config === void 0 ? void 0 : config.withCredentials) {\n xhr.withCredentials = config.withCredentials;\n }\n if (method.toUpperCase() === 'POST' && data) {\n xhr.send(JSON.stringify(data));\n }\n else {\n xhr.send(null);\n }\n });\n});\n\nvar get = function (url, config) {\n if (config === void 0) { config = {}; }\n return ajax({\n url: url,\n method: 'GET',\n config: config,\n });\n};\nvar post = function (url, data, config) {\n if (config === void 0) { config = {}; }\n var headers = config.headers\n ? __assign({ 'Content-Type': 'application/json' }, config.headers) : {\n 'Content-Type': 'application/json',\n };\n return ajax({\n url: url,\n method: 'POST',\n data: data,\n config: __assign(__assign({}, config), { headers: headers }),\n });\n};\n\nvar loadScript = (function (src) {\n return new es6Promise(function (resolve, reject) {\n var header = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n script.setAttribute('src', src);\n header.appendChild(script);\n var timeout = setTimeout(function () {\n reject(new Error('LoadJSSDKMoreTan4000ms'));\n }, 4000);\n {\n // 如果不是IE\n script.onload = function () {\n clearTimeout(timeout);\n resolve(0);\n };\n script.onerror = function () {\n clearTimeout(timeout);\n reject(new Error('Failed to load SDK!'));\n };\n }\n });\n});\n\nvar commonjs = (function (source) {\n var module = {\n exports: {}\n };\n var executor = new Function('exports', 'module', source);\n executor(module.exports, module);\n return module;\n});\n\nvar option = {\n serverHost: '',\n settingHost: '',\n};\nvar setHost = function (env) {\n option.serverHost = env.serverHost;\n option.settingHost = env.settingHost;\n};\nvar getSetting = function () {\n var settingHost = option.settingHost;\n return post(\"\" + settingHost + URL.setting, {}, {\n headers: {\n 'X-Setting-Flag': 1,\n },\n });\n};\nvar report = function (body) {\n var serverHost = option.serverHost;\n return post(\"\" + serverHost + URL.report, body);\n};\n\nvar EVT_NAME = 'turing_verify_sdk';\nvar Logger = /** @class */ (function () {\n function Logger() {\n this.conf = {\n app_id: 0,\n user_unique_id: '',\n evtParams: {},\n };\n }\n Logger.prototype.init = function (options, params) {\n if (params === void 0) { params = {}; }\n this.conf.app_id = options.region === 'cn' ? 2018 : 2740;\n this.conf.user_unique_id = options.user_unique_id || '';\n this.conf.evtParams = __assign(__assign({}, params), { webdriver: 'undefined', isScheduling: 'false', product_host: window.location.host, product_path: window.location.hostname, type: 2, aid: options.aid, did: options.did, iid: options.iid });\n };\n Logger.prototype.setParams = function (evtParams) {\n this.conf.evtParams = __assign(__assign({}, this.conf.evtParams), evtParams);\n };\n Logger.prototype.trackEvent = function (evtName, evtParams) {\n if (evtParams === void 0) { evtParams = {}; }\n var logs = [\n {\n events: [\n {\n event: EVT_NAME,\n is_bav: 0,\n local_time_ms: Date.now(),\n params: JSON.stringify(__assign(__assign(__assign({}, this.conf.evtParams), evtParams), { key: \"\" + TEA_EVENT_PREFIX + evtName, time: Date.now() })),\n },\n ],\n header: {\n app_id: this.conf.app_id,\n },\n user: {\n user_unique_id: this.conf.user_unique_id,\n },\n },\n ];\n this.sendEvents(logs);\n };\n Logger.prototype.sendEvents = function (logs) {\n report({\n logs: logs,\n }).catch(function (err) {\n console.log('report err: ', err);\n });\n };\n return Logger;\n}());\nvar logger = new Logger();\n\nvar js_cookie = createCommonjsModule(function (module, exports) {\n(function (factory) {\n\tvar registeredInModuleLoader;\n\t{\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n});\n\nfunction mergeFp() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n var length = chars.length;\n var timePrex = Date.now().toString(36);\n var uuid = [];\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '_';\n uuid[14] = '4';\n for (var i = 0, r = void 0; i < 36; i++) {\n if (!uuid[i]) {\n r = 0 | (Math.random() * length);\n uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];\n }\n }\n return 'verify' + '_' + timePrex + '_' + uuid.join('');\n}\nfunction setWebidCookie(fpCookieOption) {\n fpCookieOption = typeof fpCookieOption === 'object' ? fpCookieOption : {};\n var start_time = Date.now();\n var webid = mergeFp();\n var cookieOption = {\n path: '/',\n };\n if (fpCookieOption.domain && /^([a-z0-9-]+)?(\\.[a-z0-9-]+)+$/.test(fpCookieOption.domain)) {\n cookieOption.domain = fpCookieOption.domain;\n }\n js_cookie.set(WEBID_KEY, webid, cookieOption);\n var isSuccess = !!webid && !!js_cookie.get(WEBID_KEY);\n logger.trackEvent('fp_set_cookie', {\n duration: Date.now() - start_time,\n is_success: isSuccess ? 1 : 0,\n msg: isSuccess ? '' : webid ? 'set cookie failed' : 'generate fp failed',\n });\n return webid;\n}\nvar generateFpSync = function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = js_cookie.get(WEBID_KEY);\n if (!webid || webid.indexOf('verify_') !== 0) {\n webid = setWebidCookie(fpCookieOption);\n }\n return webid;\n};\nvar generateFp = (function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = generateFpSync(fpCookieOption);\n return es6Promise.resolve(webid);\n});\n\nvar config = JSON.parse('{\"region\":\"sg\",\"executor\":\"Function\",\"serverHost\":\"https://verify-sg.byteoversea.com\",\"settingHost\":\"https://vcs-sg.byteoversea.com\",\"cdn\":\"https://sf16-scmcdn-sg.ibytedtos.com/obj/static-sg/secsdk-captcha/sg/2.21.2/captcha.js\"}');\nvar initOptions = {};\nsetHost({\n serverHost: config.serverHost,\n settingHost: config.settingHost,\n});\n// 热更新模式获取实际sdk版本\nvar getCDN = function () {\n var region = config.region;\n var startTime = Date.now();\n return getSetting()\n .catch(function () {\n // 重试,二次获取\n return getSetting();\n })\n .then(function (setting) {\n var _a;\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return (_a = setting === null || setting === void 0 ? void 0 : setting.verify) === null || _a === void 0 ? void 0 : _a.js[region];\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err === null || err === void 0 ? void 0 : err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar loadCDNModule = function (cdn, executor) {\n var startTime = Date.now();\n var promise = es6Promise.resolve({});\n if (executor === 'script') {\n promise = loadScript(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return loadScript(cdn);\n })\n .then(function () {\n return window.verifySDK;\n });\n }\n else {\n promise = get(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return get(cdn);\n })\n .then(function (scriptText) {\n var module = commonjs(scriptText);\n return module.exports;\n });\n }\n return promise\n .then(function (sdk) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return sdk;\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar SDK = /** @class */ (function () {\n function SDK() {\n }\n SDK.load = function (executor) {\n if (!SDK.fetch) {\n SDK.fetch = true;\n SDK.core = getCDN()\n .catch(function (err) {\n return config.cdn;\n })\n .then(function (cdn) {\n return loadCDNModule(cdn, executor);\n });\n }\n return SDK.core;\n };\n SDK.get = function () {\n return SDK.core;\n };\n SDK.fetch = false;\n return SDK;\n}());\nvar init = function (options, successCb, errorCb) {\n var _a;\n if (successCb === void 0) { successCb = function () { }; }\n if (errorCb === void 0) { errorCb = function () { }; }\n var executor = ((_a = options === null || options === void 0 ? void 0 : options.captchaOptions) === null || _a === void 0 ? void 0 : _a.executor) || config.executor;\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n SDK.load(executor)\n .then(function (sdk) {\n if (JSON.stringify(options) !== JSON.stringify({})) {\n initOptions = __assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) });\n sdk === null || sdk === void 0 ? void 0 : sdk.initVerifyOptions(initOptions);\n }\n successCb(sdk);\n })\n .catch(function (err) {\n var _a;\n errorCb({\n type: 'loadJSSDK',\n msg: (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '',\n });\n });\n};\nvar render = function (options) {\n logger.trackEvent('hotsdk_render');\n var renderOptions = options;\n SDK.get().then(function (sdk) {\n var _a;\n if ((_a = renderOptions === null || renderOptions === void 0 ? void 0 : renderOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.challenge_code) {\n // challenge_code 说明是验证码渲染\n sdk === null || sdk === void 0 ? void 0 : sdk.renderCaptcha(__assign(__assign({}, initOptions), renderOptions));\n }\n else {\n sdk === null || sdk === void 0 ? void 0 : sdk.autoRender(renderOptions);\n }\n });\n};\nvar close = function () {\n SDK.get().then(function (sdk) {\n sdk === null || sdk === void 0 ? void 0 : sdk.closeCaptcha();\n });\n};\nvar getFp = function () {\n var _a;\n return generateFp((_a = initOptions === null || initOptions === void 0 ? void 0 : initOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.fpCookieOption);\n};\nvar TTVerifyCenter = /** @class */ (function () {\n function TTVerifyCenter() {\n }\n TTVerifyCenter.setEnv = function (key, value) {\n TTVerifyCenter.env[key] = value;\n };\n TTVerifyCenter.get = function () {\n return SDK.load(TTVerifyCenter.env.executor);\n };\n TTVerifyCenter.init = function (options, successCb, errorCb) {\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n return TTVerifyCenter\n .get()\n .then(function (sdk) {\n var verifyCenter = sdk.initVerifyCenter(__assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) }));\n if (successCb) {\n successCb(verifyCenter);\n }\n else {\n return verifyCenter;\n }\n }).catch(function (err) {\n if (errorCb) {\n errorCb(err);\n }\n else {\n return es6Promise.reject(err);\n }\n });\n };\n TTVerifyCenter.env = {\n executor: config.executor,\n };\n return TTVerifyCenter;\n}());\n\nexports.TTVerifyCenter = TTVerifyCenter;\nexports.close = close;\nexports.getFp = getFp;\nexports.init = init;\nexports.render = render;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n value: function assign(target, varArgs) {\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true,\n });\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar es6Promise = createCommonjsModule(function (module, exports) {\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t module.exports = factory() ;\n}(commonjsGlobal, (function () {\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof commonjsRequire === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) ; else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof commonjsGlobal !== 'undefined') {\n local = commonjsGlobal;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n\n});\n\nvar AJAX_TIMEOUT = 5000;\nvar TEA_EVENT_PREFIX = 'h5_';\nvar WEBID_KEY = 's_v_web_id';\nvar URL = {\n setting: '/vc/setting',\n report: '/captcha/reportFrontend',\n};\n\nvar stringify = function (params) {\n var keys = Object.keys(params);\n var url = '';\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = params[key];\n var encodeURI_1 = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n if (i >= 1) {\n url = url + \"&\" + encodeURI_1;\n }\n else {\n url = encodeURI_1;\n }\n }\n return url;\n};\nvar getTeaCommonParams = function (options) {\n var commonOptions = options.commonOptions, captchaOptions = options.captchaOptions;\n return {\n aid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.aid) || options.aid,\n did: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.did) || options.did,\n iid: (commonOptions === null || commonOptions === void 0 ? void 0 : commonOptions.iid) || options.iid,\n user_unique_id: captchaOptions === null || captchaOptions === void 0 ? void 0 : captchaOptions.user_unique_id,\n };\n};\n\nvar ajax = (function (request) {\n var url = request.url, method = request.method, data = request.data, config = request.config;\n return new es6Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === xhr.DONE) {\n if (xhr.status >= 200 && xhr.status < 300) {\n var data_1 = {};\n var body = xhr.response || xhr.responseText;\n var contentType = xhr.getResponseHeader('Content-Type');\n if (contentType && contentType.indexOf('application/json') !== -1) {\n try {\n data_1 = JSON.parse(body);\n }\n catch (err) { }\n }\n else {\n data_1 = body;\n }\n setTimeout(function () {\n resolve(data_1);\n }, 0);\n }\n else {\n reject(new TypeError('Network request failed'));\n }\n }\n };\n xhr.onerror = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.ontimeout = function () {\n setTimeout(function () {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n xhr.onabort = function () {\n setTimeout(function () {\n reject(new DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n var uri = url;\n if (config === null || config === void 0 ? void 0 : config.params) {\n uri = uri + \"?\" + stringify(config.params);\n }\n xhr.open(method, uri, true);\n xhr.timeout = AJAX_TIMEOUT;\n if (config === null || config === void 0 ? void 0 : config.headers) {\n var headers = config.headers;\n for (var _i = 0, _a = Object.keys(headers); _i < _a.length; _i++) {\n var key = _a[_i];\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n if (config === null || config === void 0 ? void 0 : config.withCredentials) {\n xhr.withCredentials = config.withCredentials;\n }\n if (method.toUpperCase() === 'POST' && data) {\n xhr.send(JSON.stringify(data));\n }\n else {\n xhr.send(null);\n }\n });\n});\n\nvar get = function (url, config) {\n if (config === void 0) { config = {}; }\n return ajax({\n url: url,\n method: 'GET',\n config: config,\n });\n};\nvar post = function (url, data, config) {\n if (config === void 0) { config = {}; }\n var headers = config.headers\n ? __assign({ 'Content-Type': 'application/json' }, config.headers) : {\n 'Content-Type': 'application/json',\n };\n return ajax({\n url: url,\n method: 'POST',\n data: data,\n config: __assign(__assign({}, config), { headers: headers }),\n });\n};\n\nvar loadScript = (function (src) {\n return new es6Promise(function (resolve, reject) {\n var header = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n script.setAttribute('src', src);\n header.appendChild(script);\n var timeout = setTimeout(function () {\n reject(new Error('LoadJSSDKMoreTan4000ms'));\n }, 4000);\n {\n // 如果不是IE\n script.onload = function () {\n clearTimeout(timeout);\n resolve(0);\n };\n script.onerror = function () {\n clearTimeout(timeout);\n reject(new Error('Failed to load SDK!'));\n };\n }\n });\n});\n\nvar commonjs = (function (source) {\n var module = {\n exports: {}\n };\n var executor = new Function('exports', 'module', source);\n executor(module.exports, module);\n return module;\n});\n\nvar option = {\n serverHost: '',\n settingHost: '',\n};\nvar setHost = function (env) {\n option.serverHost = env.serverHost;\n option.settingHost = env.settingHost;\n};\nvar getSetting = function () {\n var settingHost = option.settingHost;\n return post(\"\" + settingHost + URL.setting, {}, {\n headers: {\n 'X-Setting-Flag': 1,\n },\n });\n};\nvar report = function (body) {\n var serverHost = option.serverHost;\n return post(\"\" + serverHost + URL.report, body);\n};\n\nvar EVT_NAME = 'turing_verify_sdk';\nvar Logger = /** @class */ (function () {\n function Logger() {\n this.conf = {\n app_id: 0,\n user_unique_id: '',\n evtParams: {},\n };\n }\n Logger.prototype.init = function (options, params) {\n if (params === void 0) { params = {}; }\n this.conf.app_id = options.region === 'cn' ? 2018 : 2740;\n this.conf.user_unique_id = options.user_unique_id || '';\n this.conf.evtParams = __assign(__assign({}, params), { webdriver: 'undefined', isScheduling: 'false', product_host: window.location.host, product_path: window.location.hostname, type: 2, aid: options.aid, did: options.did, iid: options.iid });\n };\n Logger.prototype.setParams = function (evtParams) {\n this.conf.evtParams = __assign(__assign({}, this.conf.evtParams), evtParams);\n };\n Logger.prototype.trackEvent = function (evtName, evtParams) {\n if (evtParams === void 0) { evtParams = {}; }\n var logs = [\n {\n events: [\n {\n event: EVT_NAME,\n is_bav: 0,\n local_time_ms: Date.now(),\n params: JSON.stringify(__assign(__assign(__assign({}, this.conf.evtParams), evtParams), { key: \"\" + TEA_EVENT_PREFIX + evtName, time: Date.now() })),\n },\n ],\n header: {\n app_id: this.conf.app_id,\n },\n user: {\n user_unique_id: this.conf.user_unique_id,\n },\n },\n ];\n this.sendEvents(logs);\n };\n Logger.prototype.sendEvents = function (logs) {\n report({\n logs: logs,\n }).catch(function (err) {\n console.log('report err: ', err);\n });\n };\n return Logger;\n}());\nvar logger = new Logger();\n\nvar js_cookie = createCommonjsModule(function (module, exports) {\n(function (factory) {\n\tvar registeredInModuleLoader;\n\t{\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n});\n\nfunction mergeFp() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\n var length = chars.length;\n var timePrex = Date.now().toString(36);\n var uuid = [];\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '_';\n uuid[14] = '4';\n for (var i = 0, r = void 0; i < 36; i++) {\n if (!uuid[i]) {\n r = 0 | (Math.random() * length);\n uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];\n }\n }\n return 'verify' + '_' + timePrex + '_' + uuid.join('');\n}\nfunction setWebidCookie(fpCookieOption) {\n fpCookieOption = typeof fpCookieOption === 'object' ? fpCookieOption : {};\n var start_time = Date.now();\n var webid = mergeFp();\n var cookieOption = {\n path: '/',\n };\n if (fpCookieOption.domain && /^([a-z0-9-]+)?(\\.[a-z0-9-]+)+$/.test(fpCookieOption.domain)) {\n cookieOption.domain = fpCookieOption.domain;\n }\n js_cookie.set(WEBID_KEY, webid, cookieOption);\n var isSuccess = !!webid && !!js_cookie.get(WEBID_KEY);\n logger.trackEvent('fp_set_cookie', {\n duration: Date.now() - start_time,\n is_success: isSuccess ? 1 : 0,\n msg: isSuccess ? '' : webid ? 'set cookie failed' : 'generate fp failed',\n });\n return webid;\n}\nvar generateFpSync = function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = js_cookie.get(WEBID_KEY);\n if (!webid || webid.indexOf('verify_') !== 0) {\n webid = setWebidCookie(fpCookieOption);\n }\n return webid;\n};\nvar generateFp = (function (fpCookieOption) {\n if (fpCookieOption === void 0) { fpCookieOption = {}; }\n var webid = generateFpSync(fpCookieOption);\n return es6Promise.resolve(webid);\n});\n\nvar config = JSON.parse('{\"region\":\"va\",\"executor\":\"Function\",\"serverHost\":\"https://verification-va.byteoversea.com\",\"settingHost\":\"https://vcs-va.byteoversea.com\",\"cdn\":\"https://sf16-scmcdn-va.ibytedtos.com/obj/static-us/secsdk-captcha/va/2.21.2/captcha.js\"}');\nvar initOptions = {};\nsetHost({\n serverHost: config.serverHost,\n settingHost: config.settingHost,\n});\n// 热更新模式获取实际sdk版本\nvar getCDN = function () {\n var region = config.region;\n var startTime = Date.now();\n return getSetting()\n .catch(function () {\n // 重试,二次获取\n return getSetting();\n })\n .then(function (setting) {\n var _a;\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return (_a = setting === null || setting === void 0 ? void 0 : setting.verify) === null || _a === void 0 ? void 0 : _a.js[region];\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_getsetting', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err === null || err === void 0 ? void 0 : err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar loadCDNModule = function (cdn, executor) {\n var startTime = Date.now();\n var promise = es6Promise.resolve({});\n if (executor === 'script') {\n promise = loadScript(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return loadScript(cdn);\n })\n .then(function () {\n return window.verifySDK;\n });\n }\n else {\n promise = get(cdn)\n .catch(function (err) {\n // 重试,二次加载\n return get(cdn);\n })\n .then(function (scriptText) {\n var module = commonjs(scriptText);\n return module.exports;\n });\n }\n return promise\n .then(function (sdk) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 1,\n duration: Date.now() - startTime,\n message: '',\n });\n return sdk;\n })\n .catch(function (err) {\n logger.trackEvent('hotsdk_loadscript', {\n is_success: 0,\n duration: Date.now() - startTime,\n message: err.message,\n });\n return es6Promise.reject(err);\n });\n};\nvar SDK = /** @class */ (function () {\n function SDK() {\n }\n SDK.load = function (executor) {\n if (!SDK.fetch) {\n SDK.fetch = true;\n SDK.core = getCDN()\n .catch(function (err) {\n return config.cdn;\n })\n .then(function (cdn) {\n return loadCDNModule(cdn, executor);\n });\n }\n return SDK.core;\n };\n SDK.get = function () {\n return SDK.core;\n };\n SDK.fetch = false;\n return SDK;\n}());\nvar init = function (options, successCb, errorCb) {\n var _a;\n if (successCb === void 0) { successCb = function () { }; }\n if (errorCb === void 0) { errorCb = function () { }; }\n var executor = ((_a = options === null || options === void 0 ? void 0 : options.captchaOptions) === null || _a === void 0 ? void 0 : _a.executor) || config.executor;\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n SDK.load(executor)\n .then(function (sdk) {\n if (JSON.stringify(options) !== JSON.stringify({})) {\n initOptions = __assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) });\n sdk === null || sdk === void 0 ? void 0 : sdk.initVerifyOptions(initOptions);\n }\n successCb(sdk);\n })\n .catch(function (err) {\n var _a;\n errorCb({\n type: 'loadJSSDK',\n msg: (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '',\n });\n });\n};\nvar render = function (options) {\n logger.trackEvent('hotsdk_render');\n var renderOptions = options;\n SDK.get().then(function (sdk) {\n var _a;\n if ((_a = renderOptions === null || renderOptions === void 0 ? void 0 : renderOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.challenge_code) {\n // challenge_code 说明是验证码渲染\n sdk === null || sdk === void 0 ? void 0 : sdk.renderCaptcha(__assign(__assign({}, initOptions), renderOptions));\n }\n else {\n sdk === null || sdk === void 0 ? void 0 : sdk.autoRender(renderOptions);\n }\n });\n};\nvar close = function () {\n SDK.get().then(function (sdk) {\n sdk === null || sdk === void 0 ? void 0 : sdk.closeCaptcha();\n });\n};\nvar getFp = function () {\n var _a;\n return generateFp((_a = initOptions === null || initOptions === void 0 ? void 0 : initOptions.captchaOptions) === null || _a === void 0 ? void 0 : _a.fpCookieOption);\n};\nvar TTVerifyCenter = /** @class */ (function () {\n function TTVerifyCenter() {\n }\n TTVerifyCenter.setEnv = function (key, value) {\n TTVerifyCenter.env[key] = value;\n };\n TTVerifyCenter.get = function () {\n return SDK.load(TTVerifyCenter.env.executor);\n };\n TTVerifyCenter.init = function (options, successCb, errorCb) {\n var teaOptions = getTeaCommonParams(options);\n logger.init(__assign(__assign({}, teaOptions), { region: config.region }));\n logger.trackEvent('hotsdk_init');\n return TTVerifyCenter\n .get()\n .then(function (sdk) {\n var verifyCenter = sdk.initVerifyCenter(__assign(__assign({}, options), { captchaOptions: __assign(__assign({}, options === null || options === void 0 ? void 0 : options.captchaOptions), { h5_check_version: '3.5.2' }) }));\n if (successCb) {\n successCb(verifyCenter);\n }\n else {\n return verifyCenter;\n }\n }).catch(function (err) {\n if (errorCb) {\n errorCb(err);\n }\n else {\n return es6Promise.reject(err);\n }\n });\n };\n TTVerifyCenter.env = {\n executor: config.executor,\n };\n return TTVerifyCenter;\n}());\n\nexports.TTVerifyCenter = TTVerifyCenter;\nexports.close = close;\nexports.getFp = getFp;\nexports.init = init;\nexports.render = render;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","Function(function(t){return'\u0013e(e,a,r){\u0014(b[e]||(b[e]=t(\"x,y\",\"\u0014x \"+e+\" y\"\u0015)(r,a)}\u0013a(e,a,r){\u0014(k[r]||(k[r]=t(\"x,y\",\"\u0014new x[y](\"+Array(r+1).join(\",x[\u0016y]\")\u0017(1)+\")\"\u0015)(e,a)}\u0013r(e,a,r){\u0018n,t,s={},b=s.d=r?r.d+1:0;for(s[\"$\"+b]=s,t=0;t>>0\u001c65:h=\u0011,y=\u0011,\u0011[y]=h\u001c66:u(e(t[b\u0016],\u0011,\u0011\u0015\u001c67:y=\u0011,d=\u0011,u((g=\u0011).x===c?r(g.y,y,g.z):g.apply(d,y\u0015\u001c68:u(e((g=t[b\u0016])<\"<\"?(b--,f\u001a):g+g,\u0011,\u0011\u0015\u001c70:u(!1)\u001c71:\u0010n\u001c72:\u0010+f\u001a\u001c73:u(parseInt(f\u001a,36\u0015\u001c75:if(\u0011){b\u0016\u001dcase 74:g=\u0012<<16>>16\u001bg\u001c76:u(k[\u0012])\u001c77:y=\u0011,u(\u0011[y])\u001c78:g=\u0012,u(a(v,x-=g+1,g\u0015\u001c79:g=\u0012,u(k[\"$\"+g])\u001c81:h=\u0011,\u0011[f\u001a]=h\u001c82:u(\u0011[f\u001a])\u001c83:h=\u0011,k[\u0012]=h\u001c84:\u0010!0\u001c85:\u0010void 0\u001c86:u(v[x-1])\u001c88:h=\u0011,y=\u0011,\u0010h,\u0010y\u001c89:u(\u0013\u001a{\u0013e\u001a{\u0014r(e.y,arguments,k)}\u0014e.y=f\u001a,e.x=c,e.z=k,e}\u001a)\u001c90:\u0010null\u001c91:\u0010h\u001c93:h=\u0011\u001c0:\u0014\u0011;default:u((g<<16>>16)-16)}}\u0018n=this,t=n.Function,s=Object.keys||\u0013(e){\u0018a={},r=0;for(\u0018c in e)a[r\u0016]=c;\u0014a\u0019=r,a},b={},k={};\u0014r'.replace(/[\u0010-\u001f]/g,function(m){return t[m.charCodeAt(0)&15]})}(\"v[x++]=\u0010v[--x]\u0010t.charCodeAt(b++)-32\u0010function \u0010return \u0010))\u0010++\u0010.substr\u0010var \u0010.length\u0010()\u0010,b+=\u0010;break;case \u0010;break}\".split(\"\u0010\")))()('g,$@drbms!l!n Иb/s\"g,&Usz`dlms#g,.}jcb{|zFbxjx}~ms$g,(lfi~ah`{ms%g,)gk}ejo{cms&g,&qnfme|ms\\',!^s(,)|doikgauus),,jabSysaWzrrs*,(|fY~d`hs+,&jbfn~cs,,\\'nfmosCks-,*icmM`ttSgs.,&eoi{Ks/,)ziy|f~vs0l#l*ms10s2yWl ._b&s o ]1l l Jb&l!l Bd>&+l!l &+l!l 6d>&+l!l &+ s4y=o o ]7q\"21o l q\"18o ]4l 2d>& s6{s5yMo o ]8q\"21o ]2Ld>>b|s!o l q\"18o ]4l!& s7yIo o ]6q\"21o ]4o ]2Jd>>b|&o ]3l &+ s8yǽ,`\u0004*&3#-r\u001d\u0003:\u001b\tt}a\u00026\\'%`b\\r\u001ff\\nkop\u000b\b\u001f3%\bU-(\u0007\t\u00161=%;\u0019\u0017\u0003)\u001a;\u001c\u0001\\r\\rO?.>\u0019\u001a/\t=\u001as!$ s\"0s$l o ],ml$3+d\">=kÝl vo ].mxl$v1+s$[!cįb&@d[!c+s\"l\"l!vo ]/mxl#i$5j40b&[!c+s\"l\"l!vo ]/mxl#࿰b&6d>[!c+s\"l\"l!vo ]/mxl#._b&[!c+s\"jrl o ],ml$b-0b>kÑl vo ].mxl$v1+s$[!cįb&@dk6l vo ].mxl$[!cįb&8d[!c+s\"l\"l!vo ]/mxl#i$5j40b&[!c+s\"l\"l o ],ml$b>k6l!vo ]/mxl#࿰b&6d>[!cj#$!=+s\"l\"$!=+s\"l\" s9yĶo ]%v,-n|jqewVxp{rvmmx,&effkx[!cs\"l\",%roc|a.Pal\",&nbanb@al\"v,*mnxNaadtjg[!mx$\"2d[!cs#l#,$bjhs,*;?|u.|uc{ual#v,(n`fgXhv{mx$$龘ฑภ경2<[#c}l#,*ycmiaxR}ga2al#,+xdby@vwav`M1al#,)zbd{Nacc,$hlkbal#v,#bvfmx88802[%c}l#v,&uszfanmx[ c}l\"v,)}eOmyoZB]mx[ cs!0s$l$Pb0s\"l\"l!o ],mbyĩ[ s o ]&,\\'wd|mbb~ms!l!v!k#}[ s\"0s#l#l\"o ],mbJNHAL@@,4Y|uewju}h=M~NR\u0002pAWOA,&Khfhid,0]~||`lfr8Zuioth~,)DY+Kbzgyr,*GX,B{{|~}x,*GX,]I`dy{p,7ZK9H~zxlzNBG\u0003wDHT\bzOYEK,-@]/Cp|`4Fseq,(EZ*Xigi,&K^Z@KO,*GR^DOK0A@\\\\,(Xhfjxd``,1Asuayw9VrrrjfPD,+Xijaj0A`zza,,_hi`u1Apf|fc,([lmdi-[F,.]jw~w3A\\\\6[q~ro,1Bwt{p6BQ9I~qt|pLE,/\\\\uv}v4@_7K`wysq,&Rf`fgj,%Qojmz,/[y|w`4[s`8Kuv}s,2Fzype7V|m;Nrs~N\u0001rp,,Xkmerzv`5[D,\\'Qm{njbl,)^cekigawb,+\\\\ecikyu`4\\',+\\\\ecikyu`4&,8Y{{u=SK\\0bMM@@HTMM\\ngEJF[,4Uvws}tc;YsymAWGG\u0004ics,0QU]QQ5UVKUUUYb\u0001fFIL,4Vpdyyk~;QI>\\\\OOFFJVCC,2Pvf{~vj}\\\\zouwpN\u0001`w,.Ljbzrfq[x|9XO,*Hbk-Mnc}}},\\'Eagdn~I,.Lcqryrpqse8PNX,-Obnyc_w]AU7LM,)Keoccg/\\'#,2P|pzx~8.(;SqzlTXNF,3Q{qyyq9-)]D\u0001`w,&Ehzkog,*Id~ign0_wd,)JeyhdoZ@R,+Hc`jbbf|zp,\\'Dg{eeiy,&Erkbed,(K|xgv-C[,(Lhe\\\\h`g,\\'Ci|zcec,%Agqam,+ON-BLT1Fvye,)MOGENG@EB,\\'Cmggj~f,(LOAje ]M,%Aocg},+Oeabj~xsFDV,#GMK,)Me`Oeob`p,%Ais}d,(Lf~~aNfj,&Cez`gj,4Qqavj}szr=M|RHRW\u0004lrd,(Meo{dl`{,5Pxptpis<,/.\\0wKUEFC\u0007j},,Ici}qgwag5[C,2W}sgwa}ki\\\\sivvC\u0001`w,-H|nc1P|xq6^LZ,-H|nc1Vvy|6^LZ,.K}qb2_}r~c8PNX,/Jbpa3Ypr~mt:RH^,+Nyn|`cxsFDV,(M|zci`gn,-H{xtzu5CTYJ,)L_YC^ZF\\\\T,.Kweq !%6U|9XO,(Nhdl_b`h,-Kkcyi2G}az~v~,(N`rnh~w|,&@HF]CE,2T|{az~qn;QI>SIFJW,%Ciu|l,*Lymce]etz,*Lymc}fcrs},1W`vqsdz/++;^qu?bu,*Lyih}fqDBP,0Vcwvgao{}9Ixntnk,0Vcw}w}6D{kskh=SK,1W`}RycpPNX<_u?bu,(N{bxjk},(N[__EJK],&@r||xj,,Jxzzbp2Q5TC,,Jxzzbp2_`5TC,,Jxzzbp2^p5TC,.Hzdd`r4OT{s9XO,.Hzdd`rVywts9XO,(Ohhyebbn,+Lmabfqcv3VA,\\'@i|~jad,)Nonvl._b~,-Jk`}tfa&&\\'7ZM,0Wt}~qad%+(:Sj=\\\\K,0Wt}~qad%+(:Wh=\\\\K,1Vw|Gywu8.*(YvLM\u0002pEKU\u0007}E^YM\\rl@\\\\U\u0012p[[RRVJ__,%Bot`h,=ZrpUBGPP@T\u0007e}\\nnTY\\\\N\u0010r]]PPXD]],&AH\\\\AKF,+LCYFN]1P\\\\XQ,/Hdvj4Zzs8Jnbpx,+Lcxjv0Bf|aa,2U|aqo_yw~osrrzD\u0001`w,,Kb{ki^^@`5TC,2Uf~tdvlp:H}sy~M\u0001om,%Bskad,(O|fbaNfj,\\'@}gmxye,*M~bj}zxRzv,+Lycz{y{3Y[,0Xpwg`pxd{qm~uq{m,3[ugzxo9Itptz?iUCOMF,*Bj~gawe}},\\'Omh~ci,(@lce-]L,(@lce-ZL,$L@JQ,&Nbzhfo,/Gyvz3@zarj9N~di,9Qsi}zwqO\u0001iBOP\u0006`G]BBO\\r~]_,4\\\\|dvpttQEV\u0002wEL\u0006k]L,1\\\\{pfzex~m:Kt|ylp@,0]xqa{fyql9Nzu=Rz,0]xqa{fyql9Or{ukm,/Byr`|gzpc8@{Syt,2_zwgydwn;Et>]AHVJ,\\'JagmGeX,-@gaw]{FK]]D[J,2_zzrZ~MFRPO^M2eYVa,,Ad`h\\\\xG>QmbU,&Knf`ee,*Gbbdaa0A`|,&Knz`kf,,Ad|fq|2U}mss,\\'Jaz~yma,&Khllxe,-@akuc|3Zz87*),6[xvx:Wun?sNNJ@\u0005osk\t~,/Bu|x|wy8[{rht,$IJHH,)Ded`Oa}q,)Dxx,Hoyub,+F_-Bf~tVaub,)DY+Ad`lx~,*GX,]Cf~rz|,6[D8K}yo{qCD\u0002pT@ENIE^R,,A^.ZY1U|`}t,(E]*Nty|n,%HSTMF,\\'J^)Hd`d,&Hfllof,(Fhx`e~gb,%KCQAZ,+Eiz}/W~f{}v,-Ckxc1U|`}tUM,+Eiz}Hez3VA,0^xstugw7]w}i}k{{,-Cgnwp`r4Fy{q},*Ddxhy`bezj,\\'I[`gXyc,%Kfdh,.ALB1S3Qmbrv},+D`i.Lufffl,3\\\\xq6Rv~vrou>KEYV\u0003iq,$Kk,\\'Hfpr+NY,&IW\\\\@GJ,/@bxkr4Fwyxw;QS,%JUFCH,/@jYs}p|ueyn;^I,0@p~rwp6D{kskh=SK,\\'Wiysyy~,)Ykyoecj~e,)Ykyxt.CUE,\\'Wmnkxy~,(Xlx{iy{n,3Cqgfrll{;HtjsIOE\u0003iq,*ZnxdznR~~w,(X`i`{dmd,4Dywylx}~rxj?cIGQKNCB,(Xekrndbc,(XDcekAgZ,-]Cf~v^zA8Sol[,,\\\\ba}0C{p|tds,&Vh{}oy,/_bfvfWyswws;^I,.^]Y_QV@ZAY8U_O,(X{cxxd`n,+[XOo}~d3VA,*Zrxeohcs`,%Wgf~`,+Ymjk/Yes}v,%Wgqal,/]ysp|z$%&8[~;^I,(Zfi`{hbc,2@|w~artu:XsszzNRGG,3A{v}`}uv;YejmA\u0001`LHA,#Qka,%Wijig,.]n{zs4Xw}yuvz,,_l`{q1Tv4YSC,*Yjzbwj0]WG,\\'Tklz~h,&Udz`z,.]lbxbg4XB7Zvv,)ZIYE]ZF^P,&Ubz`lj,)Zoyeko/RE,,_h|fvp2G|5TC,1BzvxysnNvvzri{?bu,([aoy{bak,-^f`~p`3Vtxptx,/\\\\x~epugr7_vnsu~,&Uoz|~b,)Zclboanbu,*YB@F]LBTW],&UneAob,1B{~dyqq|~;]o}IB,7Dqtjwu{wzD\u0001cQEGOD\boCSII,&UneZe,+Xe`]z~Jh\\0bGM\u0004hr\u0007kFDOIC]JT\u0011wK@GW\u0017zVV_,.Zv`~Gcf|ql9XO,\\'Rf`id~c,\\'Rf`|n~~,4A{a}ki;_X>*\u0015\u0001oF@LSJ,1D|zbpdd8ZuuxxplEE,&Ss{hkc,(^hmjnb`k,$Rdhn,&Pnbhsj,.Xf~t`3\\\\txs8PNX,(^`y~ma[F,\\'Qakghd,/Y|pvzy|d7Kzhrli,&Puagnj,+\\\\i~zbyagqg,\\'P@@^EIT,*]bhh.Cqe{},-WovT~}eb7ZM,-WovYg~zfb7ZM,0Jpbu\\\\`{ykm:_q=\\\\K,\\']iylbbb,/Uec{p|5T{s\\\\b;^I,,Vx|fsy2Vl5TC,(R^KocokI[Ȇs#[ s$l#%s%l%u&kŊs&l %s\\'l\\'u&kĻs(o ]%v,-n|jqewVxp{rvmmx,$wugi[!cs)l),)`deiF[]],-`cb}|~yx{{tpal),%vr~dlm,(nfd_dtj,$37val),%vr~dlm,*ldbyHn}x~jl&$!,+l(+ao ]%,$fjb~mv,+j|}katRzzxqmxl)[!c}l)r+offsetWidthl!l(md#!==v!k;}l)r,offsetHeightl\"l(md#!==s*o ]%,$fjb~mv,+yi`ayuRzzxqmxl)[!c}l*k>l$vr$pushxl#vo ]-mxl&[!c[!c}j\"jjﻰl$vr$joinx$!,[!c s@ysul d\\',typeofo ])d#===v!k)}l zd#===k#$ ul d\\',typeof,\\'egffnmcd#===k-l k%$!1j#$!0 l sAyC(:o ]\\',.}jcb{|zFbxjx}~m!! ) %{s t sByA(8o ]\\',,`bmn|Bf|ftqrm!! ) %{s t sCy>(5o ]\\',)`doiukkTSm!! ) %{s t sDy6o ]!n v,\\'`m}^bahmx[ c sEyJo ]Ao ]Dz[ c&o ]Ao ]Cz[ c&+o ]Ao ]Bz[ c&+ sFy`o ]\\',&udzloems l ,%roc|amo ](+l ,&nbanbm+o ](+l ,*id`b|Kuaf{m+ sGyUo ]\\',&udzloems l ,*k}mdbXyuf{mo ](+l ,+jzlgcXt{t|am+ sHyÇgr\\'Promisey¸,*mnxOo{dt`jo ]&d\"ink›o ]&v,*mnxOo{dt`jmx[ cvr$thenxyuo\"] l ,(kakykd`hmo ](+l ,,oeo}wx|t@|{rm+o ](+l ,/kybq{ugq~v~Nrqxm+o ](+l ,%icqmem+&} [!c}j&l $ &} n! sIyÛ,.cnhE}fw}Fxqwnhs 0s!uo ]&l md\\',typeofo ])d#!==k+o ]&l ms!jEuo ]&l md\\',typeofo ])d#!==k)o ]&l ms!(Ho ]%vr+createEventx,*^dynfJft|g[!c}ts\") &{s#fs\",,ccz`erz``tdco ]\\'d\"ins#l!$!_+l\"+$!_+l#+ sJyåul!d\\',typeof,&usz`dld#!==k! l $!=+s\"l!vr%splitxgr&RegExp$$[;&]$ n\"[!cs#0s&l&l#o ],mb13\f\u0004\u0001\u0017\\r\\n\bXs&l&,\"s>gr2encodeURIComponentl\"&+$!&++s&o ]Tzl&yngr$lcspvk+}l ,%rceammkVo ]\\',,`bmn|Bf|ftqrmv,\\'tm}Ci`mx,\\'XW~oieil ,%rceamm[\"c} [\"c} sVl yٶo ]&vk%}o ]\\'vk%}o ]%!k! gr&Objectn v,)z~j~yZf}tq!nv3q!fvo ]Eq!tgr&Objectn v,)hhb`dzfubq!nv3q!fvo ]Fq!tgr&Objectn v,&effkxq!nv3q!fvo ];q!tgr&Objectn v,*~bah}{q|b\"q!nv3q!fvo ]Eq!tgr&Objectn v,(xekjb|bq!nv0q!fgr&Objectn v,3{ugr`ykXss}jRSGMG\\\\q!nv0q!fgr&Objectn v,,hhxfst_vyzdnq!nv0q!fgr&Objectn v,(dhdlylijq!nv0q!fgr&Objectn v,)ekekxohubq!nv0q!fgr&Objectn v,*xnbbzdx}}q!nv3q!fvo ]Gq!tgr&Objectn v,/nfp{Fpextlnrssq!nv3q!fvo ]Hq!tgr&Objectn v,)ziyih`[aq!nv1q!fgr&Objectn v,*yh~hka\\\\ttgq!nv1q!fgr&Objectn v,0ttdzwpF~`|vI}iwpq!nv1q!fgr&Objectn v,*zyci{ldBgqq!nv0q!fgr&Objectn v,\\'ei}~n~tq!nv3q!fvo ]Iq!tv1q!pgr&Objectn v,)}e~oeGav~q!nv3q!fvo ]Jq!tgr&Objectn v,(|`gnvb`jq!nv3q!fvo ]=q!tgr&Objectn v,*~bah}{q|b!q!nv3q!fvo ]Eq!tgr&Objectn v,\\'`x|Cejbq!nv3q!fvo ]>q!tgr&Objectn v,+aKaadb^zgaq!nv3q!fvo ]@q!tgr&Objectn v,+{`xif~b^zgaq!nv3q!fvo ]?q!tgr&Objectn v,*~bah}{q|b q!nv3q!fvo ]Eq!tgr&Objectn v,)|yn~Lij~eq!nv0q!fgr&Objectn v,*o}iM`z{vq!nv3q!fvo ]Lq!tv,(|}U|iogkq!mgr&Objectn v,+xucznhT`a{gq!nv3q!fvo ]Nq!tgr&Objectn v,,blzfft^vzrbq!nv3q!fvo ]Oq!tgr&Objectn v,%wrdAYq!nv3q!fvo ]Pq!tv1q!pgr&Objectn v,(dfijxdaaq!nv1q!fgr&Objectn v,)oz]i}fq!nv4q!fv,%4(1&9q!rgr&Objectn v,(kecnbyGkq!nv3q!fvo ]Sq!tgr&Objectn v,*~bah}{q|b\\'q!nv3q!fvo ]Eq!tgr&Objectn v,+ntykatW{vxqq!nv4q!f[As [ s!l *%s\"l\"u&kĖs#l l#mr!f0d#===k>>q!1o!o ]>>&+o ]5l.l!b^&+o ]5l#zl(o ]&,)|yn~Lij~em[\"cl$b%@d= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * FingerprintJS v3.3.3 - Copyright (c) FingerprintJS, Inc, 2022 (https://fingerprintjs.com)\n * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.\n *\n * This software contains code from open-source projects:\n * MurmurHash3 by Karan Lyons (https://github.com/karanlyons/murmurHash3.js)\n */\n\nimport { __awaiter, __generator, __assign, __spreadArrays } from 'tslib';\n\nvar version = \"3.3.3\";\n\nfunction wait(durationMs, resolveWith) {\n return new Promise(function (resolve) { return setTimeout(resolve, durationMs, resolveWith); });\n}\nfunction requestIdleCallbackIfAvailable(fallbackTimeout, deadlineTimeout) {\n if (deadlineTimeout === void 0) { deadlineTimeout = Infinity; }\n var requestIdleCallback = window.requestIdleCallback;\n if (requestIdleCallback) {\n // The function `requestIdleCallback` loses the binding to `window` here.\n // `globalThis` isn't always equal `window` (see https://github.com/fingerprintjs/fingerprintjs/issues/683).\n // Therefore, an error can occur. `call(window,` prevents the error.\n return new Promise(function (resolve) { return requestIdleCallback.call(window, function () { return resolve(); }, { timeout: deadlineTimeout }); });\n }\n else {\n return wait(Math.min(fallbackTimeout, deadlineTimeout));\n }\n}\nfunction isPromise(value) {\n return value && typeof value.then === 'function';\n}\n/**\n * Calls a maybe asynchronous function without creating microtasks when the function is synchronous.\n * Catches errors in both cases.\n *\n * If just you run a code like this:\n * ```\n * console.time('Action duration')\n * await action()\n * console.timeEnd('Action duration')\n * ```\n * The synchronous function time can be measured incorrectly because another microtask may run before the `await`\n * returns the control back to the code.\n */\nfunction awaitIfAsync(action, callback) {\n try {\n var returnedValue = action();\n if (isPromise(returnedValue)) {\n returnedValue.then(function (result) { return callback(true, result); }, function (error) { return callback(false, error); });\n }\n else {\n callback(true, returnedValue);\n }\n }\n catch (error) {\n callback(false, error);\n }\n}\n/**\n * If you run many synchronous tasks without using this function, the JS main loop will be busy and asynchronous tasks\n * (e.g. completing a network request, rendering the page) won't be able to happen.\n * This function allows running many synchronous tasks such way that asynchronous tasks can run too in background.\n */\nfunction forEachWithBreaks(items, callback, loopReleaseInterval) {\n if (loopReleaseInterval === void 0) { loopReleaseInterval = 16; }\n return __awaiter(this, void 0, void 0, function () {\n var lastLoopReleaseTime, i, now;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n lastLoopReleaseTime = Date.now();\n i = 0;\n _a.label = 1;\n case 1:\n if (!(i < items.length)) return [3 /*break*/, 4];\n callback(items[i], i);\n now = Date.now();\n if (!(now >= lastLoopReleaseTime + loopReleaseInterval)) return [3 /*break*/, 3];\n lastLoopReleaseTime = now;\n // Allows asynchronous actions and microtasks to happen\n return [4 /*yield*/, wait(0)];\n case 2:\n // Allows asynchronous actions and microtasks to happen\n _a.sent();\n _a.label = 3;\n case 3:\n ++i;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n\n/*\n * Taken from https://github.com/karanlyons/murmurHash3.js/blob/a33d0723127e2e5415056c455f8aed2451ace208/murmurHash3.js\n */\n//\n// Given two 64bit ints (as an array of two 32bit ints) returns the two\n// added together as a 64bit int (as an array of two 32bit ints).\n//\nfunction x64Add(m, n) {\n m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff];\n n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff];\n var o = [0, 0, 0, 0];\n o[3] += m[3] + n[3];\n o[2] += o[3] >>> 16;\n o[3] &= 0xffff;\n o[2] += m[2] + n[2];\n o[1] += o[2] >>> 16;\n o[2] &= 0xffff;\n o[1] += m[1] + n[1];\n o[0] += o[1] >>> 16;\n o[1] &= 0xffff;\n o[0] += m[0] + n[0];\n o[0] &= 0xffff;\n return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]];\n}\n//\n// Given two 64bit ints (as an array of two 32bit ints) returns the two\n// multiplied together as a 64bit int (as an array of two 32bit ints).\n//\nfunction x64Multiply(m, n) {\n m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff];\n n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff];\n var o = [0, 0, 0, 0];\n o[3] += m[3] * n[3];\n o[2] += o[3] >>> 16;\n o[3] &= 0xffff;\n o[2] += m[2] * n[3];\n o[1] += o[2] >>> 16;\n o[2] &= 0xffff;\n o[2] += m[3] * n[2];\n o[1] += o[2] >>> 16;\n o[2] &= 0xffff;\n o[1] += m[1] * n[3];\n o[0] += o[1] >>> 16;\n o[1] &= 0xffff;\n o[1] += m[2] * n[2];\n o[0] += o[1] >>> 16;\n o[1] &= 0xffff;\n o[1] += m[3] * n[1];\n o[0] += o[1] >>> 16;\n o[1] &= 0xffff;\n o[0] += m[0] * n[3] + m[1] * n[2] + m[2] * n[1] + m[3] * n[0];\n o[0] &= 0xffff;\n return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]];\n}\n//\n// Given a 64bit int (as an array of two 32bit ints) and an int\n// representing a number of bit positions, returns the 64bit int (as an\n// array of two 32bit ints) rotated left by that number of positions.\n//\nfunction x64Rotl(m, n) {\n n %= 64;\n if (n === 32) {\n return [m[1], m[0]];\n }\n else if (n < 32) {\n return [(m[0] << n) | (m[1] >>> (32 - n)), (m[1] << n) | (m[0] >>> (32 - n))];\n }\n else {\n n -= 32;\n return [(m[1] << n) | (m[0] >>> (32 - n)), (m[0] << n) | (m[1] >>> (32 - n))];\n }\n}\n//\n// Given a 64bit int (as an array of two 32bit ints) and an int\n// representing a number of bit positions, returns the 64bit int (as an\n// array of two 32bit ints) shifted left by that number of positions.\n//\nfunction x64LeftShift(m, n) {\n n %= 64;\n if (n === 0) {\n return m;\n }\n else if (n < 32) {\n return [(m[0] << n) | (m[1] >>> (32 - n)), m[1] << n];\n }\n else {\n return [m[1] << (n - 32), 0];\n }\n}\n//\n// Given two 64bit ints (as an array of two 32bit ints) returns the two\n// xored together as a 64bit int (as an array of two 32bit ints).\n//\nfunction x64Xor(m, n) {\n return [m[0] ^ n[0], m[1] ^ n[1]];\n}\n//\n// Given a block, returns murmurHash3's final x64 mix of that block.\n// (`[0, h[0] >>> 1]` is a 33 bit unsigned right shift. This is the\n// only place where we need to right shift 64bit ints.)\n//\nfunction x64Fmix(h) {\n h = x64Xor(h, [0, h[0] >>> 1]);\n h = x64Multiply(h, [0xff51afd7, 0xed558ccd]);\n h = x64Xor(h, [0, h[0] >>> 1]);\n h = x64Multiply(h, [0xc4ceb9fe, 0x1a85ec53]);\n h = x64Xor(h, [0, h[0] >>> 1]);\n return h;\n}\n//\n// Given a string and an optional seed as an int, returns a 128 bit\n// hash using the x64 flavor of MurmurHash3, as an unsigned hex.\n//\nfunction x64hash128(key, seed) {\n key = key || '';\n seed = seed || 0;\n var remainder = key.length % 16;\n var bytes = key.length - remainder;\n var h1 = [0, seed];\n var h2 = [0, seed];\n var k1 = [0, 0];\n var k2 = [0, 0];\n var c1 = [0x87c37b91, 0x114253d5];\n var c2 = [0x4cf5ad43, 0x2745937f];\n var i;\n for (i = 0; i < bytes; i = i + 16) {\n k1 = [\n (key.charCodeAt(i + 4) & 0xff) |\n ((key.charCodeAt(i + 5) & 0xff) << 8) |\n ((key.charCodeAt(i + 6) & 0xff) << 16) |\n ((key.charCodeAt(i + 7) & 0xff) << 24),\n (key.charCodeAt(i) & 0xff) |\n ((key.charCodeAt(i + 1) & 0xff) << 8) |\n ((key.charCodeAt(i + 2) & 0xff) << 16) |\n ((key.charCodeAt(i + 3) & 0xff) << 24),\n ];\n k2 = [\n (key.charCodeAt(i + 12) & 0xff) |\n ((key.charCodeAt(i + 13) & 0xff) << 8) |\n ((key.charCodeAt(i + 14) & 0xff) << 16) |\n ((key.charCodeAt(i + 15) & 0xff) << 24),\n (key.charCodeAt(i + 8) & 0xff) |\n ((key.charCodeAt(i + 9) & 0xff) << 8) |\n ((key.charCodeAt(i + 10) & 0xff) << 16) |\n ((key.charCodeAt(i + 11) & 0xff) << 24),\n ];\n k1 = x64Multiply(k1, c1);\n k1 = x64Rotl(k1, 31);\n k1 = x64Multiply(k1, c2);\n h1 = x64Xor(h1, k1);\n h1 = x64Rotl(h1, 27);\n h1 = x64Add(h1, h2);\n h1 = x64Add(x64Multiply(h1, [0, 5]), [0, 0x52dce729]);\n k2 = x64Multiply(k2, c2);\n k2 = x64Rotl(k2, 33);\n k2 = x64Multiply(k2, c1);\n h2 = x64Xor(h2, k2);\n h2 = x64Rotl(h2, 31);\n h2 = x64Add(h2, h1);\n h2 = x64Add(x64Multiply(h2, [0, 5]), [0, 0x38495ab5]);\n }\n k1 = [0, 0];\n k2 = [0, 0];\n switch (remainder) {\n case 15:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 14)], 48));\n // fallthrough\n case 14:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 13)], 40));\n // fallthrough\n case 13:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 12)], 32));\n // fallthrough\n case 12:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 11)], 24));\n // fallthrough\n case 11:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 10)], 16));\n // fallthrough\n case 10:\n k2 = x64Xor(k2, x64LeftShift([0, key.charCodeAt(i + 9)], 8));\n // fallthrough\n case 9:\n k2 = x64Xor(k2, [0, key.charCodeAt(i + 8)]);\n k2 = x64Multiply(k2, c2);\n k2 = x64Rotl(k2, 33);\n k2 = x64Multiply(k2, c1);\n h2 = x64Xor(h2, k2);\n // fallthrough\n case 8:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 7)], 56));\n // fallthrough\n case 7:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 6)], 48));\n // fallthrough\n case 6:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 5)], 40));\n // fallthrough\n case 5:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 4)], 32));\n // fallthrough\n case 4:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 3)], 24));\n // fallthrough\n case 3:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 2)], 16));\n // fallthrough\n case 2:\n k1 = x64Xor(k1, x64LeftShift([0, key.charCodeAt(i + 1)], 8));\n // fallthrough\n case 1:\n k1 = x64Xor(k1, [0, key.charCodeAt(i)]);\n k1 = x64Multiply(k1, c1);\n k1 = x64Rotl(k1, 31);\n k1 = x64Multiply(k1, c2);\n h1 = x64Xor(h1, k1);\n // fallthrough\n }\n h1 = x64Xor(h1, [0, key.length]);\n h2 = x64Xor(h2, [0, key.length]);\n h1 = x64Add(h1, h2);\n h2 = x64Add(h2, h1);\n h1 = x64Fmix(h1);\n h2 = x64Fmix(h2);\n h1 = x64Add(h1, h2);\n h2 = x64Add(h2, h1);\n return (('00000000' + (h1[0] >>> 0).toString(16)).slice(-8) +\n ('00000000' + (h1[1] >>> 0).toString(16)).slice(-8) +\n ('00000000' + (h2[0] >>> 0).toString(16)).slice(-8) +\n ('00000000' + (h2[1] >>> 0).toString(16)).slice(-8));\n}\n\n/**\n * Converts an error object to a plain object that can be used with `JSON.stringify`.\n * If you just run `JSON.stringify(error)`, you'll get `'{}'`.\n */\nfunction errorToObject(error) {\n var _a;\n return __assign({ name: error.name, message: error.message, stack: (_a = error.stack) === null || _a === void 0 ? void 0 : _a.split('\\n') }, error);\n}\n\n/*\n * This file contains functions to work with pure data only (no browser features, DOM, side effects, etc).\n */\n/**\n * Does the same as Array.prototype.includes but has better typing\n */\nfunction includes(haystack, needle) {\n for (var i = 0, l = haystack.length; i < l; ++i) {\n if (haystack[i] === needle) {\n return true;\n }\n }\n return false;\n}\n/**\n * Like `!includes()` but with proper typing\n */\nfunction excludes(haystack, needle) {\n return !includes(haystack, needle);\n}\n/**\n * Be careful, NaN can return\n */\nfunction toInt(value) {\n return parseInt(value);\n}\n/**\n * Be careful, NaN can return\n */\nfunction toFloat(value) {\n return parseFloat(value);\n}\nfunction replaceNaN(value, replacement) {\n return typeof value === 'number' && isNaN(value) ? replacement : value;\n}\nfunction countTruthy(values) {\n return values.reduce(function (sum, value) { return sum + (value ? 1 : 0); }, 0);\n}\nfunction round(value, base) {\n if (base === void 0) { base = 1; }\n if (Math.abs(base) >= 1) {\n return Math.round(value / base) * base;\n }\n else {\n // Sometimes when a number is multiplied by a small number, precision is lost,\n // for example 1234 * 0.0001 === 0.12340000000000001, and it's more precise divide: 1234 / (1 / 0.0001) === 0.1234.\n var counterBase = 1 / base;\n return Math.round(value * counterBase) / counterBase;\n }\n}\n/**\n * Parses a CSS selector into tag name with HTML attributes.\n * Only single element selector are supported (without operators like space, +, >, etc).\n *\n * Multiple values can be returned for each attribute. You decide how to handle them.\n */\nfunction parseSimpleCssSelector(selector) {\n var _a, _b;\n var errorMessage = \"Unexpected syntax '\" + selector + \"'\";\n var tagMatch = /^\\s*([a-z-]*)(.*)$/i.exec(selector);\n var tag = tagMatch[1] || undefined;\n var attributes = {};\n var partsRegex = /([.:#][\\w-]+|\\[.+?\\])/gi;\n var addAttribute = function (name, value) {\n attributes[name] = attributes[name] || [];\n attributes[name].push(value);\n };\n for (;;) {\n var match = partsRegex.exec(tagMatch[2]);\n if (!match) {\n break;\n }\n var part = match[0];\n switch (part[0]) {\n case '.':\n addAttribute('class', part.slice(1));\n break;\n case '#':\n addAttribute('id', part.slice(1));\n break;\n case '[': {\n var attributeMatch = /^\\[([\\w-]+)([~|^$*]?=(\"(.*?)\"|([\\w-]+)))?(\\s+[is])?\\]$/.exec(part);\n if (attributeMatch) {\n addAttribute(attributeMatch[1], (_b = (_a = attributeMatch[4]) !== null && _a !== void 0 ? _a : attributeMatch[5]) !== null && _b !== void 0 ? _b : '');\n }\n else {\n throw new Error(errorMessage);\n }\n break;\n }\n default:\n throw new Error(errorMessage);\n }\n }\n return [tag, attributes];\n}\n\nfunction ensureErrorWithMessage(error) {\n return error && typeof error === 'object' && 'message' in error ? error : { message: error };\n}\n/**\n * Loads the given entropy source. Returns a function that gets an entropy component from the source.\n *\n * The result is returned synchronously to prevent `loadSources` from\n * waiting for one source to load before getting the components from the other sources.\n */\nfunction loadSource(source, sourceOptions) {\n var isFinalResultLoaded = function (loadResult) {\n return typeof loadResult !== 'function';\n };\n var sourceLoadPromise = new Promise(function (resolveLoad) {\n var loadStartTime = Date.now();\n // `awaitIfAsync` is used instead of just `await` in order to measure the duration of synchronous sources\n // correctly (other microtasks won't affect the duration).\n awaitIfAsync(source.bind(null, sourceOptions), function () {\n var loadArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n loadArgs[_i] = arguments[_i];\n }\n var loadDuration = Date.now() - loadStartTime;\n // Source loading failed\n if (!loadArgs[0]) {\n return resolveLoad(function () { return ({ error: ensureErrorWithMessage(loadArgs[1]), duration: loadDuration }); });\n }\n var loadResult = loadArgs[1];\n // Source loaded with the final result\n if (isFinalResultLoaded(loadResult)) {\n return resolveLoad(function () { return ({ value: loadResult, duration: loadDuration }); });\n }\n // Source loaded with \"get\" stage\n resolveLoad(function () {\n return new Promise(function (resolveGet) {\n var getStartTime = Date.now();\n awaitIfAsync(loadResult, function () {\n var getArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n getArgs[_i] = arguments[_i];\n }\n var duration = loadDuration + Date.now() - getStartTime;\n // Source getting failed\n if (!getArgs[0]) {\n return resolveGet({ error: ensureErrorWithMessage(getArgs[1]), duration: duration });\n }\n // Source getting succeeded\n resolveGet({ value: getArgs[1], duration: duration });\n });\n });\n });\n });\n });\n return function getComponent() {\n return sourceLoadPromise.then(function (finalizeSource) { return finalizeSource(); });\n };\n}\n/**\n * Loads the given entropy sources. Returns a function that collects the entropy components.\n *\n * The result is returned synchronously in order to allow start getting the components\n * before the sources are loaded completely.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction loadSources(sources, sourceOptions, excludeSources) {\n var includedSources = Object.keys(sources).filter(function (sourceKey) { return excludes(excludeSources, sourceKey); });\n var sourceGetters = Array(includedSources.length);\n // Using `forEachWithBreaks` allows asynchronous sources to complete between synchronous sources\n // and measure the duration correctly\n forEachWithBreaks(includedSources, function (sourceKey, index) {\n sourceGetters[index] = loadSource(sources[sourceKey], sourceOptions);\n });\n return function getComponents() {\n return __awaiter(this, void 0, void 0, function () {\n var components, _i, includedSources_1, sourceKey, componentPromises, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n components = {};\n for (_i = 0, includedSources_1 = includedSources; _i < includedSources_1.length; _i++) {\n sourceKey = includedSources_1[_i];\n components[sourceKey] = undefined;\n }\n componentPromises = Array(includedSources.length);\n _loop_1 = function () {\n var hasAllComponentPromises;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hasAllComponentPromises = true;\n return [4 /*yield*/, forEachWithBreaks(includedSources, function (sourceKey, index) {\n if (!componentPromises[index]) {\n // `sourceGetters` may be incomplete at this point of execution because `forEachWithBreaks` is asynchronous\n if (sourceGetters[index]) {\n componentPromises[index] = sourceGetters[index]().then(function (component) { return (components[sourceKey] = component); });\n }\n else {\n hasAllComponentPromises = false;\n }\n }\n })];\n case 1:\n _a.sent();\n if (hasAllComponentPromises) {\n return [2 /*return*/, \"break\"];\n }\n return [4 /*yield*/, wait(1)]; // Lets the source load loop continue\n case 2:\n _a.sent(); // Lets the source load loop continue\n return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1: return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (state_1 === \"break\")\n return [3 /*break*/, 4];\n _a.label = 3;\n case 3: return [3 /*break*/, 1];\n case 4: return [4 /*yield*/, Promise.all(componentPromises)];\n case 5:\n _a.sent();\n return [2 /*return*/, components];\n }\n });\n });\n };\n}\n\n/*\n * Functions to help with features that vary through browsers\n */\n/**\n * Checks whether the browser is based on Trident (the Internet Explorer engine) without using user-agent.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isTrident() {\n var w = window;\n var n = navigator;\n // The properties are checked to be in IE 10, IE 11 and not to be in other browsers in October 2020\n return (countTruthy([\n 'MSCSSMatrix' in w,\n 'msSetImmediate' in w,\n 'msIndexedDB' in w,\n 'msMaxTouchPoints' in n,\n 'msPointerEnabled' in n,\n ]) >= 4);\n}\n/**\n * Checks whether the browser is based on EdgeHTML (the pre-Chromium Edge engine) without using user-agent.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isEdgeHTML() {\n // Based on research in October 2020\n var w = window;\n var n = navigator;\n return (countTruthy(['msWriteProfilerMark' in w, 'MSStream' in w, 'msLaunchUri' in n, 'msSaveBlob' in n]) >= 3 &&\n !isTrident());\n}\n/**\n * Checks whether the browser is based on Chromium without using user-agent.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isChromium() {\n // Based on research in October 2020. Tested to detect Chromium 42-86.\n var w = window;\n var n = navigator;\n return (countTruthy([\n 'webkitPersistentStorage' in n,\n 'webkitTemporaryStorage' in n,\n n.vendor.indexOf('Google') === 0,\n 'webkitResolveLocalFileSystemURL' in w,\n 'BatteryManager' in w,\n 'webkitMediaStream' in w,\n 'webkitSpeechGrammar' in w,\n ]) >= 5);\n}\n/**\n * Checks whether the browser is based on mobile or desktop Safari without using user-agent.\n * All iOS browsers use WebKit (the Safari engine).\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isWebKit() {\n // Based on research in September 2020\n var w = window;\n var n = navigator;\n return (countTruthy([\n 'ApplePayError' in w,\n 'CSSPrimitiveValue' in w,\n 'Counter' in w,\n n.vendor.indexOf('Apple') === 0,\n 'getStorageUpdates' in n,\n 'WebKitMediaKeys' in w,\n ]) >= 4);\n}\n/**\n * Checks whether the WebKit browser is a desktop Safari.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isDesktopSafari() {\n var w = window;\n return (countTruthy([\n 'safari' in w,\n !('DeviceMotionEvent' in w),\n !('ongestureend' in w),\n !('standalone' in navigator),\n ]) >= 3);\n}\n/**\n * Checks whether the browser is based on Gecko (Firefox engine) without using user-agent.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isGecko() {\n var _a, _b;\n var w = window;\n // Based on research in September 2020\n return (countTruthy([\n 'buildID' in navigator,\n 'MozAppearance' in ((_b = (_a = document.documentElement) === null || _a === void 0 ? void 0 : _a.style) !== null && _b !== void 0 ? _b : {}),\n 'onmozfullscreenchange' in w,\n 'mozInnerScreenX' in w,\n 'CSSMozDocumentRule' in w,\n 'CanvasCaptureMediaStream' in w,\n ]) >= 4);\n}\n/**\n * Checks whether the browser is based on Chromium version ≥86 without using user-agent.\n * It doesn't check that the browser is based on Chromium, there is a separate function for this.\n */\nfunction isChromium86OrNewer() {\n // Checked in Chrome 85 vs Chrome 86 both on desktop and Android\n var w = window;\n return (countTruthy([\n !('MediaSettingsRange' in w),\n 'RTCEncodedAudioFrame' in w,\n '' + w.Intl === '[object Intl]',\n '' + w.Reflect === '[object Reflect]',\n ]) >= 3);\n}\n/**\n * Checks whether the browser is based on WebKit version ≥606 (Safari ≥12) without using user-agent.\n * It doesn't check that the browser is based on WebKit, there is a separate function for this.\n *\n * @link https://en.wikipedia.org/wiki/Safari_version_history#Release_history Safari-WebKit versions map\n */\nfunction isWebKit606OrNewer() {\n // Checked in Safari 9–14\n var w = window;\n return (countTruthy([\n 'DOMRectList' in w,\n 'RTCPeerConnectionIceEvent' in w,\n 'SVGGeometryElement' in w,\n 'ontransitioncancel' in w,\n ]) >= 3);\n}\n/**\n * Checks whether the device is an iPad.\n * It doesn't check that the engine is WebKit and that the WebKit isn't desktop.\n */\nfunction isIPad() {\n // Checked on:\n // Safari on iPadOS (both mobile and desktop modes): 8, 11, 12, 13, 14\n // Chrome on iPadOS (both mobile and desktop modes): 11, 12, 13, 14\n // Safari on iOS (both mobile and desktop modes): 9, 10, 11, 12, 13, 14\n // Chrome on iOS (both mobile and desktop modes): 9, 10, 11, 12, 13, 14\n // Before iOS 13. Safari tampers the value in \"request desktop site\" mode since iOS 13.\n if (navigator.platform === 'iPad') {\n return true;\n }\n var s = screen;\n var screenRatio = s.width / s.height;\n return (countTruthy([\n 'MediaSource' in window,\n !!Element.prototype.webkitRequestFullscreen,\n // iPhone 4S that runs iOS 9 matches this. But it won't match the criteria above, so it won't be detected as iPad.\n screenRatio > 0.65 && screenRatio < 1.53,\n ]) >= 2);\n}\n/**\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction getFullscreenElement() {\n var d = document;\n return d.fullscreenElement || d.msFullscreenElement || d.mozFullScreenElement || d.webkitFullscreenElement || null;\n}\nfunction exitFullscreen() {\n var d = document;\n // `call` is required because the function throws an error without a proper \"this\" context\n return (d.exitFullscreen || d.msExitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen).call(d);\n}\n/**\n * Checks whether the device runs on Android without using user-agent.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction isAndroid() {\n var isItChromium = isChromium();\n var isItGecko = isGecko();\n // Only 2 browser engines are presented on Android.\n // Actually, there is also Android 4.1 browser, but it's not worth detecting it at the moment.\n if (!isItChromium && !isItGecko) {\n return false;\n }\n var w = window;\n // Chrome removes all words \"Android\" from `navigator` when desktop version is requested\n // Firefox keeps \"Android\" in `navigator.appVersion` when desktop version is requested\n return (countTruthy([\n 'onorientationchange' in w,\n 'orientation' in w,\n isItChromium && !('SharedWorker' in w),\n isItGecko && /android/i.test(navigator.appVersion),\n ]) >= 2);\n}\n\n/**\n * A deep description: https://fingerprintjs.com/blog/audio-fingerprinting/\n * Inspired by and based on https://github.com/cozylife/audio-fingerprint\n */\nfunction getAudioFingerprint() {\n var w = window;\n var AudioContext = w.OfflineAudioContext || w.webkitOfflineAudioContext;\n if (!AudioContext) {\n return -2 /* NotSupported */;\n }\n // In some browsers, audio context always stays suspended unless the context is started in response to a user action\n // (e.g. a click or a tap). It prevents audio fingerprint from being taken at an arbitrary moment of time.\n // Such browsers are old and unpopular, so the audio fingerprinting is just skipped in them.\n // See a similar case explanation at https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088\n if (doesCurrentBrowserSuspendAudioContext()) {\n return -1 /* KnownToSuspend */;\n }\n var hashFromIndex = 4500;\n var hashToIndex = 5000;\n var context = new AudioContext(1, hashToIndex, 44100);\n var oscillator = context.createOscillator();\n oscillator.type = 'triangle';\n oscillator.frequency.value = 10000;\n var compressor = context.createDynamicsCompressor();\n compressor.threshold.value = -50;\n compressor.knee.value = 40;\n compressor.ratio.value = 12;\n compressor.attack.value = 0;\n compressor.release.value = 0.25;\n oscillator.connect(compressor);\n compressor.connect(context.destination);\n oscillator.start(0);\n var _a = startRenderingAudio(context), renderPromise = _a[0], finishRendering = _a[1];\n var fingerprintPromise = renderPromise.then(function (buffer) { return getHash(buffer.getChannelData(0).subarray(hashFromIndex)); }, function (error) {\n if (error.name === \"timeout\" /* Timeout */ || error.name === \"suspended\" /* Suspended */) {\n return -3 /* Timeout */;\n }\n throw error;\n });\n // Suppresses the console error message in case when the fingerprint fails before requested\n fingerprintPromise.catch(function () { return undefined; });\n return function () {\n finishRendering();\n return fingerprintPromise;\n };\n}\n/**\n * Checks if the current browser is known to always suspend audio context\n */\nfunction doesCurrentBrowserSuspendAudioContext() {\n return isWebKit() && !isDesktopSafari() && !isWebKit606OrNewer();\n}\n/**\n * Starts rendering the audio context.\n * When the returned function is called, the render process starts finishing.\n */\nfunction startRenderingAudio(context) {\n var renderTryMaxCount = 3;\n var renderRetryDelay = 500;\n var runningMaxAwaitTime = 500;\n var runningSufficientTime = 5000;\n var finalize = function () { return undefined; };\n var resultPromise = new Promise(function (resolve, reject) {\n var isFinalized = false;\n var renderTryCount = 0;\n var startedRunningAt = 0;\n context.oncomplete = function (event) { return resolve(event.renderedBuffer); };\n var startRunningTimeout = function () {\n setTimeout(function () { return reject(makeInnerError(\"timeout\" /* Timeout */)); }, Math.min(runningMaxAwaitTime, startedRunningAt + runningSufficientTime - Date.now()));\n };\n var tryRender = function () {\n try {\n context.startRendering();\n switch (context.state) {\n case 'running':\n startedRunningAt = Date.now();\n if (isFinalized) {\n startRunningTimeout();\n }\n break;\n // Sometimes the audio context doesn't start after calling `startRendering` (in addition to the cases where\n // audio context doesn't start at all). A known case is starting an audio context when the browser tab is in\n // background on iPhone. Retries usually help in this case.\n case 'suspended':\n // The audio context can reject starting until the tab is in foreground. Long fingerprint duration\n // in background isn't a problem, therefore the retry attempts don't count in background. It can lead to\n // a situation when a fingerprint takes very long time and finishes successfully. FYI, the audio context\n // can be suspended when `document.hidden === false` and start running after a retry.\n if (!document.hidden) {\n renderTryCount++;\n }\n if (isFinalized && renderTryCount >= renderTryMaxCount) {\n reject(makeInnerError(\"suspended\" /* Suspended */));\n }\n else {\n setTimeout(tryRender, renderRetryDelay);\n }\n break;\n }\n }\n catch (error) {\n reject(error);\n }\n };\n tryRender();\n finalize = function () {\n if (!isFinalized) {\n isFinalized = true;\n if (startedRunningAt > 0) {\n startRunningTimeout();\n }\n }\n };\n });\n return [resultPromise, finalize];\n}\nfunction getHash(signal) {\n var hash = 0;\n for (var i = 0; i < signal.length; ++i) {\n hash += Math.abs(signal[i]);\n }\n return hash;\n}\nfunction makeInnerError(name) {\n var error = new Error(name);\n error.name = name;\n return error;\n}\n\n/**\n * Creates and keeps an invisible iframe while the given function runs.\n * The given function is called when the iframe is loaded and has a body.\n * The iframe allows to measure DOM sizes inside itself.\n *\n * Notice: passing an initial HTML code doesn't work in IE.\n *\n * Warning for package users:\n * This function is out of Semantic Versioning, i.e. can change unexpectedly. Usage is at your own risk.\n */\nfunction withIframe(action, initialHtml, domPollInterval) {\n var _a, _b, _c;\n if (domPollInterval === void 0) { domPollInterval = 50; }\n return __awaiter(this, void 0, void 0, function () {\n var d, iframe;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n d = document;\n _d.label = 1;\n case 1:\n if (!!d.body) return [3 /*break*/, 3];\n return [4 /*yield*/, wait(domPollInterval)];\n case 2:\n _d.sent();\n return [3 /*break*/, 1];\n case 3:\n iframe = d.createElement('iframe');\n _d.label = 4;\n case 4:\n _d.trys.push([4, , 10, 11]);\n return [4 /*yield*/, new Promise(function (_resolve, _reject) {\n var isComplete = false;\n var resolve = function () {\n isComplete = true;\n _resolve();\n };\n var reject = function (error) {\n isComplete = true;\n _reject(error);\n };\n iframe.onload = resolve;\n iframe.onerror = reject;\n var style = iframe.style;\n style.setProperty('display', 'block', 'important'); // Required for browsers to calculate the layout\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style.visibility = 'hidden';\n if (initialHtml && 'srcdoc' in iframe) {\n iframe.srcdoc = initialHtml;\n }\n else {\n iframe.src = 'about:blank';\n }\n d.body.appendChild(iframe);\n // WebKit in WeChat doesn't fire the iframe's `onload` for some reason.\n // This code checks for the loading state manually.\n // See https://github.com/fingerprintjs/fingerprintjs/issues/645\n var checkReadyState = function () {\n var _a, _b;\n // The ready state may never become 'complete' in Firefox despite the 'load' event being fired.\n // So an infinite setTimeout loop can happen without this check.\n // See https://github.com/fingerprintjs/fingerprintjs/pull/716#issuecomment-986898796\n if (isComplete) {\n return;\n }\n // Make sure iframe.contentWindow and iframe.contentWindow.document are both loaded\n // The contentWindow.document can miss in JSDOM (https://github.com/jsdom/jsdom).\n if (((_b = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document) === null || _b === void 0 ? void 0 : _b.readyState) === 'complete') {\n resolve();\n }\n else {\n setTimeout(checkReadyState, 10);\n }\n };\n checkReadyState();\n })];\n case 5:\n _d.sent();\n _d.label = 6;\n case 6:\n if (!!((_b = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document) === null || _b === void 0 ? void 0 : _b.body)) return [3 /*break*/, 8];\n return [4 /*yield*/, wait(domPollInterval)];\n case 7:\n _d.sent();\n return [3 /*break*/, 6];\n case 8: return [4 /*yield*/, action(iframe, iframe.contentWindow)];\n case 9: return [2 /*return*/, _d.sent()];\n case 10:\n (_c = iframe.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(iframe);\n return [7 /*endfinally*/];\n case 11: return [2 /*return*/];\n }\n });\n });\n}\n/**\n * Creates a DOM element that matches the given selector.\n * Only single element selector are supported (without operators like space, +, >, etc).\n */\nfunction selectorToElement(selector) {\n var _a = parseSimpleCssSelector(selector), tag = _a[0], attributes = _a[1];\n var element = document.createElement(tag !== null && tag !== void 0 ? tag : 'div');\n for (var _i = 0, _b = Object.keys(attributes); _i < _b.length; _i++) {\n var name_1 = _b[_i];\n var value = attributes[name_1].join(' ');\n // Changing the `style` attribute can cause a CSP error, therefore we change the `style.cssText` property.\n // https://github.com/fingerprintjs/fingerprintjs/issues/733\n if (name_1 === 'style') {\n addStyleString(element.style, value);\n }\n else {\n element.setAttribute(name_1, value);\n }\n }\n return element;\n}\n/**\n * Adds CSS styles from a string in such a way that doesn't trigger a CSP warning (unsafe-inline or unsafe-eval)\n */\nfunction addStyleString(style, source) {\n // We don't use `style.cssText` because browsers must block it when no `unsafe-eval` CSP is presented: https://csplite.com/csp145/#w3c_note\n // Even though the browsers ignore this standard, we don't use `cssText` just in case.\n for (var _i = 0, _a = source.split(';'); _i < _a.length; _i++) {\n var property = _a[_i];\n var match = /^\\s*([\\w-]+)\\s*:\\s*(.+?)(\\s*!([\\w-]+))?\\s*$/.exec(property);\n if (match) {\n var name_2 = match[1], value = match[2], priority = match[4];\n style.setProperty(name_2, value, priority || ''); // The last argument can't be undefined in IE11\n }\n }\n}\n\n// We use m or w because these two characters take up the maximum width.\n// And we use a LLi so that the same matching fonts can get separated.\nvar testString = 'mmMwWLliI0O&1';\n// We test using 48px font size, we may use any size. I guess larger the better.\nvar textSize = '48px';\n// A font will be compared against all the three default fonts.\n// And if for any default fonts it doesn't match, then that font is available.\nvar baseFonts = ['monospace', 'sans-serif', 'serif'];\nvar fontList = [\n // This is android-specific font from \"Roboto\" family\n 'sans-serif-thin',\n 'ARNO PRO',\n 'Agency FB',\n 'Arabic Typesetting',\n 'Arial Unicode MS',\n 'AvantGarde Bk BT',\n 'BankGothic Md BT',\n 'Batang',\n 'Bitstream Vera Sans Mono',\n 'Calibri',\n 'Century',\n 'Century Gothic',\n 'Clarendon',\n 'EUROSTILE',\n 'Franklin Gothic',\n 'Futura Bk BT',\n 'Futura Md BT',\n 'GOTHAM',\n 'Gill Sans',\n 'HELV',\n 'Haettenschweiler',\n 'Helvetica Neue',\n 'Humanst521 BT',\n 'Leelawadee',\n 'Letter Gothic',\n 'Levenim MT',\n 'Lucida Bright',\n 'Lucida Sans',\n 'Menlo',\n 'MS Mincho',\n 'MS Outlook',\n 'MS Reference Specialty',\n 'MS UI Gothic',\n 'MT Extra',\n 'MYRIAD PRO',\n 'Marlett',\n 'Meiryo UI',\n 'Microsoft Uighur',\n 'Minion Pro',\n 'Monotype Corsiva',\n 'PMingLiU',\n 'Pristina',\n 'SCRIPTINA',\n 'Segoe UI Light',\n 'Serifa',\n 'SimHei',\n 'Small Fonts',\n 'Staccato222 BT',\n 'TRAJAN PRO',\n 'Univers CE 55 Medium',\n 'Vrinda',\n 'ZWAdobeF',\n];\n// kudos to http://www.lalit.org/lab/javascript-css-font-detect/\nfunction getFonts() {\n // Running the script in an iframe makes it not affect the page look and not be affected by the page CSS. See:\n // https://github.com/fingerprintjs/fingerprintjs/issues/592\n // https://github.com/fingerprintjs/fingerprintjs/issues/628\n return withIframe(function (_, _a) {\n var document = _a.document;\n var holder = document.body;\n holder.style.fontSize = textSize;\n // div to load spans for the default fonts and the fonts to detect\n var spansContainer = document.createElement('div');\n var defaultWidth = {};\n var defaultHeight = {};\n // creates a span where the fonts will be loaded\n var createSpan = function (fontFamily) {\n var span = document.createElement('span');\n var style = span.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style.fontFamily = fontFamily;\n span.textContent = testString;\n spansContainer.appendChild(span);\n return span;\n };\n // creates a span and load the font to detect and a base font for fallback\n var createSpanWithFonts = function (fontToDetect, baseFont) {\n return createSpan(\"'\" + fontToDetect + \"',\" + baseFont);\n };\n // creates spans for the base fonts and adds them to baseFontsDiv\n var initializeBaseFontsSpans = function () {\n return baseFonts.map(createSpan);\n };\n // creates spans for the fonts to detect and adds them to fontsDiv\n var initializeFontsSpans = function () {\n // Stores {fontName : [spans for that font]}\n var spans = {};\n var _loop_1 = function (font) {\n spans[font] = baseFonts.map(function (baseFont) { return createSpanWithFonts(font, baseFont); });\n };\n for (var _i = 0, fontList_1 = fontList; _i < fontList_1.length; _i++) {\n var font = fontList_1[_i];\n _loop_1(font);\n }\n return spans;\n };\n // checks if a font is available\n var isFontAvailable = function (fontSpans) {\n return baseFonts.some(function (baseFont, baseFontIndex) {\n return fontSpans[baseFontIndex].offsetWidth !== defaultWidth[baseFont] ||\n fontSpans[baseFontIndex].offsetHeight !== defaultHeight[baseFont];\n });\n };\n // create spans for base fonts\n var baseFontsSpans = initializeBaseFontsSpans();\n // create spans for fonts to detect\n var fontsSpans = initializeFontsSpans();\n // add all the spans to the DOM\n holder.appendChild(spansContainer);\n // get the default width for the three base fonts\n for (var index = 0; index < baseFonts.length; index++) {\n defaultWidth[baseFonts[index]] = baseFontsSpans[index].offsetWidth; // width for the default font\n defaultHeight[baseFonts[index]] = baseFontsSpans[index].offsetHeight; // height for the default font\n }\n // check available fonts\n return fontList.filter(function (font) { return isFontAvailable(fontsSpans[font]); });\n });\n}\n\nfunction getPlugins() {\n var rawPlugins = navigator.plugins;\n if (!rawPlugins) {\n return undefined;\n }\n var plugins = [];\n // Safari 10 doesn't support iterating navigator.plugins with for...of\n for (var i = 0; i < rawPlugins.length; ++i) {\n var plugin = rawPlugins[i];\n if (!plugin) {\n continue;\n }\n var mimeTypes = [];\n for (var j = 0; j < plugin.length; ++j) {\n var mimeType = plugin[j];\n mimeTypes.push({\n type: mimeType.type,\n suffixes: mimeType.suffixes,\n });\n }\n plugins.push({\n name: plugin.name,\n description: plugin.description,\n mimeTypes: mimeTypes,\n });\n }\n return plugins;\n}\n\n// https://www.browserleaks.com/canvas#how-does-it-work\nfunction getCanvasFingerprint() {\n var _a = makeCanvasContext(), canvas = _a[0], context = _a[1];\n if (!isSupported(canvas, context)) {\n return { winding: false, geometry: '', text: '' };\n }\n return {\n winding: doesSupportWinding(context),\n geometry: makeGeometryImage(canvas, context),\n // Text is unstable:\n // https://github.com/fingerprintjs/fingerprintjs/issues/583\n // https://github.com/fingerprintjs/fingerprintjs/issues/103\n // Therefore it's extracted into a separate image.\n text: makeTextImage(canvas, context),\n };\n}\nfunction makeCanvasContext() {\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n return [canvas, canvas.getContext('2d')];\n}\nfunction isSupported(canvas, context) {\n // TODO: look into: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob\n return !!(context && canvas.toDataURL);\n}\nfunction doesSupportWinding(context) {\n // https://web.archive.org/web/20170825024655/http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/\n // https://github.com/Modernizr/Modernizr/blob/master/feature-detects/canvas/winding.js\n context.rect(0, 0, 10, 10);\n context.rect(2, 2, 6, 6);\n return !context.isPointInPath(5, 5, 'evenodd');\n}\nfunction makeTextImage(canvas, context) {\n // Resizing the canvas cleans it\n canvas.width = 240;\n canvas.height = 60;\n context.textBaseline = 'alphabetic';\n context.fillStyle = '#f60';\n context.fillRect(100, 1, 62, 20);\n context.fillStyle = '#069';\n // It's important to use explicit built-in fonts in order to exclude the affect of font preferences\n // (there is a separate entropy source for them).\n context.font = '11pt \"Times New Roman\"';\n // The choice of emojis has a gigantic impact on rendering performance (especially in FF).\n // Some newer emojis cause it to slow down 50-200 times.\n // There must be no text to the right of the emoji, see https://github.com/fingerprintjs/fingerprintjs/issues/574\n // A bare emoji shouldn't be used because the canvas will change depending on the script encoding:\n // https://github.com/fingerprintjs/fingerprintjs/issues/66\n // Escape sequence shouldn't be used too because Terser will turn it into a bare unicode.\n var printedText = \"Cwm fjordbank gly \" + String.fromCharCode(55357, 56835) /* 😃 */;\n context.fillText(printedText, 2, 15);\n context.fillStyle = 'rgba(102, 204, 0, 0.2)';\n context.font = '18pt Arial';\n context.fillText(printedText, 4, 45);\n return save(canvas);\n}\nfunction makeGeometryImage(canvas, context) {\n // Resizing the canvas cleans it\n canvas.width = 122;\n canvas.height = 110;\n // Canvas blending\n // https://web.archive.org/web/20170826194121/http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/\n // http://jsfiddle.net/NDYV8/16/\n context.globalCompositeOperation = 'multiply';\n for (var _i = 0, _a = [\n ['#f2f', 40, 40],\n ['#2ff', 80, 40],\n ['#ff2', 60, 80],\n ]; _i < _a.length; _i++) {\n var _b = _a[_i], color = _b[0], x = _b[1], y = _b[2];\n context.fillStyle = color;\n context.beginPath();\n context.arc(x, y, 40, 0, Math.PI * 2, true);\n context.closePath();\n context.fill();\n }\n // Canvas winding\n // https://web.archive.org/web/20130913061632/http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/\n // http://jsfiddle.net/NDYV8/19/\n context.fillStyle = '#f9c';\n context.arc(60, 60, 60, 0, Math.PI * 2, true);\n context.arc(60, 60, 20, 0, Math.PI * 2, true);\n context.fill('evenodd');\n return save(canvas);\n}\nfunction save(canvas) {\n // TODO: look into: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob\n return canvas.toDataURL();\n}\n\n/**\n * This is a crude and primitive touch screen detection. It's not possible to currently reliably detect the availability\n * of a touch screen with a JS, without actually subscribing to a touch event.\n *\n * @see http://www.stucox.com/blog/you-cant-detect-a-touchscreen/\n * @see https://github.com/Modernizr/Modernizr/issues/548\n */\nfunction getTouchSupport() {\n var n = navigator;\n var maxTouchPoints = 0;\n var touchEvent;\n if (n.maxTouchPoints !== undefined) {\n maxTouchPoints = toInt(n.maxTouchPoints);\n }\n else if (n.msMaxTouchPoints !== undefined) {\n maxTouchPoints = n.msMaxTouchPoints;\n }\n try {\n document.createEvent('TouchEvent');\n touchEvent = true;\n }\n catch (_a) {\n touchEvent = false;\n }\n var touchStart = 'ontouchstart' in window;\n return {\n maxTouchPoints: maxTouchPoints,\n touchEvent: touchEvent,\n touchStart: touchStart,\n };\n}\n\nfunction getOsCpu() {\n return navigator.oscpu;\n}\n\nfunction getLanguages() {\n var n = navigator;\n var result = [];\n var language = n.language || n.userLanguage || n.browserLanguage || n.systemLanguage;\n if (language !== undefined) {\n result.push([language]);\n }\n if (Array.isArray(n.languages)) {\n // Starting from Chromium 86, there is only a single value in `navigator.language` in Incognito mode:\n // the value of `navigator.language`. Therefore the value is ignored in this browser.\n if (!(isChromium() && isChromium86OrNewer())) {\n result.push(n.languages);\n }\n }\n else if (typeof n.languages === 'string') {\n var languages = n.languages;\n if (languages) {\n result.push(languages.split(','));\n }\n }\n return result;\n}\n\nfunction getColorDepth() {\n return window.screen.colorDepth;\n}\n\nfunction getDeviceMemory() {\n // `navigator.deviceMemory` is a string containing a number in some unidentified cases\n return replaceNaN(toFloat(navigator.deviceMemory), undefined);\n}\n\nfunction getScreenResolution() {\n var s = screen;\n // Some browsers return screen resolution as strings, e.g. \"1200\", instead of a number, e.g. 1200.\n // I suspect it's done by certain plugins that randomize browser properties to prevent fingerprinting.\n // Some browsers even return screen resolution as not numbers.\n var parseDimension = function (value) { return replaceNaN(toInt(value), null); };\n var dimensions = [parseDimension(s.width), parseDimension(s.height)];\n dimensions.sort().reverse();\n return dimensions;\n}\n\nvar screenFrameCheckInterval = 2500;\nvar roundingPrecision = 10;\n// The type is readonly to protect from unwanted mutations\nvar screenFrameBackup;\nvar screenFrameSizeTimeoutId;\n/**\n * Starts watching the screen frame size. When a non-zero size appears, the size is saved and the watch is stopped.\n * Later, when `getScreenFrame` runs, it will return the saved non-zero size if the current size is null.\n *\n * This trick is required to mitigate the fact that the screen frame turns null in some cases.\n * See more on this at https://github.com/fingerprintjs/fingerprintjs/issues/568\n */\nfunction watchScreenFrame() {\n if (screenFrameSizeTimeoutId !== undefined) {\n return;\n }\n var checkScreenFrame = function () {\n var frameSize = getCurrentScreenFrame();\n if (isFrameSizeNull(frameSize)) {\n screenFrameSizeTimeoutId = setTimeout(checkScreenFrame, screenFrameCheckInterval);\n }\n else {\n screenFrameBackup = frameSize;\n screenFrameSizeTimeoutId = undefined;\n }\n };\n checkScreenFrame();\n}\nfunction getScreenFrame() {\n var _this = this;\n watchScreenFrame();\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var frameSize;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n frameSize = getCurrentScreenFrame();\n if (!isFrameSizeNull(frameSize)) return [3 /*break*/, 2];\n if (screenFrameBackup) {\n return [2 /*return*/, __spreadArrays(screenFrameBackup)];\n }\n if (!getFullscreenElement()) return [3 /*break*/, 2];\n // Some browsers set the screen frame to zero when programmatic fullscreen is on.\n // There is a chance of getting a non-zero frame after exiting the fullscreen.\n // See more on this at https://github.com/fingerprintjs/fingerprintjs/issues/568\n return [4 /*yield*/, exitFullscreen()];\n case 1:\n // Some browsers set the screen frame to zero when programmatic fullscreen is on.\n // There is a chance of getting a non-zero frame after exiting the fullscreen.\n // See more on this at https://github.com/fingerprintjs/fingerprintjs/issues/568\n _a.sent();\n frameSize = getCurrentScreenFrame();\n _a.label = 2;\n case 2:\n if (!isFrameSizeNull(frameSize)) {\n screenFrameBackup = frameSize;\n }\n return [2 /*return*/, frameSize];\n }\n });\n }); };\n}\n/**\n * Sometimes the available screen resolution changes a bit, e.g. 1900x1440 → 1900x1439. A possible reason: macOS Dock\n * shrinks to fit more icons when there is too little space. The rounding is used to mitigate the difference.\n */\nfunction getRoundedScreenFrame() {\n var _this = this;\n var screenFrameGetter = getScreenFrame();\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var frameSize, processSize;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, screenFrameGetter()];\n case 1:\n frameSize = _a.sent();\n processSize = function (sideSize) { return (sideSize === null ? null : round(sideSize, roundingPrecision)); };\n // It might look like I don't know about `for` and `map`.\n // In fact, such code is used to avoid TypeScript issues without using `as`.\n return [2 /*return*/, [processSize(frameSize[0]), processSize(frameSize[1]), processSize(frameSize[2]), processSize(frameSize[3])]];\n }\n });\n }); };\n}\nfunction getCurrentScreenFrame() {\n var s = screen;\n // Some browsers return screen resolution as strings, e.g. \"1200\", instead of a number, e.g. 1200.\n // I suspect it's done by certain plugins that randomize browser properties to prevent fingerprinting.\n //\n // Some browsers (IE, Edge ≤18) don't provide `screen.availLeft` and `screen.availTop`. The property values are\n // replaced with 0 in such cases to not lose the entropy from `screen.availWidth` and `screen.availHeight`.\n return [\n replaceNaN(toFloat(s.availTop), null),\n replaceNaN(toFloat(s.width) - toFloat(s.availWidth) - replaceNaN(toFloat(s.availLeft), 0), null),\n replaceNaN(toFloat(s.height) - toFloat(s.availHeight) - replaceNaN(toFloat(s.availTop), 0), null),\n replaceNaN(toFloat(s.availLeft), null),\n ];\n}\nfunction isFrameSizeNull(frameSize) {\n for (var i = 0; i < 4; ++i) {\n if (frameSize[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getHardwareConcurrency() {\n // sometimes hardware concurrency is a string\n return replaceNaN(toInt(navigator.hardwareConcurrency), undefined);\n}\n\nfunction getTimezone() {\n var _a;\n var DateTimeFormat = (_a = window.Intl) === null || _a === void 0 ? void 0 : _a.DateTimeFormat;\n if (DateTimeFormat) {\n var timezone = new DateTimeFormat().resolvedOptions().timeZone;\n if (timezone) {\n return timezone;\n }\n }\n // For browsers that don't support timezone names\n // The minus is intentional because the JS offset is opposite to the real offset\n var offset = -getTimezoneOffset();\n return \"UTC\" + (offset >= 0 ? '+' : '') + Math.abs(offset);\n}\nfunction getTimezoneOffset() {\n var currentYear = new Date().getFullYear();\n // The timezone offset may change over time due to daylight saving time (DST) shifts.\n // The non-DST timezone offset is used as the result timezone offset.\n // Since the DST season differs in the northern and the southern hemispheres,\n // both January and July timezones offsets are considered.\n return Math.max(\n // `getTimezoneOffset` returns a number as a string in some unidentified cases\n toFloat(new Date(currentYear, 0, 1).getTimezoneOffset()), toFloat(new Date(currentYear, 6, 1).getTimezoneOffset()));\n}\n\nfunction getSessionStorage() {\n try {\n return !!window.sessionStorage;\n }\n catch (error) {\n /* SecurityError when referencing it means it exists */\n return true;\n }\n}\n\n// https://bugzilla.mozilla.org/show_bug.cgi?id=781447\nfunction getLocalStorage() {\n try {\n return !!window.localStorage;\n }\n catch (e) {\n /* SecurityError when referencing it means it exists */\n return true;\n }\n}\n\nfunction getIndexedDB() {\n // IE and Edge don't allow accessing indexedDB in private mode, therefore IE and Edge will have different\n // visitor identifier in normal and private modes.\n if (isTrident() || isEdgeHTML()) {\n return undefined;\n }\n try {\n return !!window.indexedDB;\n }\n catch (e) {\n /* SecurityError when referencing it means it exists */\n return true;\n }\n}\n\nfunction getOpenDatabase() {\n return !!window.openDatabase;\n}\n\nfunction getCpuClass() {\n return navigator.cpuClass;\n}\n\nfunction getPlatform() {\n // Android Chrome 86 and 87 and Android Firefox 80 and 84 don't mock the platform value when desktop mode is requested\n var platform = navigator.platform;\n // iOS mocks the platform value when desktop version is requested: https://github.com/fingerprintjs/fingerprintjs/issues/514\n // iPad uses desktop mode by default since iOS 13\n // The value is 'MacIntel' on M1 Macs\n // The value is 'iPhone' on iPod Touch\n if (platform === 'MacIntel') {\n if (isWebKit() && !isDesktopSafari()) {\n return isIPad() ? 'iPad' : 'iPhone';\n }\n }\n return platform;\n}\n\nfunction getVendor() {\n return navigator.vendor || '';\n}\n\n/**\n * Checks for browser-specific (not engine specific) global variables to tell browsers with the same engine apart.\n * Only somewhat popular browsers are considered.\n */\nfunction getVendorFlavors() {\n var flavors = [];\n for (var _i = 0, _a = [\n // Blink and some browsers on iOS\n 'chrome',\n // Safari on macOS\n 'safari',\n // Chrome on iOS (checked in 85 on 13 and 87 on 14)\n '__crWeb',\n '__gCrWeb',\n // Yandex Browser on iOS, macOS and Android (checked in 21.2 on iOS 14, macOS and Android)\n 'yandex',\n // Yandex Browser on iOS (checked in 21.2 on 14)\n '__yb',\n '__ybro',\n // Firefox on iOS (checked in 32 on 14)\n '__firefox__',\n // Edge on iOS (checked in 46 on 14)\n '__edgeTrackingPreventionStatistics',\n 'webkit',\n // Opera Touch on iOS (checked in 2.6 on 14)\n 'oprt',\n // Samsung Internet on Android (checked in 11.1)\n 'samsungAr',\n // UC Browser on Android (checked in 12.10 and 13.0)\n 'ucweb',\n 'UCShellJava',\n // Puffin on Android (checked in 9.0)\n 'puffinDevice',\n ]; _i < _a.length; _i++) {\n var key = _a[_i];\n var value = window[key];\n if (value && typeof value === 'object') {\n flavors.push(key);\n }\n }\n return flavors.sort();\n}\n\n/**\n * navigator.cookieEnabled cannot detect custom or nuanced cookie blocking configurations. For example, when blocking\n * cookies via the Advanced Privacy Settings in IE9, it always returns true. And there have been issues in the past with\n * site-specific exceptions. Don't rely on it.\n *\n * @see https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cookies.js Taken from here\n */\nfunction areCookiesEnabled() {\n var d = document;\n // Taken from here: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cookies.js\n // navigator.cookieEnabled cannot detect custom or nuanced cookie blocking configurations. For example, when blocking\n // cookies via the Advanced Privacy Settings in IE9, it always returns true. And there have been issues in the past\n // with site-specific exceptions. Don't rely on it.\n // try..catch because some in situations `document.cookie` is exposed but throws a\n // SecurityError if you try to access it; e.g. documents created from data URIs\n // or in sandboxed iframes (depending on flags/context)\n try {\n // Create cookie\n d.cookie = 'cookietest=1; SameSite=Strict;';\n var result = d.cookie.indexOf('cookietest=') !== -1;\n // Delete cookie\n d.cookie = 'cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT';\n return result;\n }\n catch (e) {\n return false;\n }\n}\n\n/**\n * Only single element selector are supported (no operators like space, +, >, etc).\n * `embed` and `position: fixed;` will be considered as blocked anyway because it always has no offsetParent.\n * Avoid `iframe` and anything with `[src=]` because they produce excess HTTP requests.\n *\n * See docs/content_blockers.md to learn how to make the list\n */\nvar filters = {\n abpIndo: [\n '#Iklan-Melayang',\n '#Kolom-Iklan-728',\n '#SidebarIklan-wrapper',\n 'a[title=\"7naga poker\" i]',\n '[title=\"ALIENBOLA\" i]',\n ],\n abpvn: [\n '#quangcaomb',\n '.iosAdsiosAds-layout',\n '.quangcao',\n '[href^=\"https://r88.vn/\"]',\n '[href^=\"https://zbet.vn/\"]',\n ],\n adBlockFinland: [\n '.mainostila',\n '.sponsorit',\n '.ylamainos',\n 'a[href*=\"/clickthrgh.asp?\"]',\n 'a[href^=\"https://app.readpeak.com/ads\"]',\n ],\n adBlockPersian: [\n '#navbar_notice_50',\n 'a[href^=\"http://g1.v.fwmrm.net/ad/\"]',\n '.kadr',\n 'TABLE[width=\"140px\"]',\n '#divAgahi',\n ],\n adBlockWarningRemoval: ['#adblock-honeypot', '.adblocker-root', '.wp_adblock_detect'],\n adGuardAnnoyances: ['amp-embed[type=\"zen\"]', '.hs-sosyal', '#cookieconsentdiv', 'div[class^=\"app_gdpr\"]', '.as-oil'],\n adGuardBase: ['#ad-after', '#ad-p3', '.BetterJsPopOverlay', '#ad_300X250', '#bannerfloat22'],\n adGuardChinese: [\n // Disabled because not reproducible. Will be replaced during the next filter update.\n // '#piao_div_0[style*=\"width:140px;\"]',\n 'a[href*=\".ttz5.cn\"]',\n 'a[href*=\".yabovip2027.com/\"]',\n '.tm3all2h4b',\n '.cc5278_banner_ad',\n ],\n adGuardFrench: [\n '.zonepub',\n '[class*=\"_adLeaderboard\"]',\n '[id^=\"block-xiti_oas-\"]',\n 'a[href^=\"http://ptapjmp.com/\"]',\n 'a[href^=\"https://go.alvexo.com/\"]',\n ],\n adGuardGerman: [\n '.banneritemwerbung_head_1',\n '.boxstartwerbung',\n '.werbung3',\n 'a[href^=\"http://www.eis.de/index.phtml?refid=\"]',\n 'a[href^=\"https://www.tipico.com/?affiliateId=\"]',\n ],\n adGuardJapanese: [\n '#kauli_yad_1',\n '#ad-giftext',\n '#adsSPRBlock',\n 'a[href^=\"http://ad2.trafficgate.net/\"]',\n 'a[href^=\"http://www.rssad.jp/\"]',\n ],\n adGuardMobile: ['amp-auto-ads', '#mgid_iframe', '.amp_ad', 'amp-embed[type=\"24smi\"]', '#mgid_iframe1'],\n adGuardRussian: [\n 'a[href^=\"https://ya-distrib.ru/r/\"]',\n 'a[href^=\"https://ad.letmeads.com/\"]',\n '.reclama',\n 'div[id^=\"smi2adblock\"]',\n 'div[id^=\"AdFox_banner_\"]',\n ],\n adGuardSocial: [\n 'a[href^=\"//www.stumbleupon.com/submit?url=\"]',\n 'a[href^=\"//telegram.me/share/url?\"]',\n '.etsy-tweet',\n '#inlineShare',\n '.popup-social',\n ],\n adGuardSpanishPortuguese: [\n '#barraPublicidade',\n '#Publicidade',\n '#publiEspecial',\n '#queTooltip',\n '[href^=\"http://ads.glispa.com/\"]',\n ],\n adGuardTrackingProtection: [\n 'amp-embed[type=\"taboola\"]',\n '#qoo-counter',\n 'a[href^=\"http://click.hotlog.ru/\"]',\n 'a[href^=\"http://hitcounter.ru/top/stat.php\"]',\n 'a[href^=\"http://top.mail.ru/jump\"]',\n ],\n adGuardTurkish: [\n '#backkapat',\n '#reklami',\n 'a[href^=\"http://adserv.ontek.com.tr/\"]',\n 'a[href^=\"http://izlenzi.com/campaign/\"]',\n 'a[href^=\"http://www.installads.net/\"]',\n ],\n bulgarian: ['td#freenet_table_ads', '#adbody', '#ea_intext_div', '.lapni-pop-over', '#xenium_hot_offers'],\n easyList: ['#AD_banner_bottom', '#Ads_google_02', '#N-ad-article-rightRail-1', '#ad-fullbanner2', '#ad-zone-2'],\n easyListChina: [\n 'a[href*=\".wensixuetang.com/\"]',\n 'A[href*=\"/hth107.com/\"]',\n '.appguide-wrap[onclick*=\"bcebos.com\"]',\n '.frontpageAdvM',\n '#taotaole',\n ],\n easyListCookie: ['#adtoniq-msg-bar', '#CoockiesPage', '#CookieModal_cookiemodal', '#DO_CC_PANEL', '#ShowCookie'],\n easyListCzechSlovak: ['#onlajny-stickers', '#reklamni-box', '.reklama-megaboard', '.sklik', '[id^=\"sklikReklama\"]'],\n easyListDutch: [\n '#advertentie',\n '#vipAdmarktBannerBlock',\n '.adstekst',\n 'a[href^=\"https://xltube.nl/click/\"]',\n '#semilo-lrectangle',\n ],\n easyListGermany: [\n 'a[href^=\"http://www.hw-area.com/?dp=\"]',\n 'a[href^=\"https://ads.sunmaker.com/tracking.php?\"]',\n '.werbung-skyscraper2',\n '.bannergroup_werbung',\n '.ads_rechts',\n ],\n easyListItaly: [\n '.box_adv_annunci',\n '.sb-box-pubbliredazionale',\n 'a[href^=\"http://affiliazioniads.snai.it/\"]',\n 'a[href^=\"https://adserver.html.it/\"]',\n 'a[href^=\"https://affiliazioniads.snai.it/\"]',\n ],\n easyListLithuania: [\n '.reklamos_tarpas',\n '.reklamos_nuorodos',\n 'img[alt=\"Reklaminis skydelis\"]',\n 'img[alt=\"Dedikuoti.lt serveriai\"]',\n 'img[alt=\"Hostingas Serveriai.lt\"]',\n ],\n estonian: ['A[href*=\"http://pay4results24.eu\"]'],\n fanboyAnnoyances: [\n '#feedback-tab',\n '#taboola-below-article',\n '.feedburnerFeedBlock',\n '.widget-feedburner-counter',\n '[title=\"Subscribe to our blog\"]',\n ],\n fanboyAntiFacebook: ['.util-bar-module-firefly-visible'],\n fanboyEnhancedTrackers: [\n '.open.pushModal',\n '#issuem-leaky-paywall-articles-zero-remaining-nag',\n '#sovrn_container',\n 'div[class$=\"-hide\"][zoompage-fontsize][style=\"display: block;\"]',\n '.BlockNag__Card',\n ],\n fanboySocial: [\n '.td-tags-and-social-wrapper-box',\n '.twitterContainer',\n '.youtube-social',\n 'a[title^=\"Like us on Facebook\"]',\n 'img[alt^=\"Share on Digg\"]',\n ],\n frellwitSwedish: [\n 'a[href*=\"casinopro.se\"][target=\"_blank\"]',\n 'a[href*=\"doktor-se.onelink.me\"]',\n 'article.category-samarbete',\n 'div.holidAds',\n 'ul.adsmodern',\n ],\n greekAdBlock: [\n 'A[href*=\"adman.otenet.gr/click?\"]',\n 'A[href*=\"http://axiabanners.exodus.gr/\"]',\n 'A[href*=\"http://interactive.forthnet.gr/click?\"]',\n 'DIV.agores300',\n 'TABLE.advright',\n ],\n hungarian: [\n 'A[href*=\"ad.eval.hu\"]',\n 'A[href*=\"ad.netmedia.hu\"]',\n 'A[href*=\"daserver.ultraweb.hu\"]',\n '#cemp_doboz',\n '.optimonk-iframe-container',\n ],\n iDontCareAboutCookies: [\n '.alert-info[data-block-track*=\"CookieNotice\"]',\n '.ModuleTemplateCookieIndicator',\n '.o--cookies--container',\n '.cookie-msg-info-container',\n '#cookies-policy-sticky',\n ],\n icelandicAbp: ['A[href^=\"/framework/resources/forms/ads.aspx\"]'],\n latvian: [\n 'a[href=\"http://www.salidzini.lv/\"][style=\"display: block; width: 120px; height: 40px; overflow: hidden; position: relative;\"]',\n 'a[href=\"http://www.salidzini.lv/\"][style=\"display: block; width: 88px; height: 31px; overflow: hidden; position: relative;\"]',\n ],\n listKr: [\n 'a[href*=\"//kingtoon.slnk.kr\"]',\n 'a[href*=\"//playdsb.com/kr\"]',\n 'div.logly-lift-adz',\n 'div[data-widget_id=\"ml6EJ074\"]',\n 'ins.daum_ddn_area',\n ],\n listeAr: [\n '.geminiLB1Ad',\n '.right-and-left-sponsers',\n 'a[href*=\".aflam.info\"]',\n 'a[href*=\"booraq.org\"]',\n 'a[href*=\"dubizzle.com/ar/?utm_source=\"]',\n ],\n listeFr: [\n 'a[href^=\"http://promo.vador.com/\"]',\n '#adcontainer_recherche',\n 'a[href*=\"weborama.fr/fcgi-bin/\"]',\n '.site-pub-interstitiel',\n 'div[id^=\"crt-\"][data-criteo-id]',\n ],\n officialPolish: [\n '#ceneo-placeholder-ceneo-12',\n '[href^=\"https://aff.sendhub.pl/\"]',\n 'a[href^=\"http://advmanager.techfun.pl/redirect/\"]',\n 'a[href^=\"http://www.trizer.pl/?utm_source\"]',\n 'div#skapiec_ad',\n ],\n ro: [\n 'a[href^=\"//afftrk.altex.ro/Counter/Click\"]',\n 'a[href^=\"/magazin/\"]',\n 'a[href^=\"https://blackfridaysales.ro/trk/shop/\"]',\n 'a[href^=\"https://event.2performant.com/events/click\"]',\n 'a[href^=\"https://l.profitshare.ro/\"]',\n ],\n ruAd: [\n 'a[href*=\"//febrare.ru/\"]',\n 'a[href*=\"//utimg.ru/\"]',\n 'a[href*=\"://chikidiki.ru\"]',\n '#pgeldiz',\n '.yandex-rtb-block',\n ],\n thaiAds: ['a[href*=macau-uta-popup]', '#ads-google-middle_rectangle-group', '.ads300s', '.bumq', '.img-kosana'],\n webAnnoyancesUltralist: [\n '#mod-social-share-2',\n '#social-tools',\n '.ctpl-fullbanner',\n '.zergnet-recommend',\n '.yt.btn-link.btn-md.btn',\n ],\n};\n/**\n * The order of the returned array means nothing (it's always sorted alphabetically).\n *\n * Notice that the source is slightly unstable.\n * Safari provides a 2-taps way to disable all content blockers on a page temporarily.\n * Also content blockers can be disabled permanently for a domain, but it requires 4 taps.\n * So empty array shouldn't be treated as \"no blockers\", it should be treated as \"no signal\".\n * If you are a website owner, don't make your visitors want to disable content blockers.\n */\nfunction getDomBlockers(_a) {\n var debug = (_a === void 0 ? {} : _a).debug;\n return __awaiter(this, void 0, void 0, function () {\n var filterNames, allSelectors, blockedSelectors, activeBlockers;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (!isApplicable()) {\n return [2 /*return*/, undefined];\n }\n filterNames = Object.keys(filters);\n allSelectors = (_b = []).concat.apply(_b, filterNames.map(function (filterName) { return filters[filterName]; }));\n return [4 /*yield*/, getBlockedSelectors(allSelectors)];\n case 1:\n blockedSelectors = _c.sent();\n if (debug) {\n printDebug(blockedSelectors);\n }\n activeBlockers = filterNames.filter(function (filterName) {\n var selectors = filters[filterName];\n var blockedCount = countTruthy(selectors.map(function (selector) { return blockedSelectors[selector]; }));\n return blockedCount > selectors.length * 0.6;\n });\n activeBlockers.sort();\n return [2 /*return*/, activeBlockers];\n }\n });\n });\n}\nfunction isApplicable() {\n // Safari (desktop and mobile) and all Android browsers keep content blockers in both regular and private mode\n return isWebKit() || isAndroid();\n}\nfunction getBlockedSelectors(selectors) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var d, root, elements, blockedSelectors, i, element, holder, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n d = document;\n root = d.createElement('div');\n elements = new Array(selectors.length);\n blockedSelectors = {} // Set() isn't used just in case somebody need older browser support\n ;\n forceShow(root);\n // First create all elements that can be blocked. If the DOM steps below are done in a single cycle,\n // browser will alternate tree modification and layout reading, that is very slow.\n for (i = 0; i < selectors.length; ++i) {\n element = selectorToElement(selectors[i]);\n holder = d.createElement('div') // Protects from unwanted effects of `+` and `~` selectors of filters\n ;\n forceShow(holder);\n holder.appendChild(element);\n root.appendChild(holder);\n elements[i] = element;\n }\n _b.label = 1;\n case 1:\n if (!!d.body) return [3 /*break*/, 3];\n return [4 /*yield*/, wait(50)];\n case 2:\n _b.sent();\n return [3 /*break*/, 1];\n case 3:\n d.body.appendChild(root);\n try {\n // Then check which of the elements are blocked\n for (i = 0; i < selectors.length; ++i) {\n if (!elements[i].offsetParent) {\n blockedSelectors[selectors[i]] = true;\n }\n }\n }\n finally {\n // Then remove the elements\n (_a = root.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(root);\n }\n return [2 /*return*/, blockedSelectors];\n }\n });\n });\n}\nfunction forceShow(element) {\n element.style.setProperty('display', 'block', 'important');\n}\nfunction printDebug(blockedSelectors) {\n var message = 'DOM blockers debug:\\n```';\n for (var _i = 0, _a = Object.keys(filters); _i < _a.length; _i++) {\n var filterName = _a[_i];\n message += \"\\n\" + filterName + \":\";\n for (var _b = 0, _c = filters[filterName]; _b < _c.length; _b++) {\n var selector = _c[_b];\n message += \"\\n \" + selector + \" \" + (blockedSelectors[selector] ? '🚫' : '➡️');\n }\n }\n // console.log is ok here because it's under a debug clause\n // eslint-disable-next-line no-console\n console.log(message + \"\\n```\");\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/color-gamut\n */\nfunction getColorGamut() {\n // rec2020 includes p3 and p3 includes srgb\n for (var _i = 0, _a = ['rec2020', 'p3', 'srgb']; _i < _a.length; _i++) {\n var gamut = _a[_i];\n if (matchMedia(\"(color-gamut: \" + gamut + \")\").matches) {\n return gamut;\n }\n }\n return undefined;\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/inverted-colors\n */\nfunction areColorsInverted() {\n if (doesMatch('inverted')) {\n return true;\n }\n if (doesMatch('none')) {\n return false;\n }\n return undefined;\n}\nfunction doesMatch(value) {\n return matchMedia(\"(inverted-colors: \" + value + \")\").matches;\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/forced-colors\n */\nfunction areColorsForced() {\n if (doesMatch$1('active')) {\n return true;\n }\n if (doesMatch$1('none')) {\n return false;\n }\n return undefined;\n}\nfunction doesMatch$1(value) {\n return matchMedia(\"(forced-colors: \" + value + \")\").matches;\n}\n\nvar maxValueToCheck = 100;\n/**\n * If the display is monochrome (e.g. black&white), the value will be ≥0 and will mean the number of bits per pixel.\n * If the display is not monochrome, the returned value will be 0.\n * If the browser doesn't support this feature, the returned value will be undefined.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/monochrome\n */\nfunction getMonochromeDepth() {\n if (!matchMedia('(min-monochrome: 0)').matches) {\n // The media feature isn't supported by the browser\n return undefined;\n }\n // A variation of binary search algorithm can be used here.\n // But since expected values are very small (≤10), there is no sense in adding the complexity.\n for (var i = 0; i <= maxValueToCheck; ++i) {\n if (matchMedia(\"(max-monochrome: \" + i + \")\").matches) {\n return i;\n }\n }\n throw new Error('Too high value');\n}\n\n/**\n * @see https://www.w3.org/TR/mediaqueries-5/#prefers-contrast\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast\n */\nfunction getContrastPreference() {\n if (doesMatch$2('no-preference')) {\n return 0 /* None */;\n }\n // The sources contradict on the keywords. Probably 'high' and 'low' will never be implemented.\n // Need to check it when all browsers implement the feature.\n if (doesMatch$2('high') || doesMatch$2('more')) {\n return 1 /* More */;\n }\n if (doesMatch$2('low') || doesMatch$2('less')) {\n return -1 /* Less */;\n }\n if (doesMatch$2('forced')) {\n return 10 /* ForcedColors */;\n }\n return undefined;\n}\nfunction doesMatch$2(value) {\n return matchMedia(\"(prefers-contrast: \" + value + \")\").matches;\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion\n */\nfunction isMotionReduced() {\n if (doesMatch$3('reduce')) {\n return true;\n }\n if (doesMatch$3('no-preference')) {\n return false;\n }\n return undefined;\n}\nfunction doesMatch$3(value) {\n return matchMedia(\"(prefers-reduced-motion: \" + value + \")\").matches;\n}\n\n/**\n * @see https://www.w3.org/TR/mediaqueries-5/#dynamic-range\n */\nfunction isHDR() {\n if (doesMatch$4('high')) {\n return true;\n }\n if (doesMatch$4('standard')) {\n return false;\n }\n return undefined;\n}\nfunction doesMatch$4(value) {\n return matchMedia(\"(dynamic-range: \" + value + \")\").matches;\n}\n\nvar M = Math; // To reduce the minified code size\nvar fallbackFn = function () { return 0; };\n/**\n * @see https://gitlab.torproject.org/legacy/trac/-/issues/13018\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=531915\n */\nfunction getMathFingerprint() {\n // Native operations\n var acos = M.acos || fallbackFn;\n var acosh = M.acosh || fallbackFn;\n var asin = M.asin || fallbackFn;\n var asinh = M.asinh || fallbackFn;\n var atanh = M.atanh || fallbackFn;\n var atan = M.atan || fallbackFn;\n var sin = M.sin || fallbackFn;\n var sinh = M.sinh || fallbackFn;\n var cos = M.cos || fallbackFn;\n var cosh = M.cosh || fallbackFn;\n var tan = M.tan || fallbackFn;\n var tanh = M.tanh || fallbackFn;\n var exp = M.exp || fallbackFn;\n var expm1 = M.expm1 || fallbackFn;\n var log1p = M.log1p || fallbackFn;\n // Operation polyfills\n var powPI = function (value) { return M.pow(M.PI, value); };\n var acoshPf = function (value) { return M.log(value + M.sqrt(value * value - 1)); };\n var asinhPf = function (value) { return M.log(value + M.sqrt(value * value + 1)); };\n var atanhPf = function (value) { return M.log((1 + value) / (1 - value)) / 2; };\n var sinhPf = function (value) { return M.exp(value) - 1 / M.exp(value) / 2; };\n var coshPf = function (value) { return (M.exp(value) + 1 / M.exp(value)) / 2; };\n var expm1Pf = function (value) { return M.exp(value) - 1; };\n var tanhPf = function (value) { return (M.exp(2 * value) - 1) / (M.exp(2 * value) + 1); };\n var log1pPf = function (value) { return M.log(1 + value); };\n // Note: constant values are empirical\n return {\n acos: acos(0.123124234234234242),\n acosh: acosh(1e308),\n acoshPf: acoshPf(1e154),\n asin: asin(0.123124234234234242),\n asinh: asinh(1),\n asinhPf: asinhPf(1),\n atanh: atanh(0.5),\n atanhPf: atanhPf(0.5),\n atan: atan(0.5),\n sin: sin(-1e300),\n sinh: sinh(1),\n sinhPf: sinhPf(1),\n cos: cos(10.000000000123),\n cosh: cosh(1),\n coshPf: coshPf(1),\n tan: tan(-1e300),\n tanh: tanh(1),\n tanhPf: tanhPf(1),\n exp: exp(1),\n expm1: expm1(1),\n expm1Pf: expm1Pf(1),\n log1p: log1p(10),\n log1pPf: log1pPf(10),\n powPI: powPI(-100),\n };\n}\n\n/**\n * We use m or w because these two characters take up the maximum width.\n * Also there are a couple of ligatures.\n */\nvar defaultText = 'mmMwWLliI0fiflO&1';\n/**\n * Settings of text blocks to measure. The keys are random but persistent words.\n */\nvar presets = {\n /**\n * The default font. User can change it in desktop Chrome, desktop Firefox, IE 11,\n * Android Chrome (but only when the size is ≥ than the default) and Android Firefox.\n */\n default: [],\n /** OS font on macOS. User can change its size and weight. Applies after Safari restart. */\n apple: [{ font: '-apple-system-body' }],\n /** User can change it in desktop Chrome and desktop Firefox. */\n serif: [{ fontFamily: 'serif' }],\n /** User can change it in desktop Chrome and desktop Firefox. */\n sans: [{ fontFamily: 'sans-serif' }],\n /** User can change it in desktop Chrome and desktop Firefox. */\n mono: [{ fontFamily: 'monospace' }],\n /**\n * Check the smallest allowed font size. User can change it in desktop Chrome, desktop Firefox and desktop Safari.\n * The height can be 0 in Chrome on a retina display.\n */\n min: [{ fontSize: '1px' }],\n /** Tells one OS from another in desktop Chrome. */\n system: [{ fontFamily: 'system-ui' }],\n};\n/**\n * The result is a dictionary of the width of the text samples.\n * Heights aren't included because they give no extra entropy and are unstable.\n *\n * The result is very stable in IE 11, Edge 18 and Safari 14.\n * The result changes when the OS pixel density changes in Chromium 87. The real pixel density is required to solve,\n * but seems like it's impossible: https://stackoverflow.com/q/1713771/1118709.\n * The \"min\" and the \"mono\" (only on Windows) value may change when the page is zoomed in Firefox 87.\n */\nfunction getFontPreferences() {\n return withNaturalFonts(function (document, container) {\n var elements = {};\n var sizes = {};\n // First create all elements to measure. If the DOM steps below are done in a single cycle,\n // browser will alternate tree modification and layout reading, that is very slow.\n for (var _i = 0, _a = Object.keys(presets); _i < _a.length; _i++) {\n var key = _a[_i];\n var _b = presets[key], _c = _b[0], style = _c === void 0 ? {} : _c, _d = _b[1], text = _d === void 0 ? defaultText : _d;\n var element = document.createElement('span');\n element.textContent = text;\n element.style.whiteSpace = 'nowrap';\n for (var _e = 0, _f = Object.keys(style); _e < _f.length; _e++) {\n var name_1 = _f[_e];\n var value = style[name_1];\n if (value !== undefined) {\n element.style[name_1] = value;\n }\n }\n elements[key] = element;\n container.appendChild(document.createElement('br'));\n container.appendChild(element);\n }\n // Then measure the created elements\n for (var _g = 0, _h = Object.keys(presets); _g < _h.length; _g++) {\n var key = _h[_g];\n sizes[key] = elements[key].getBoundingClientRect().width;\n }\n return sizes;\n });\n}\n/**\n * Creates a DOM environment that provides the most natural font available, including Android OS font.\n * Measurements of the elements are zoom-independent.\n * Don't put a content to measure inside an absolutely positioned element.\n */\nfunction withNaturalFonts(action, containerWidthPx) {\n if (containerWidthPx === void 0) { containerWidthPx = 4000; }\n /*\n * Requirements for Android Chrome to apply the system font size to a text inside an iframe:\n * - The iframe mustn't have a `display: none;` style;\n * - The text mustn't be positioned absolutely;\n * - The text block must be wide enough.\n * 2560px on some devices in portrait orientation for the biggest font size option (32px);\n * - There must be much enough text to form a few lines (I don't know the exact numbers);\n * - The text must have the `text-size-adjust: none` style. Otherwise the text will scale in \"Desktop site\" mode;\n *\n * Requirements for Android Firefox to apply the system font size to a text inside an iframe:\n * - The iframe document must have a header: ``.\n * The only way to set it is to use the `srcdoc` attribute of the iframe;\n * - The iframe content must get loaded before adding extra content with JavaScript;\n *\n * https://example.com as the iframe target always inherits Android font settings so it can be used as a reference.\n *\n * Observations on how page zoom affects the measurements:\n * - macOS Safari 11.1, 12.1, 13.1, 14.0: zoom reset + offsetWidth = 100% reliable;\n * - macOS Safari 11.1, 12.1, 13.1, 14.0: zoom reset + getBoundingClientRect = 100% reliable;\n * - macOS Safari 14.0: offsetWidth = 5% fluctuation;\n * - macOS Safari 14.0: getBoundingClientRect = 5% fluctuation;\n * - iOS Safari 9, 10, 11.0, 12.0: haven't found a way to zoom a page (pinch doesn't change layout);\n * - iOS Safari 13.1, 14.0: zoom reset + offsetWidth = 100% reliable;\n * - iOS Safari 13.1, 14.0: zoom reset + getBoundingClientRect = 100% reliable;\n * - iOS Safari 14.0: offsetWidth = 100% reliable;\n * - iOS Safari 14.0: getBoundingClientRect = 100% reliable;\n * - Chrome 42, 65, 80, 87: zoom 1/devicePixelRatio + offsetWidth = 1px fluctuation;\n * - Chrome 42, 65, 80, 87: zoom 1/devicePixelRatio + getBoundingClientRect = 100% reliable;\n * - Chrome 87: offsetWidth = 1px fluctuation;\n * - Chrome 87: getBoundingClientRect = 0.7px fluctuation;\n * - Firefox 48, 51: offsetWidth = 10% fluctuation;\n * - Firefox 48, 51: getBoundingClientRect = 10% fluctuation;\n * - Firefox 52, 53, 57, 62, 66, 67, 68, 71, 75, 80, 84: offsetWidth = width 100% reliable, height 10% fluctuation;\n * - Firefox 52, 53, 57, 62, 66, 67, 68, 71, 75, 80, 84: getBoundingClientRect = width 100% reliable, height 10%\n * fluctuation;\n * - Android Chrome 86: haven't found a way to zoom a page (pinch doesn't change layout);\n * - Android Firefox 84: font size in accessibility settings changes all the CSS sizes, but offsetWidth and\n * getBoundingClientRect keep measuring with regular units, so the size reflects the font size setting and doesn't\n * fluctuate;\n * - IE 11, Edge 18: zoom 1/devicePixelRatio + offsetWidth = 100% reliable;\n * - IE 11, Edge 18: zoom 1/devicePixelRatio + getBoundingClientRect = reflects the zoom level;\n * - IE 11, Edge 18: offsetWidth = 100% reliable;\n * - IE 11, Edge 18: getBoundingClientRect = 100% reliable;\n */\n return withIframe(function (_, iframeWindow) {\n var iframeDocument = iframeWindow.document;\n var iframeBody = iframeDocument.body;\n var bodyStyle = iframeBody.style;\n bodyStyle.width = containerWidthPx + \"px\";\n bodyStyle.webkitTextSizeAdjust = bodyStyle.textSizeAdjust = 'none';\n // See the big comment above\n if (isChromium()) {\n iframeBody.style.zoom = \"\" + 1 / iframeWindow.devicePixelRatio;\n }\n else if (isWebKit()) {\n iframeBody.style.zoom = 'reset';\n }\n // See the big comment above\n var linesOfText = iframeDocument.createElement('div');\n linesOfText.textContent = __spreadArrays(Array((containerWidthPx / 20) << 0)).map(function () { return 'word'; }).join(' ');\n iframeBody.appendChild(linesOfText);\n return action(iframeDocument, iframeBody);\n }, '');\n}\n\n/**\n * The list of entropy sources used to make visitor identifiers.\n *\n * This value isn't restricted by Semantic Versioning, i.e. it may be changed without bumping minor or major version of\n * this package.\n */\nvar sources = {\n // READ FIRST:\n // See https://github.com/fingerprintjs/fingerprintjs/blob/master/contributing.md#how-to-make-an-entropy-source\n // to learn how entropy source works and how to make your own.\n // The sources run in this exact order.\n // The asynchronous sources are at the start to run in parallel with other sources.\n fonts: getFonts,\n domBlockers: getDomBlockers,\n fontPreferences: getFontPreferences,\n audio: getAudioFingerprint,\n screenFrame: getRoundedScreenFrame,\n osCpu: getOsCpu,\n languages: getLanguages,\n colorDepth: getColorDepth,\n deviceMemory: getDeviceMemory,\n screenResolution: getScreenResolution,\n hardwareConcurrency: getHardwareConcurrency,\n timezone: getTimezone,\n sessionStorage: getSessionStorage,\n localStorage: getLocalStorage,\n indexedDB: getIndexedDB,\n openDatabase: getOpenDatabase,\n cpuClass: getCpuClass,\n platform: getPlatform,\n plugins: getPlugins,\n canvas: getCanvasFingerprint,\n touchSupport: getTouchSupport,\n vendor: getVendor,\n vendorFlavors: getVendorFlavors,\n cookiesEnabled: areCookiesEnabled,\n colorGamut: getColorGamut,\n invertedColors: areColorsInverted,\n forcedColors: areColorsForced,\n monochrome: getMonochromeDepth,\n contrast: getContrastPreference,\n reducedMotion: isMotionReduced,\n hdr: isHDR,\n math: getMathFingerprint,\n};\n/**\n * Loads the built-in entropy sources.\n * Returns a function that collects the entropy components to make the visitor identifier.\n */\nfunction loadBuiltinSources(options) {\n return loadSources(sources, options, []);\n}\n\nvar commentTemplate = '$ if upgrade to Pro: https://fpjs.dev/pro';\nfunction getConfidence(components) {\n var openConfidenceScore = getOpenConfidenceScore(components);\n var proConfidenceScore = deriveProConfidenceScore(openConfidenceScore);\n return { score: openConfidenceScore, comment: commentTemplate.replace(/\\$/g, \"\" + proConfidenceScore) };\n}\nfunction getOpenConfidenceScore(components) {\n // In order to calculate the true probability of the visitor identifier being correct, we need to know the number of\n // website visitors (the higher the number, the less the probability because the fingerprint entropy is limited).\n // JS agent doesn't know the number of visitors, so we can only do an approximate assessment.\n if (isAndroid()) {\n return 0.4;\n }\n // Safari (mobile and desktop)\n if (isWebKit()) {\n return isDesktopSafari() ? 0.5 : 0.3;\n }\n var platform = components.platform.value || '';\n // Windows\n if (/^Win/.test(platform)) {\n // The score is greater than on macOS because of the higher variety of devices running Windows.\n // Chrome provides more entropy than Firefox according too\n // https://netmarketshare.com/browser-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22platform%22%3A%7B%22%24in%22%3A%5B%22Windows%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22browser%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22browsersDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222019-11%22%2C%22dateEnd%22%3A%222020-10%22%2C%22segments%22%3A%22-1000%22%7D\n // So we assign the same score to them.\n return 0.6;\n }\n // macOS\n if (/^Mac/.test(platform)) {\n // Chrome provides more entropy than Safari and Safari provides more entropy than Firefox.\n // Chrome is more popular than Safari and Safari is more popular than Firefox according to\n // https://netmarketshare.com/browser-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22platform%22%3A%7B%22%24in%22%3A%5B%22Mac%20OS%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22browser%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22browsersDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222019-11%22%2C%22dateEnd%22%3A%222020-10%22%2C%22segments%22%3A%22-1000%22%7D\n // So we assign the same score to them.\n return 0.5;\n }\n // Another platform, e.g. a desktop Linux. It's rare, so it should be pretty unique.\n return 0.7;\n}\nfunction deriveProConfidenceScore(openConfidenceScore) {\n return round(0.99 + 0.01 * openConfidenceScore, 0.0001);\n}\n\nfunction componentsToCanonicalString(components) {\n var result = '';\n for (var _i = 0, _a = Object.keys(components).sort(); _i < _a.length; _i++) {\n var componentKey = _a[_i];\n var component = components[componentKey];\n var value = component.error ? 'error' : JSON.stringify(component.value);\n result += \"\" + (result ? '|' : '') + componentKey.replace(/([:|\\\\])/g, '\\\\$1') + \":\" + value;\n }\n return result;\n}\nfunction componentsToDebugString(components) {\n return JSON.stringify(components, function (_key, value) {\n if (value instanceof Error) {\n return errorToObject(value);\n }\n return value;\n }, 2);\n}\nfunction hashComponents(components) {\n return x64hash128(componentsToCanonicalString(components));\n}\n/**\n * Makes a GetResult implementation that calculates the visitor id hash on demand.\n * Designed for optimisation.\n */\nfunction makeLazyGetResult(components) {\n var visitorIdCache;\n // This function runs very fast, so there is no need to make it lazy\n var confidence = getConfidence(components);\n // A plain class isn't used because its getters and setters aren't enumerable.\n return {\n get visitorId() {\n if (visitorIdCache === undefined) {\n visitorIdCache = hashComponents(this.components);\n }\n return visitorIdCache;\n },\n set visitorId(visitorId) {\n visitorIdCache = visitorId;\n },\n confidence: confidence,\n components: components,\n version: version,\n };\n}\n/**\n * A delay is required to ensure consistent entropy components.\n * See https://github.com/fingerprintjs/fingerprintjs/issues/254\n * and https://github.com/fingerprintjs/fingerprintjs/issues/307\n * and https://github.com/fingerprintjs/fingerprintjs/commit/945633e7c5f67ae38eb0fea37349712f0e669b18\n */\nfunction prepareForSources(delayFallback) {\n if (delayFallback === void 0) { delayFallback = 50; }\n // A proper deadline is unknown. Let it be twice the fallback timeout so that both cases have the same average time.\n return requestIdleCallbackIfAvailable(delayFallback, delayFallback * 2);\n}\n/**\n * The function isn't exported from the index file to not allow to call it without `load()`.\n * The hiding gives more freedom for future non-breaking updates.\n *\n * A factory function is used instead of a class to shorten the attribute names in the minified code.\n * Native private class fields could've been used, but TypeScript doesn't allow them with `\"target\": \"es5\"`.\n */\nfunction makeAgent(getComponents, debug) {\n var creationTime = Date.now();\n return {\n get: function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var startTime, components, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n startTime = Date.now();\n return [4 /*yield*/, getComponents()];\n case 1:\n components = _a.sent();\n result = makeLazyGetResult(components);\n if (debug || (options === null || options === void 0 ? void 0 : options.debug)) {\n // console.log is ok here because it's under a debug clause\n // eslint-disable-next-line no-console\n console.log(\"Copy the text below to get the debug data:\\n\\n```\\nversion: \" + result.version + \"\\nuserAgent: \" + navigator.userAgent + \"\\ntimeBetweenLoadAndGet: \" + (startTime - creationTime) + \"\\nvisitorId: \" + result.visitorId + \"\\ncomponents: \" + componentsToDebugString(components) + \"\\n```\");\n }\n return [2 /*return*/, result];\n }\n });\n });\n },\n };\n}\n/**\n * Sends an unpersonalized AJAX request to collect installation statistics\n */\nfunction monitor() {\n // The FingerprintJS CDN (https://github.com/fingerprintjs/cdn) replaces `window.__fpjs_d_m` with `true`\n if (window.__fpjs_d_m || Math.random() >= 0.001) {\n return;\n }\n try {\n var request = new XMLHttpRequest();\n request.open('get', \"https://m1.openfpcdn.io/fingerprintjs/v\" + version + \"/npm-monitoring\", true);\n request.send();\n }\n catch (error) {\n // console.error is ok here because it's an unexpected error handler\n // eslint-disable-next-line no-console\n console.error(error);\n }\n}\n/**\n * Builds an instance of Agent and waits a delay required for a proper operation.\n */\nfunction load(_a) {\n var _b = _a === void 0 ? {} : _a, delayFallback = _b.delayFallback, debug = _b.debug, _c = _b.monitoring, monitoring = _c === void 0 ? true : _c;\n return __awaiter(this, void 0, void 0, function () {\n var getComponents;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (monitoring) {\n monitor();\n }\n return [4 /*yield*/, prepareForSources(delayFallback)];\n case 1:\n _d.sent();\n getComponents = loadBuiltinSources({ debug: debug });\n return [2 /*return*/, makeAgent(getComponents, debug)];\n }\n });\n });\n}\n\n// The default export is a syntax sugar (`import * as FP from '...' → import FP from '...'`).\n// It should contain all the public exported values.\nvar index = { load: load, hashComponents: hashComponents, componentsToDebugString: componentsToDebugString };\n// The exports below are for private usage. They may change unexpectedly. Use them at your own risk.\n/** Not documented, out of Semantic Versioning, usage is at your own risk */\nvar murmurX64Hash128 = x64hash128;\n\nexport default index;\nexport { componentsToDebugString, getFullscreenElement, getScreenFrame, hashComponents, isAndroid, isChromium, isDesktopSafari, isEdgeHTML, isGecko, isTrident, isWebKit, load, loadSources, murmurX64Hash128, prepareForSources, sources };\n","(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n var Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n Object.defineProperty(this, 'listeners', {\n value: {},\n writable: true,\n configurable: true\n });\n }\n\n _createClass(Emitter, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback, options) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push({\n callback: callback,\n options: options\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (!(type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[type];\n\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i].callback === callback) {\n stack.splice(i, 1);\n return;\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (!(event.type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[event.type];\n var stackToCall = stack.slice();\n\n for (var i = 0, l = stackToCall.length; i < l; i++) {\n var listener = stackToCall[i];\n\n try {\n listener.callback.call(this, event);\n } catch (e) {\n Promise.resolve().then(function () {\n throw e;\n });\n }\n\n if (listener.options && listener.options.once) {\n this.removeEventListener(event.type, listener.callback);\n }\n }\n\n return !event.defaultPrevented;\n }\n }]);\n\n return Emitter;\n }();\n\n var AbortSignal = /*#__PURE__*/function (_Emitter) {\n _inherits(AbortSignal, _Emitter);\n\n var _super = _createSuper(AbortSignal);\n\n function AbortSignal() {\n var _this;\n\n _classCallCheck(this, AbortSignal);\n\n _this = _super.call(this); // Some versions of babel does not transpile super() correctly for IE <= 10, if the parent\n // constructor has failed to run, then \"this.listeners\" will still be undefined and then we call\n // the parent constructor directly instead as a workaround. For general details, see babel bug:\n // https://github.com/babel/babel/issues/3041\n // This hack was added as a fix for the issue described here:\n // https://github.com/Financial-Times/polyfill-library/pull/59#issuecomment-477558042\n\n if (!_this.listeners) {\n Emitter.call(_assertThisInitialized(_this));\n } // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'aborted', {\n value: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'onabort', {\n value: null,\n writable: true,\n configurable: true\n });\n return _this;\n }\n\n _createClass(AbortSignal, [{\n key: \"toString\",\n value: function toString() {\n return '[object AbortSignal]';\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (event.type === 'abort') {\n this.aborted = true;\n\n if (typeof this.onabort === 'function') {\n this.onabort.call(this, event);\n }\n }\n\n _get(_getPrototypeOf(AbortSignal.prototype), \"dispatchEvent\", this).call(this, event);\n }\n }]);\n\n return AbortSignal;\n }(Emitter);\n var AbortController = /*#__PURE__*/function () {\n function AbortController() {\n _classCallCheck(this, AbortController);\n\n // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n Object.defineProperty(this, 'signal', {\n value: new AbortSignal(),\n writable: true,\n configurable: true\n });\n }\n\n _createClass(AbortController, [{\n key: \"abort\",\n value: function abort() {\n var event;\n\n try {\n event = new Event('abort');\n } catch (e) {\n if (typeof document !== 'undefined') {\n if (!document.createEvent) {\n // For Internet Explorer 8:\n event = document.createEventObject();\n event.type = 'abort';\n } else {\n // For Internet Explorer 11:\n event = document.createEvent('Event');\n event.initEvent('abort', false, false);\n }\n } else {\n // Fallback where document isn't available:\n event = {\n type: 'abort',\n bubbles: false,\n cancelable: false\n };\n }\n }\n\n this.signal.dispatchEvent(event);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return '[object AbortController]';\n }\n }]);\n\n return AbortController;\n }();\n\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n // These are necessary to make sure that we get correct output for:\n // Object.prototype.toString.call(new AbortController())\n AbortController.prototype[Symbol.toStringTag] = 'AbortController';\n AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n }\n\n function polyfillNeeded(self) {\n if (self.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n console.log('__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill');\n return true;\n } // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // so the below feature detection needs the !self.AbortController part.\n // The Request.prototype check is also needed because Safari versions 11.1.2\n // up to and including 12.1.x has a window.AbortController present but still\n // does NOT correctly implement abortable fetch:\n // https://bugs.webkit.org/show_bug.cgi?id=174980#c2\n\n\n return typeof self.Request === 'function' && !self.Request.prototype.hasOwnProperty('signal') || !self.AbortController;\n }\n\n /**\n * Note: the \"fetch.Request\" default value is available for fetch imported from\n * the \"node-fetch\" package and not in browsers. This is OK since browsers\n * will be importing umd-polyfill.js from that path \"self\" is passed the\n * decorator so the default value will not be used (because browsers that define\n * fetch also has Request). One quirky setup where self.fetch exists but\n * self.Request does not is when the \"unfetch\" minimal fetch polyfill is used\n * on top of IE11; for this case the browser will try to use the fetch.Request\n * default value which in turn will be undefined but then then \"if (Request)\"\n * will ensure that you get a patched fetch but still no Request (as expected).\n * @param {fetch, Request = fetch.Request}\n * @returns {fetch: abortableFetch, Request: AbortableRequest}\n */\n\n function abortableFetchDecorator(patchTargets) {\n if ('function' === typeof patchTargets) {\n patchTargets = {\n fetch: patchTargets\n };\n }\n\n var _patchTargets = patchTargets,\n fetch = _patchTargets.fetch,\n _patchTargets$Request = _patchTargets.Request,\n NativeRequest = _patchTargets$Request === void 0 ? fetch.Request : _patchTargets$Request,\n NativeAbortController = _patchTargets.AbortController,\n _patchTargets$__FORCE = _patchTargets.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL = _patchTargets$__FORCE === void 0 ? false : _patchTargets$__FORCE;\n\n if (!polyfillNeeded({\n fetch: fetch,\n Request: NativeRequest,\n AbortController: NativeAbortController,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL: __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL\n })) {\n return {\n fetch: fetch,\n Request: Request\n };\n }\n\n var Request = NativeRequest; // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // hence we only patch it if it's available. Also we don't patch it if signal\n // is already available on the Request prototype because in this case support\n // is present and the patching below can cause a crash since it assigns to\n // request.signal which is technically a read-only property. This latter error\n // happens when you run the main5.js node-fetch example in the repo\n // \"abortcontroller-polyfill-examples\". The exact error is:\n // request.signal = init.signal;\n // ^\n // TypeError: Cannot set property signal of # which has only a getter\n\n if (Request && !Request.prototype.hasOwnProperty('signal') || __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n Request = function Request(input, init) {\n var signal;\n\n if (init && init.signal) {\n signal = init.signal; // Never pass init.signal to the native Request implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to construct 'Request': member signal is not of type AbortSignal.\n\n delete init.signal;\n }\n\n var request = new NativeRequest(input, init);\n\n if (signal) {\n Object.defineProperty(request, 'signal', {\n writable: false,\n enumerable: false,\n configurable: true,\n value: signal\n });\n }\n\n return request;\n };\n\n Request.prototype = NativeRequest.prototype;\n }\n\n var realFetch = fetch;\n\n var abortableFetch = function abortableFetch(input, init) {\n var signal = Request && Request.prototype.isPrototypeOf(input) ? input.signal : init ? init.signal : undefined;\n\n if (signal) {\n var abortError;\n\n try {\n abortError = new DOMException('Aborted', 'AbortError');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n abortError = new Error('Aborted');\n abortError.name = 'AbortError';\n } // Return early if already aborted, thus avoiding making an HTTP request\n\n\n if (signal.aborted) {\n return Promise.reject(abortError);\n } // Turn an event into a promise, reject it once `abort` is dispatched\n\n\n var cancellation = new Promise(function (_, reject) {\n signal.addEventListener('abort', function () {\n return reject(abortError);\n }, {\n once: true\n });\n });\n\n if (init && init.signal) {\n // Never pass .signal to the native implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to execute 'fetch' on 'Window': member signal is not of type AbortSignal.\n delete init.signal;\n } // Return the fastest promise (don't need to wait for request to finish)\n\n\n return Promise.race([cancellation, realFetch(input, init)]);\n }\n\n return realFetch(input, init);\n };\n\n return {\n fetch: abortableFetch,\n Request: Request\n };\n }\n\n (function (self) {\n\n if (!polyfillNeeded(self)) {\n return;\n }\n\n if (!self.fetch) {\n console.warn('fetch() is not available, cannot install abortcontroller-polyfill');\n return;\n }\n\n var _abortableFetch = abortableFetchDecorator(self),\n fetch = _abortableFetch.fetch,\n Request = _abortableFetch.Request;\n\n self.fetch = fetch;\n self.Request = Request;\n Object.defineProperty(self, 'AbortController', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortController\n });\n Object.defineProperty(self, 'AbortSignal', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortSignal\n });\n })(typeof self !== 'undefined' ? self : global);\n\n})));\n","/**\n * Standalone extraction of Backbone.Events, no external dependency required.\n * Degrades nicely when Backone/underscore are already available in the current\n * global context.\n *\n * Note that docs suggest to use underscore's `_.extend()` method to add Events\n * support to some given object. A `mixin()` method has been added to the Events\n * prototype to avoid using underscore for that sole purpose:\n *\n * var myEventEmitter = BackboneEvents.mixin({});\n *\n * Or for a function constructor:\n *\n * function MyConstructor(){}\n * MyConstructor.prototype.foo = function(){}\n * BackboneEvents.mixin(MyConstructor.prototype);\n *\n * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.\n * (c) 2013 Nicolas Perriault\n */\n/* global exports:true, define, module */\n(function() {\n var root = this,\n nativeForEach = Array.prototype.forEach,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n slice = Array.prototype.slice,\n idCounter = 0;\n\n // Returns a partial implementation matching the minimal API subset required\n // by Backbone.Events\n function miniscore() {\n return {\n keys: Object.keys || function (obj) {\n if (typeof obj !== \"object\" && typeof obj !== \"function\" || obj === null) {\n throw new TypeError(\"keys() called on a non-object\");\n }\n var key, keys = [];\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys[keys.length] = key;\n }\n }\n return keys;\n },\n\n uniqueId: function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n },\n\n has: function(obj, key) {\n return hasOwnProperty.call(obj, key);\n },\n\n each: function(obj, iterator, context) {\n if (obj == null) return;\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n iterator.call(context, obj[i], i, obj);\n }\n } else {\n for (var key in obj) {\n if (this.has(obj, key)) {\n iterator.call(context, obj[key], key, obj);\n }\n }\n }\n },\n\n once: function(func) {\n var ran = false, memo;\n return function() {\n if (ran) return memo;\n ran = true;\n memo = func.apply(this, arguments);\n func = null;\n return memo;\n };\n }\n };\n }\n\n var _ = miniscore(), Events;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // custom events. You may bind with `on` or remove with `off` callback\n // functions to an event; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n Events = {\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n on: function(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({callback: callback, context: context, ctx: context || this});\n return this;\n },\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, it will be removed.\n once: function(name, callback, context) {\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n var self = this;\n var once = _.once(function() {\n self.off(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n return this.on(name, once, context);\n },\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n off: function(name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n if (!name && !callback && !context) {\n this._events = {};\n return this;\n }\n\n names = name ? [name] : _.keys(this._events);\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n if (events = this._events[name]) {\n this._events[name] = retain = [];\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context)) {\n retain.push(ev);\n }\n }\n }\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n },\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n trigger: function(name) {\n if (!this._events) return this;\n var args = slice.call(arguments, 1);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, arguments);\n return this;\n },\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n stopListening: function(obj, name, callback) {\n var listeners = this._listeners;\n if (!listeners) return this;\n var deleteListener = !name && !callback;\n if (typeof name === 'object') callback = this;\n if (obj) (listeners = {})[obj._listenerId] = obj;\n for (var id in listeners) {\n listeners[id].off(name, callback, this);\n if (deleteListener) delete this._listeners[id];\n }\n return this;\n }\n\n };\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Implement fancy features of the Events API such as multiple event\n // names `\"change blur\"` and jQuery-style event maps `{change: action}`\n // in terms of the existing API.\n var eventsApi = function(obj, action, name, rest) {\n if (!name) return true;\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (var key in name) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n return false;\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n for (var i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n return false;\n }\n\n return true;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args);\n }\n };\n\n var listenMethods = {listenTo: 'on', listenToOnce: 'once'};\n\n // Inversion-of-control versions of `on` and `once`. Tell *this* object to\n // listen to an event in another object ... keeping track of what it's\n // listening to.\n _.each(listenMethods, function(implementation, method) {\n Events[method] = function(obj, name, callback) {\n var listeners = this._listeners || (this._listeners = {});\n var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));\n listeners[id] = obj;\n if (typeof name === 'object') callback = this;\n obj[implementation](name, callback, this);\n return this;\n };\n });\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Mixin utility\n Events.mixin = function(proto) {\n var exports = ['on', 'once', 'off', 'trigger', 'stopListening', 'listenTo',\n 'listenToOnce', 'bind', 'unbind'];\n _.each(exports, function(name) {\n proto[name] = this[name];\n }, this);\n return proto;\n };\n\n // Export Events as BackboneEvents depending on current context\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Events;\n }\n exports.BackboneEvents = Events;\n }else if (typeof define === \"function\" && typeof define.amd == \"object\") {\n define(function() {\n return Events;\n });\n } else {\n root.BackboneEvents = Events;\n }\n})(this);\n","module.exports = require('./backbone-events-standalone');\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","// From https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/replaceWith\nfunction ReplaceWithPolyfill() {\n \"use-strict\"; // For safari, and IE > 10\n var parent = this.parentNode,\n i = arguments.length,\n currentNode;\n if (!parent) return;\n if (!i)\n // if there are no arguments\n parent.removeChild(this);\n while (i--) {\n // i-- decrements i and returns the value of i before the decrement\n currentNode = arguments[i];\n if (typeof currentNode !== \"object\") {\n currentNode = this.ownerDocument.createTextNode(currentNode);\n } else if (currentNode.parentNode) {\n currentNode.parentNode.removeChild(currentNode);\n }\n // the value of \"i\" below is after the decrement\n if (!i)\n // if currentNode is the first argument (currentNode === arguments[0])\n parent.replaceChild(currentNode, this);\n // if currentNode isn't the first\n else parent.insertBefore(this.previousSibling, currentNode);\n }\n}\n\nif (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = ReplaceWithPolyfill;\nif (!CharacterData.prototype.replaceWith)\n CharacterData.prototype.replaceWith = ReplaceWithPolyfill;\nif (!DocumentType.prototype.replaceWith)\n DocumentType.prototype.replaceWith = ReplaceWithPolyfill;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('=');\n\n // skip things that don't look like key=value\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim()\n var val = pair.substr(++eq_idx, pair.length).trim();\n\n // quoted values\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n }\n\n // only assign once\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","require('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","'use strict';\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar $allSettled = Promise.allSettled;\n\nmodule.exports = function allSettled(iterable) {\n return $allSettled.call(typeof this === 'function' ? this : Promise, iterable);\n};\n","require('../../modules/es.set');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.all-settled');\n\nvar parent = require('../../es/promise/all-settled');\n\nmodule.exports = parent;\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice !== undefined && end === undefined) {\n return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n viewTarget.setUint8(index++, viewSource.getUint8(first++));\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.github.io/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// TODO: Remove from `core-js@4`\nrequire('./es.promise.all-settled.js');\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar parseStyle = require('./parser');\nvar _ = require('./util');\n\n\n/**\n * 返回值是否为空\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull (obj) {\n return (obj === undefined || obj === null);\n}\n\n/**\n * 浅拷贝对象\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject (obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * 创建CSS过滤器\n *\n * @param {Object} options\n * - {Object} whiteList\n * - {Function} onAttr\n * - {Function} onIgnoreAttr\n * - {Function} safeAttrValue\n */\nfunction FilterCSS (options) {\n options = shallowCopyObject(options || {});\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onAttr = options.onAttr || DEFAULT.onAttr;\n options.onIgnoreAttr = options.onIgnoreAttr || DEFAULT.onIgnoreAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n this.options = options;\n}\n\nFilterCSS.prototype.process = function (css) {\n // 兼容各种奇葩输入\n css = css || '';\n css = css.toString();\n if (!css) return '';\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onAttr = options.onAttr;\n var onIgnoreAttr = options.onIgnoreAttr;\n var safeAttrValue = options.safeAttrValue;\n\n var retCSS = parseStyle(css, function (sourcePosition, position, name, value, source) {\n\n var check = whiteList[name];\n var isWhite = false;\n if (check === true) isWhite = check;\n else if (typeof check === 'function') isWhite = check(value);\n else if (check instanceof RegExp) isWhite = check.test(value);\n if (isWhite !== true) isWhite = false;\n\n // 如果过滤后 value 为空则直接忽略\n value = safeAttrValue(name, value);\n if (!value) return;\n\n var opts = {\n position: position,\n sourcePosition: sourcePosition,\n source: source,\n isWhite: isWhite\n };\n\n if (isWhite) {\n\n var ret = onAttr(name, value, opts);\n if (isNull(ret)) {\n return name + ':' + value;\n } else {\n return ret;\n }\n\n } else {\n\n var ret = onIgnoreAttr(name, value, opts);\n if (!isNull(ret)) {\n return ret;\n }\n\n }\n });\n\n return retCSS;\n};\n\n\nmodule.exports = FilterCSS;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nfunction getDefaultWhiteList () {\n // 白名单值说明:\n // true: 允许该属性\n // Function: function (val) { } 返回true表示允许该属性,其他值均表示不允许\n // RegExp: regexp.test(val) 返回true表示允许该属性,其他值均表示不允许\n // 除上面列出的值外均表示不允许\n var whiteList = {};\n\n whiteList['align-content'] = false; // default: auto\n whiteList['align-items'] = false; // default: auto\n whiteList['align-self'] = false; // default: auto\n whiteList['alignment-adjust'] = false; // default: auto\n whiteList['alignment-baseline'] = false; // default: baseline\n whiteList['all'] = false; // default: depending on individual properties\n whiteList['anchor-point'] = false; // default: none\n whiteList['animation'] = false; // default: depending on individual properties\n whiteList['animation-delay'] = false; // default: 0\n whiteList['animation-direction'] = false; // default: normal\n whiteList['animation-duration'] = false; // default: 0\n whiteList['animation-fill-mode'] = false; // default: none\n whiteList['animation-iteration-count'] = false; // default: 1\n whiteList['animation-name'] = false; // default: none\n whiteList['animation-play-state'] = false; // default: running\n whiteList['animation-timing-function'] = false; // default: ease\n whiteList['azimuth'] = false; // default: center\n whiteList['backface-visibility'] = false; // default: visible\n whiteList['background'] = true; // default: depending on individual properties\n whiteList['background-attachment'] = true; // default: scroll\n whiteList['background-clip'] = true; // default: border-box\n whiteList['background-color'] = true; // default: transparent\n whiteList['background-image'] = true; // default: none\n whiteList['background-origin'] = true; // default: padding-box\n whiteList['background-position'] = true; // default: 0% 0%\n whiteList['background-repeat'] = true; // default: repeat\n whiteList['background-size'] = true; // default: auto\n whiteList['baseline-shift'] = false; // default: baseline\n whiteList['binding'] = false; // default: none\n whiteList['bleed'] = false; // default: 6pt\n whiteList['bookmark-label'] = false; // default: content()\n whiteList['bookmark-level'] = false; // default: none\n whiteList['bookmark-state'] = false; // default: open\n whiteList['border'] = true; // default: depending on individual properties\n whiteList['border-bottom'] = true; // default: depending on individual properties\n whiteList['border-bottom-color'] = true; // default: current color\n whiteList['border-bottom-left-radius'] = true; // default: 0\n whiteList['border-bottom-right-radius'] = true; // default: 0\n whiteList['border-bottom-style'] = true; // default: none\n whiteList['border-bottom-width'] = true; // default: medium\n whiteList['border-collapse'] = true; // default: separate\n whiteList['border-color'] = true; // default: depending on individual properties\n whiteList['border-image'] = true; // default: none\n whiteList['border-image-outset'] = true; // default: 0\n whiteList['border-image-repeat'] = true; // default: stretch\n whiteList['border-image-slice'] = true; // default: 100%\n whiteList['border-image-source'] = true; // default: none\n whiteList['border-image-width'] = true; // default: 1\n whiteList['border-left'] = true; // default: depending on individual properties\n whiteList['border-left-color'] = true; // default: current color\n whiteList['border-left-style'] = true; // default: none\n whiteList['border-left-width'] = true; // default: medium\n whiteList['border-radius'] = true; // default: 0\n whiteList['border-right'] = true; // default: depending on individual properties\n whiteList['border-right-color'] = true; // default: current color\n whiteList['border-right-style'] = true; // default: none\n whiteList['border-right-width'] = true; // default: medium\n whiteList['border-spacing'] = true; // default: 0\n whiteList['border-style'] = true; // default: depending on individual properties\n whiteList['border-top'] = true; // default: depending on individual properties\n whiteList['border-top-color'] = true; // default: current color\n whiteList['border-top-left-radius'] = true; // default: 0\n whiteList['border-top-right-radius'] = true; // default: 0\n whiteList['border-top-style'] = true; // default: none\n whiteList['border-top-width'] = true; // default: medium\n whiteList['border-width'] = true; // default: depending on individual properties\n whiteList['bottom'] = false; // default: auto\n whiteList['box-decoration-break'] = true; // default: slice\n whiteList['box-shadow'] = true; // default: none\n whiteList['box-sizing'] = true; // default: content-box\n whiteList['box-snap'] = true; // default: none\n whiteList['box-suppress'] = true; // default: show\n whiteList['break-after'] = true; // default: auto\n whiteList['break-before'] = true; // default: auto\n whiteList['break-inside'] = true; // default: auto\n whiteList['caption-side'] = false; // default: top\n whiteList['chains'] = false; // default: none\n whiteList['clear'] = true; // default: none\n whiteList['clip'] = false; // default: auto\n whiteList['clip-path'] = false; // default: none\n whiteList['clip-rule'] = false; // default: nonzero\n whiteList['color'] = true; // default: implementation dependent\n whiteList['color-interpolation-filters'] = true; // default: auto\n whiteList['column-count'] = false; // default: auto\n whiteList['column-fill'] = false; // default: balance\n whiteList['column-gap'] = false; // default: normal\n whiteList['column-rule'] = false; // default: depending on individual properties\n whiteList['column-rule-color'] = false; // default: current color\n whiteList['column-rule-style'] = false; // default: medium\n whiteList['column-rule-width'] = false; // default: medium\n whiteList['column-span'] = false; // default: none\n whiteList['column-width'] = false; // default: auto\n whiteList['columns'] = false; // default: depending on individual properties\n whiteList['contain'] = false; // default: none\n whiteList['content'] = false; // default: normal\n whiteList['counter-increment'] = false; // default: none\n whiteList['counter-reset'] = false; // default: none\n whiteList['counter-set'] = false; // default: none\n whiteList['crop'] = false; // default: auto\n whiteList['cue'] = false; // default: depending on individual properties\n whiteList['cue-after'] = false; // default: none\n whiteList['cue-before'] = false; // default: none\n whiteList['cursor'] = false; // default: auto\n whiteList['direction'] = false; // default: ltr\n whiteList['display'] = true; // default: depending on individual properties\n whiteList['display-inside'] = true; // default: auto\n whiteList['display-list'] = true; // default: none\n whiteList['display-outside'] = true; // default: inline-level\n whiteList['dominant-baseline'] = false; // default: auto\n whiteList['elevation'] = false; // default: level\n whiteList['empty-cells'] = false; // default: show\n whiteList['filter'] = false; // default: none\n whiteList['flex'] = false; // default: depending on individual properties\n whiteList['flex-basis'] = false; // default: auto\n whiteList['flex-direction'] = false; // default: row\n whiteList['flex-flow'] = false; // default: depending on individual properties\n whiteList['flex-grow'] = false; // default: 0\n whiteList['flex-shrink'] = false; // default: 1\n whiteList['flex-wrap'] = false; // default: nowrap\n whiteList['float'] = false; // default: none\n whiteList['float-offset'] = false; // default: 0 0\n whiteList['flood-color'] = false; // default: black\n whiteList['flood-opacity'] = false; // default: 1\n whiteList['flow-from'] = false; // default: none\n whiteList['flow-into'] = false; // default: none\n whiteList['font'] = true; // default: depending on individual properties\n whiteList['font-family'] = true; // default: implementation dependent\n whiteList['font-feature-settings'] = true; // default: normal\n whiteList['font-kerning'] = true; // default: auto\n whiteList['font-language-override'] = true; // default: normal\n whiteList['font-size'] = true; // default: medium\n whiteList['font-size-adjust'] = true; // default: none\n whiteList['font-stretch'] = true; // default: normal\n whiteList['font-style'] = true; // default: normal\n whiteList['font-synthesis'] = true; // default: weight style\n whiteList['font-variant'] = true; // default: normal\n whiteList['font-variant-alternates'] = true; // default: normal\n whiteList['font-variant-caps'] = true; // default: normal\n whiteList['font-variant-east-asian'] = true; // default: normal\n whiteList['font-variant-ligatures'] = true; // default: normal\n whiteList['font-variant-numeric'] = true; // default: normal\n whiteList['font-variant-position'] = true; // default: normal\n whiteList['font-weight'] = true; // default: normal\n whiteList['grid'] = false; // default: depending on individual properties\n whiteList['grid-area'] = false; // default: depending on individual properties\n whiteList['grid-auto-columns'] = false; // default: auto\n whiteList['grid-auto-flow'] = false; // default: none\n whiteList['grid-auto-rows'] = false; // default: auto\n whiteList['grid-column'] = false; // default: depending on individual properties\n whiteList['grid-column-end'] = false; // default: auto\n whiteList['grid-column-start'] = false; // default: auto\n whiteList['grid-row'] = false; // default: depending on individual properties\n whiteList['grid-row-end'] = false; // default: auto\n whiteList['grid-row-start'] = false; // default: auto\n whiteList['grid-template'] = false; // default: depending on individual properties\n whiteList['grid-template-areas'] = false; // default: none\n whiteList['grid-template-columns'] = false; // default: none\n whiteList['grid-template-rows'] = false; // default: none\n whiteList['hanging-punctuation'] = false; // default: none\n whiteList['height'] = true; // default: auto\n whiteList['hyphens'] = false; // default: manual\n whiteList['icon'] = false; // default: auto\n whiteList['image-orientation'] = false; // default: auto\n whiteList['image-resolution'] = false; // default: normal\n whiteList['ime-mode'] = false; // default: auto\n whiteList['initial-letters'] = false; // default: normal\n whiteList['inline-box-align'] = false; // default: last\n whiteList['justify-content'] = false; // default: auto\n whiteList['justify-items'] = false; // default: auto\n whiteList['justify-self'] = false; // default: auto\n whiteList['left'] = false; // default: auto\n whiteList['letter-spacing'] = true; // default: normal\n whiteList['lighting-color'] = true; // default: white\n whiteList['line-box-contain'] = false; // default: block inline replaced\n whiteList['line-break'] = false; // default: auto\n whiteList['line-grid'] = false; // default: match-parent\n whiteList['line-height'] = false; // default: normal\n whiteList['line-snap'] = false; // default: none\n whiteList['line-stacking'] = false; // default: depending on individual properties\n whiteList['line-stacking-ruby'] = false; // default: exclude-ruby\n whiteList['line-stacking-shift'] = false; // default: consider-shifts\n whiteList['line-stacking-strategy'] = false; // default: inline-line-height\n whiteList['list-style'] = true; // default: depending on individual properties\n whiteList['list-style-image'] = true; // default: none\n whiteList['list-style-position'] = true; // default: outside\n whiteList['list-style-type'] = true; // default: disc\n whiteList['margin'] = true; // default: depending on individual properties\n whiteList['margin-bottom'] = true; // default: 0\n whiteList['margin-left'] = true; // default: 0\n whiteList['margin-right'] = true; // default: 0\n whiteList['margin-top'] = true; // default: 0\n whiteList['marker-offset'] = false; // default: auto\n whiteList['marker-side'] = false; // default: list-item\n whiteList['marks'] = false; // default: none\n whiteList['mask'] = false; // default: border-box\n whiteList['mask-box'] = false; // default: see individual properties\n whiteList['mask-box-outset'] = false; // default: 0\n whiteList['mask-box-repeat'] = false; // default: stretch\n whiteList['mask-box-slice'] = false; // default: 0 fill\n whiteList['mask-box-source'] = false; // default: none\n whiteList['mask-box-width'] = false; // default: auto\n whiteList['mask-clip'] = false; // default: border-box\n whiteList['mask-image'] = false; // default: none\n whiteList['mask-origin'] = false; // default: border-box\n whiteList['mask-position'] = false; // default: center\n whiteList['mask-repeat'] = false; // default: no-repeat\n whiteList['mask-size'] = false; // default: border-box\n whiteList['mask-source-type'] = false; // default: auto\n whiteList['mask-type'] = false; // default: luminance\n whiteList['max-height'] = true; // default: none\n whiteList['max-lines'] = false; // default: none\n whiteList['max-width'] = true; // default: none\n whiteList['min-height'] = true; // default: 0\n whiteList['min-width'] = true; // default: 0\n whiteList['move-to'] = false; // default: normal\n whiteList['nav-down'] = false; // default: auto\n whiteList['nav-index'] = false; // default: auto\n whiteList['nav-left'] = false; // default: auto\n whiteList['nav-right'] = false; // default: auto\n whiteList['nav-up'] = false; // default: auto\n whiteList['object-fit'] = false; // default: fill\n whiteList['object-position'] = false; // default: 50% 50%\n whiteList['opacity'] = false; // default: 1\n whiteList['order'] = false; // default: 0\n whiteList['orphans'] = false; // default: 2\n whiteList['outline'] = false; // default: depending on individual properties\n whiteList['outline-color'] = false; // default: invert\n whiteList['outline-offset'] = false; // default: 0\n whiteList['outline-style'] = false; // default: none\n whiteList['outline-width'] = false; // default: medium\n whiteList['overflow'] = false; // default: depending on individual properties\n whiteList['overflow-wrap'] = false; // default: normal\n whiteList['overflow-x'] = false; // default: visible\n whiteList['overflow-y'] = false; // default: visible\n whiteList['padding'] = true; // default: depending on individual properties\n whiteList['padding-bottom'] = true; // default: 0\n whiteList['padding-left'] = true; // default: 0\n whiteList['padding-right'] = true; // default: 0\n whiteList['padding-top'] = true; // default: 0\n whiteList['page'] = false; // default: auto\n whiteList['page-break-after'] = false; // default: auto\n whiteList['page-break-before'] = false; // default: auto\n whiteList['page-break-inside'] = false; // default: auto\n whiteList['page-policy'] = false; // default: start\n whiteList['pause'] = false; // default: implementation dependent\n whiteList['pause-after'] = false; // default: implementation dependent\n whiteList['pause-before'] = false; // default: implementation dependent\n whiteList['perspective'] = false; // default: none\n whiteList['perspective-origin'] = false; // default: 50% 50%\n whiteList['pitch'] = false; // default: medium\n whiteList['pitch-range'] = false; // default: 50\n whiteList['play-during'] = false; // default: auto\n whiteList['position'] = false; // default: static\n whiteList['presentation-level'] = false; // default: 0\n whiteList['quotes'] = false; // default: text\n whiteList['region-fragment'] = false; // default: auto\n whiteList['resize'] = false; // default: none\n whiteList['rest'] = false; // default: depending on individual properties\n whiteList['rest-after'] = false; // default: none\n whiteList['rest-before'] = false; // default: none\n whiteList['richness'] = false; // default: 50\n whiteList['right'] = false; // default: auto\n whiteList['rotation'] = false; // default: 0\n whiteList['rotation-point'] = false; // default: 50% 50%\n whiteList['ruby-align'] = false; // default: auto\n whiteList['ruby-merge'] = false; // default: separate\n whiteList['ruby-position'] = false; // default: before\n whiteList['shape-image-threshold'] = false; // default: 0.0\n whiteList['shape-outside'] = false; // default: none\n whiteList['shape-margin'] = false; // default: 0\n whiteList['size'] = false; // default: auto\n whiteList['speak'] = false; // default: auto\n whiteList['speak-as'] = false; // default: normal\n whiteList['speak-header'] = false; // default: once\n whiteList['speak-numeral'] = false; // default: continuous\n whiteList['speak-punctuation'] = false; // default: none\n whiteList['speech-rate'] = false; // default: medium\n whiteList['stress'] = false; // default: 50\n whiteList['string-set'] = false; // default: none\n whiteList['tab-size'] = false; // default: 8\n whiteList['table-layout'] = false; // default: auto\n whiteList['text-align'] = true; // default: start\n whiteList['text-align-last'] = true; // default: auto\n whiteList['text-combine-upright'] = true; // default: none\n whiteList['text-decoration'] = true; // default: none\n whiteList['text-decoration-color'] = true; // default: currentColor\n whiteList['text-decoration-line'] = true; // default: none\n whiteList['text-decoration-skip'] = true; // default: objects\n whiteList['text-decoration-style'] = true; // default: solid\n whiteList['text-emphasis'] = true; // default: depending on individual properties\n whiteList['text-emphasis-color'] = true; // default: currentColor\n whiteList['text-emphasis-position'] = true; // default: over right\n whiteList['text-emphasis-style'] = true; // default: none\n whiteList['text-height'] = true; // default: auto\n whiteList['text-indent'] = true; // default: 0\n whiteList['text-justify'] = true; // default: auto\n whiteList['text-orientation'] = true; // default: mixed\n whiteList['text-overflow'] = true; // default: clip\n whiteList['text-shadow'] = true; // default: none\n whiteList['text-space-collapse'] = true; // default: collapse\n whiteList['text-transform'] = true; // default: none\n whiteList['text-underline-position'] = true; // default: auto\n whiteList['text-wrap'] = true; // default: normal\n whiteList['top'] = false; // default: auto\n whiteList['transform'] = false; // default: none\n whiteList['transform-origin'] = false; // default: 50% 50% 0\n whiteList['transform-style'] = false; // default: flat\n whiteList['transition'] = false; // default: depending on individual properties\n whiteList['transition-delay'] = false; // default: 0s\n whiteList['transition-duration'] = false; // default: 0s\n whiteList['transition-property'] = false; // default: all\n whiteList['transition-timing-function'] = false; // default: ease\n whiteList['unicode-bidi'] = false; // default: normal\n whiteList['vertical-align'] = false; // default: baseline\n whiteList['visibility'] = false; // default: visible\n whiteList['voice-balance'] = false; // default: center\n whiteList['voice-duration'] = false; // default: auto\n whiteList['voice-family'] = false; // default: implementation dependent\n whiteList['voice-pitch'] = false; // default: medium\n whiteList['voice-range'] = false; // default: medium\n whiteList['voice-rate'] = false; // default: normal\n whiteList['voice-stress'] = false; // default: normal\n whiteList['voice-volume'] = false; // default: medium\n whiteList['volume'] = false; // default: medium\n whiteList['white-space'] = false; // default: normal\n whiteList['widows'] = false; // default: 2\n whiteList['width'] = true; // default: auto\n whiteList['will-change'] = false; // default: auto\n whiteList['word-break'] = true; // default: normal\n whiteList['word-spacing'] = true; // default: normal\n whiteList['word-wrap'] = true; // default: normal\n whiteList['wrap-flow'] = false; // default: auto\n whiteList['wrap-through'] = false; // default: wrap\n whiteList['writing-mode'] = false; // default: horizontal-tb\n whiteList['z-index'] = false; // default: auto\n\n return whiteList;\n}\n\n\n/**\n * 匹配到白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onAttr (name, value, options) {\n // do nothing\n}\n\n/**\n * 匹配到不在白名单上的一个属性时\n *\n * @param {String} name\n * @param {String} value\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreAttr (name, value, options) {\n // do nothing\n}\n\nvar REGEXP_URL_JAVASCRIPT = /javascript\\s*\\:/img;\n\n/**\n * 过滤属性值\n *\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction safeAttrValue(name, value) {\n if (REGEXP_URL_JAVASCRIPT.test(value)) return '';\n return value;\n}\n\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onAttr = onAttr;\nexports.onIgnoreAttr = onIgnoreAttr;\nexports.safeAttrValue = safeAttrValue;\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar DEFAULT = require('./default');\nvar FilterCSS = require('./css');\n\n\n/**\n * XSS过滤\n *\n * @param {String} css 要过滤的CSS代码\n * @param {Object} options 选项:whiteList, onAttr, onIgnoreAttr\n * @return {String}\n */\nfunction filterCSS (html, options) {\n var xss = new FilterCSS(options);\n return xss.process(html);\n}\n\n\n// 输出\nexports = module.exports = filterCSS;\nexports.FilterCSS = FilterCSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\n\n// 在浏览器端使用\nif (typeof window !== 'undefined') {\n window.filterCSS = module.exports;\n}\n","/**\n * cssfilter\n *\n * @author 老雷\n */\n\nvar _ = require('./util');\n\n\n/**\n * 解析style\n *\n * @param {String} css\n * @param {Function} onAttr 处理属性的函数\n * 参数格式: function (sourcePosition, position, name, value, source)\n * @return {String}\n */\nfunction parseStyle (css, onAttr) {\n css = _.trimRight(css);\n if (css[css.length - 1] !== ';') css += ';';\n var cssLength = css.length;\n var isParenthesisOpen = false;\n var lastPos = 0;\n var i = 0;\n var retCSS = '';\n\n function addNewAttr () {\n // 如果没有正常的闭合圆括号,则直接忽略当前属性\n if (!isParenthesisOpen) {\n var source = _.trim(css.slice(lastPos, i));\n var j = source.indexOf(':');\n if (j !== -1) {\n var name = _.trim(source.slice(0, j));\n var value = _.trim(source.slice(j + 1));\n // 必须有属性名称\n if (name) {\n var ret = onAttr(lastPos, retCSS.length, name, value, source);\n if (ret) retCSS += ret + '; ';\n }\n }\n }\n lastPos = i + 1;\n }\n\n for (; i < cssLength; i++) {\n var c = css[i];\n if (c === '/' && css[i + 1] === '*') {\n // 备注开始\n var j = css.indexOf('*/', i + 2);\n // 如果没有正常的备注结束,则后面的部分全部跳过\n if (j === -1) break;\n // 直接将当前位置调到备注结尾,并且初始化状态\n i = j + 1;\n lastPos = i + 1;\n isParenthesisOpen = false;\n } else if (c === '(') {\n isParenthesisOpen = true;\n } else if (c === ')') {\n isParenthesisOpen = false;\n } else if (c === ';') {\n if (isParenthesisOpen) {\n // 在圆括号里面,忽略\n } else {\n addNewAttr();\n }\n } else if (c === '\\n') {\n addNewAttr();\n }\n }\n\n return _.trim(retCSS);\n}\n\nmodule.exports = parseStyle;\n","module.exports = {\n indexOf: function (arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function (arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function (str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n trimRight: function (str) {\n if (String.prototype.trimRight) {\n return str.trimRight();\n }\n return str.replace(/(\\s*$)/g, '');\n }\n};\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","module.exports = require('./lib/timeout');","(function(exports){\n var MAX_INT = 2147483647;\n var timeouts = {};\n var index = 1;\n\n // Set new timeout\n var set = function(callback, timeout){\n var id = index++;\n if(timeout > MAX_INT){\n timeouts[id] = setTimeout(set.bind(undefined, callback, timeout - MAX_INT), MAX_INT);\n }else{\n if(timeout < 0) timeout = 0;\n timeouts[id] = setTimeout(function(){\n delete timeouts[id];\n callback();\n }, timeout);\n }\n return id;\n };\n\n // Clear existing timeout\n var clear = function(id){\n if(timeouts.hasOwnProperty(id)){\n clearTimeout(timeouts[id]);\n delete timeouts[id];\n }\n };\n\n // Expose public interface\n exports.set = set;\n exports.clear = clear;\n exports._timeouts = timeouts;\n\n})(typeof module === 'undefined' && typeof exports === 'undefined'? this.timeout = {} : exports);","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n\n(function(window, document) {\n'use strict';\n\n\n// Exits early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}(window, document));\n","module.exports = window.fetch || (window.fetch = require('unfetch').default || require('unfetch'));\n","'use strict';\n\nvar rfc3986 = require('rfc-3986');\n\n// See: https://github.com/hapijs/hoek/blob/f62961d3d07aca68ab11480893e6e80a421914b4/lib/index.js#L783-L787\nfunction escapeRegex(string) {\n // Escape ^$.*+-?=!:|\\/()[]{},\n return string.replace(/[\\^\\$\\.\\*\\+\\-\\?\\=\\!\\:\\|\\\\\\/\\(\\)\\[\\]\\{\\}\\,]/g, '\\\\$&');\n}\n\nvar internals = {\n Uri: {\n createUriRegex: function (options) {\n options = options || {};\n\n if (typeof options !== 'object' || Array.isArray(options)) {\n throw new Error('options must be an object');\n }\n\n var customScheme = '';\n\n // If we were passed a scheme, use it instead of the generic one\n if (options.scheme) {\n if (!Array.isArray(options.scheme)) {\n options.scheme = [options.scheme];\n }\n\n if (options.scheme.length <= 0) {\n throw new Error('scheme must have at least 1 scheme specified');\n }\n\n for (var i = 0; i < options.scheme.length; ++i) {\n var currentScheme = options.scheme[i];\n\n if (!(currentScheme instanceof RegExp || typeof currentScheme === 'string')) {\n throw new Error('scheme must only contain Regular Expressions or Strings');\n }\n\n // Add OR separators if a value already exists\n customScheme = customScheme + (customScheme ? '|' : '');\n\n // If someone wants to match HTTP or HTTPS for example then we need to support both RegExp and String so we don't escape their pattern unknowingly.\n if (currentScheme instanceof RegExp) {\n customScheme = customScheme + currentScheme.source;\n } else {\n if (!/[a-zA-Z][a-zA-Z0-9+-\\.]*/.test(currentScheme)) {\n throw new Error('scheme at position ' + i + ' must be a valid scheme');\n }\n customScheme = customScheme + escapeRegex(currentScheme);\n }\n }\n\n }\n\n // Have to put this in a non-capturing group to handle the OR statements\n var scheme = '(?:' + (customScheme || rfc3986.scheme) + ')';\n\n /**\n * URI = scheme \":\" hier-part [ \"?\" query ] [ \"#\" fragment ]\n *\n * OR\n *\n * relative-ref = relative-part [ \"?\" query ] [ \"#\" fragment ]\n */\n return new RegExp('^(?:' + scheme + ':' + rfc3986.hierPart + ')(?:\\\\?' + rfc3986.query + ')?(?:#' + rfc3986.fragment + ')?$');\n },\n uriRegex: new RegExp(rfc3986.uri)\n }\n};\n\ninternals.Uri.isValid = function (val) {\n return internals.Uri.uriRegex.test(val);\n};\n\nmodule.exports = {\n createUriRegex: internals.Uri.createUriRegex,\n\n uriRegex: internals.Uri.uriRegex,\n isValid: internals.Uri.isValid\n};","module.exports = require('./lib/cache');","var timeout = require('infinite-timeout');\nvar events = require('backbone-events-standalone');\n\n/**\n * Find out if an object has a certain property\n *\n * @param {object} object\n * @param {string} key\n */\nfunction has(object, key){\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\n/**\n * Cache class\n */\nfunction Cache(){\n this.initialize.apply(this, arguments);\n}\nvar _ = Cache.prototype;\nevents.mixin(_);\n\n/**\n * Constructor\n *\n * @param {object} external Forward set, get, clear and del commands to an external handler (optional)\n */\n_.initialize = function(external){\n this.store = {};\n this.external = external;\n};\n\n/**\n * Insert or overwrite data\n *\n * @param {string} key\n * @param {mixed} value\n * @param {number} ttl Time to live in milliseconds (optional)\n */\n_.set = function(key, value, ttl){\n if(typeof key === 'undefined') throw new Error('Required argument key is undefined');\n\n // Clear timeout on existing record\n var oldRecord = has(this.store, key)? this.store[key] : undefined;\n if(oldRecord && oldRecord.timeout){\n timeout.clear(oldRecord.timeout);\n }\n\n // Set value + timeout on new record\n var record = {value: value};\n if(typeof ttl === 'number'){\n record.timeout = timeout.set(this.delInternal.bind(this, key), ttl);\n }\n this.store[key] = record;\n\n // Call external handler\n if(this.external && typeof this.external.set === 'function'){\n this.external.set(key, value, ttl);\n }\n\n // Emit update/set events\n var action = oldRecord? 'update' : 'set';\n this.trigger(action, key, value, ttl);\n this.trigger(action + ':' + key, value, ttl);\n};\n\n/**\n * Get cached data\n *\n * @param {string} key\n * @param {function} callback Return value in callback if records exists locally or on external resource (optional)\n * @return {mixed} value Only returned if callback is undefined\n */\n_.get = function(key, callback){\n if(typeof key === 'undefined') throw new Error('Required argument key is undefined');\n if(has(this.store, key)){\n if(typeof callback === 'function'){\n process.nextTick(callback.bind(null, this.store[key].value));\n }else{\n return this.store[key].value;\n }\n }else if(typeof callback === 'function' && this.external && typeof this.external.get === 'function'){\n this.external.get(key, callback);\n }\n};\n\n/**\n * Delete cached data\n *\n * @param {string} key\n * @return {boolean} Returns true if record existed\n */\n_.del = function(key){\n if(typeof key === 'undefined') throw new Error('Required argument key is undefined');\n if(this.external && typeof this.external.del === 'function'){\n this.external.del(key);\n }\n return this.delInternal(key);\n};\n\n_.delInternal = function(key){\n if(has(this.store, key)){\n\n // Clear timeout\n if(this.store[key].timeout){\n timeout.clear(this.store[key].timeout);\n }\n\n // Delete record\n delete this.store[key];\n\n // Emit del events\n this.trigger('del', key);\n this.trigger('del:' + key);\n return true;\n }else{\n return false;\n }\n};\n\n/**\n * Clear cached data\n *\n * @return {number} Returns number of cleared records\n */\n_.clear = function(){\n var size = this.size();\n this.store = {};\n if(this.external && typeof this.external.clear === 'function'){\n this.external.clear();\n }\n this.trigger('clear', size);\n return size;\n};\n\n/**\n * Retrieve number of records\n *\n * @return {number}\n */\n_.size = function(){\n var size = 0;\n for(var key in this.store){\n if(has(this.store, key)) size++;\n }\n return size;\n};\n\n/**\n * Retrieve internal store\n *\n * @return {object}\n */\n_.debug = function(){\n return this.store;\n};\n\n/**\n * Retrieve list of keys\n *\n * @return {string[]}\n */\n_.keys = function(){\n return Object.keys(this.store);\n};\n\n\n/**\n * Export a combined instance and constructor\n */\nvar instance = new Cache();\nvar constructor = function(){\n return new Cache(arguments[0]);\n};\nconstructor.Cache = Cache;\nfor(var key in _){\n if(has(_, key) && typeof _[key] === 'function'){\n constructor[key] = _[key].bind(instance);\n }\n}\nmodule.exports = constructor;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","module.exports = require('./dist/pages/_app')\n","// @ts-nocheck\nimport React from 'react'\nimport Transition, {\n TransitionProps,\n TransitionStatus,\n ENTERED,\n ENTERING,\n} from 'react-transition-group/Transition'\nimport classNames from 'classnames'\n\nconst fadeClassName = {\n [ENTERING]: 'show',\n [ENTERED]: 'show',\n}\n\nexport const Fade = ({\n children,\n className,\n timeout = 300,\n appear = true,\n ...props\n}: TransitionProps) => {\n return (\n \n {(status: TransitionStatus, innerProps: any) =>\n // @ts-ignore\n React.cloneElement(children, {\n ...innerProps,\n className: classNames(\n 'fade',\n className,\n // @ts-ignore\n children.props.className,\n // @ts-ignore\n fadeClassName[status]\n ),\n })\n }\n \n )\n}\n","import React, { CSSProperties, ReactElement } from 'react'\nimport { Image, userLoading } from 'Components/view-image'\nimport Link from 'next/link'\nimport classNames from 'classnames'\nimport { Wrapper } from 'lib/noop-wrapper'\nimport { isNewVersion } from 'Components/hooks/use-version'\nimport styleModule from './avatar.module.scss'\n\nexport interface IUgcUserLinkParams {\n userId?: string\n username?: string\n target?: string\n tab?: 'gzyh'\n}\n\nexport function ugcUserLink({\n userId,\n username,\n target = '_blank',\n tab,\n}: IUgcUserLinkParams): Wrapper {\n const title = username ? `${username}个人主页 ` : undefined\n const asPath = `/user${tab ? `/${tab}` : ''}/${userId}`\n\n const withLink: Wrapper = (content) =>\n userId ? (\n \n \n {content}\n \n \n ) : (\n // eslint-disable-next-line no-script-url\n {content}\n )\n\n const normal: Wrapper = (content) =>\n userId ? (\n \n {content}\n \n ) : (\n content\n )\n\n return target === '_self' ? withLink : normal\n}\n\nexport interface IProps {\n onClick?: (e: React.MouseEvent) => void\n avatar?: string // 用户头像 url\n userId?: string // 用户id\n username?: string // 用户名\n userVerified?: boolean // 用户认证\n verifyType?: number // 用户认证类型\n size?: number\n verifySize?: number\n hoverTransition?: boolean\n style?: CSSProperties\n className?: string\n displayName?: boolean\n}\n\nconst Avatar: React.FC = ({\n onClick,\n avatar = '',\n userVerified = false,\n verifyType = 1,\n userId,\n username,\n size = 40,\n verifySize = 12,\n hoverTransition,\n style,\n className,\n displayName = false,\n}) => {\n return (\n \n {ugcUserLink({ userId, username })(\n \n \n {userVerified ? (\n \n ) : null}\n {displayName && {username}}\n \n )}\n \n \n ) as ReactElement\n}\n\nexport default Avatar\n","import * as React from 'react'\nimport classnames from 'classnames'\nimport styles from './index.module.scss'\n\ninterface Props {\n /**\n * primary: 黄色底部,常用语询底价\n * default: 带边框\n * highlight: 带边框,颜色为橘色\n */\n type?: 'primary' | 'default' | 'highlight' | 'new_primary'\n style?: React.CSSProperties\n loading?: boolean\n disabled?: boolean\n className?: string\n onClick?: React.MouseEventHandler\n}\n\nexport default class Button extends React.PureComponent {\n static defaultProps = {\n type: 'default',\n loading: false,\n disabled: false,\n }\n\n onClick = (event: React.MouseEvent) => {\n // event.preventDefault()\n // event.stopPropagation()\n const { loading, disabled, onClick } = this.props\n if (loading || disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n if (typeof onClick === 'function') {\n onClick(event)\n }\n }\n\n render() {\n const { type, style, loading, disabled, children, className } = this.props\n return (\n \n {loading ? : children}\n \n )\n }\n}\n","import React, { createContext, useState, useEffect } from 'react'\nimport Cache from 'js-cache'\nconst CacheStoreContext = createContext<{\n cache: any\n}>({\n cache: undefined,\n})\n\nconst CacheStoreProvider = (props: { children: React.ReactNode }) => {\n const { children } = props\n const [cache, setCache] = useState(undefined)\n\n useEffect(() => {\n try {\n setCache(new Cache())\n } catch (error) {\n console.error(error)\n setCache(undefined)\n }\n }, [])\n\n return (\n \n {children}\n \n )\n}\n\nexport { CacheStoreContext, CacheStoreProvider }\n","import React, {\n useState,\n useContext,\n useEffect,\n useRef,\n useCallback,\n} from 'react'\nimport get from 'lodash/get'\nimport fetch from 'lib/decorated-fetch'\nimport classnames from 'classnames'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport getUrl from 'lib/url'\nimport { useScrollSpy } from 'Components/hooks'\nimport { GlobalStoreContext } from 'Components/store'\n\nexport interface ICity {\n /* 城市首字母 */\n initials: string\n /* 城市列表 */\n city: {\n city_name: string\n }[]\n}\n\ninterface IProps {\n onChange?(cityName?: string): void\n className?: string\n global?: boolean\n style?: React.CSSProperties\n}\n\nexport default function City(props: IProps) {\n const { onChange, className, global = true, style } = props\n // 设置全局的城市\n const { state: globalStore, dispatch } = useContext(GlobalStoreContext)\n const { cities } = globalStore\n\n // 整体dom\n const ref = useRef(null)\n\n const [currIndex, setCurrIndex, cityRef] = useScrollSpy<\n HTMLElement,\n HTMLDivElement\n >((node) => {\n return node.querySelectorAll('.cities')\n }, false)\n /* 获取城市列表 */\n const fetchCities = useCallback(() => {\n return fetch(getUrl('/motor/dealer/m/v1/get_dealer_city_list/'))\n .then((json) => {\n const data = get(json, 'data', [])\n if (data.length) {\n data.unshift({\n initials: '热门城市',\n city: [\n { city_name: '北京', initials: '热门城市' },\n { city_name: '上海', initials: '热门城市' },\n { city_name: '广州', initials: '热门城市' },\n { city_name: '深圳', initials: '热门城市' },\n { city_name: '重庆', initials: '热门城市' },\n { city_name: '天津', initials: '热门城市' },\n { city_name: '成都', initials: '热门城市' },\n { city_name: '杭州', initials: '热门城市' },\n { city_name: '武汉', initials: '热门城市' },\n { city_name: '苏州', initials: '热门城市' },\n { city_name: '西安', initials: '热门城市' },\n { city_name: '南京', initials: '热门城市' },\n ],\n })\n }\n dispatch({\n type: 'setCities',\n payload: data,\n })\n })\n .catch((e) => {\n // no-op\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n useEffect(() => {\n if (!cities || !cities.length) {\n fetchCities()\n }\n }, [cities, fetchCities])\n useEffect(() => {\n function handleDocumentClick(e: Event) {\n if (!ref.current || ref.current.contains(e.target as Node)) {\n return\n }\n onChange && onChange()\n // setCity(Object.assign({}, city, { show: false }))\n }\n on(window, 'click', handleDocumentClick)\n return () => {\n off(window, 'click', handleDocumentClick)\n }\n }, [onChange])\n\n /* 渲染城市首字母 */\n function renderLetter() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map((item, index) => (\n {\n setCurrIndex(index)\n // scrollView(item.initials)\n }}\n >\n {item.initials.slice(0, 1).toLocaleUpperCase()}\n \n ))}\n \n
\n )\n }\n\n /* 渲染城市列表 */\n function renderCities() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map((city) => {\n return (\n \n

{city.initials.toLocaleUpperCase()}

\n {city.city.map((item: ICity['city'][0]) => (\n {\n // setCity({ show: false, name: item.city_name })\n if (global) {\n dispatch({\n type: 'setCityName',\n payload: item.city_name,\n })\n }\n if (onChange) {\n onChange(item.city_name)\n }\n }}\n >\n {item.city_name}\n \n ))}\n \n )\n })}\n \n
\n )\n }\n if (!cities || !cities.length) {\n return null\n }\n return (\n ) => {\n e.stopPropagation()\n }}\n >\n {renderLetter()}\n {renderCities()}\n \n \n )\n}\n","import * as React from 'react'\nexport interface IDividerProps {\n tag?: string\n width: number | string\n height: number | string\n color?: string\n className?: string\n style?: React.CSSProperties\n}\nexport default function Divider({\n tag = 'span',\n width,\n height,\n color = '#E6E8F2',\n className,\n style,\n}: IDividerProps) {\n const Tag = tag as any\n const mergedStyle: React.CSSProperties = {\n display: 'inline-block',\n width,\n height,\n background: color,\n ...style,\n }\n return \n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {\n useState,\n useRef,\n useEffect,\n useContext,\n useCallback,\n useLayoutEffect,\n MutableRefObject,\n} from 'react'\nimport { on, off } from '@arsenal/arsenal/modules/event'\nimport Router, { SingletonRouter } from 'next/router'\nimport fetch from 'lib/decorated-fetch'\nimport { logger } from 'lib/slardar-utils'\nimport getUrl from 'lib/url'\nimport Loading from 'Components/loading'\nimport { GlobalStoreContext, IBrandItem } from 'Components/store'\n\n// function useIntersection(options) {\n// const [observerEntry, setEntry] = useState({})\n// const elRef = useRef()\n\n// useEffect(() => {\n// const observer = new IntersectionObserver(\n// entries => setEntry(entries[0]),\n// options\n// )\n// observer.observe(elRef.current)\n// return () => observer.disconnect()\n// }, [elRef])\n// return { observerEntry, elRef }\n// }\n\nexport function usePrefetch(urls: string[]) {\n useEffect(() => {\n urls.forEach((url) => {\n Router.router && Router.router.prefetch(url)\n })\n }, [])\n}\ninterface IUseIntervalAniamtion {\n /**\n * 起始序号\n */\n start: number\n /**\n * 最大序号\n */\n max: number\n /**\n * 当鼠标在ref范围之内时,停止计时动画\n */\n ref: React.RefObject\n /**\n * 计时到达之后的回调\n * @param curr 要激活的index\n */\n callback(curr: number): void\n /**\n * 时间间隔\n */\n interval?: number\n}\nexport function useIntervalAnimation({\n start = 0,\n max,\n ref,\n callback,\n interval = 5000,\n}: IUseIntervalAniamtion) {\n const timerRef = useRef()\n const mouseRef = useRef(false)\n function clear() {\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n }\n }\n function invoke() {\n // 鼠标在范围之内时,不执行动画\n if (mouseRef.current) {\n return\n }\n clear()\n timerRef.current = setTimeout(() => {\n const next = start + 1 > max ? 0 : start + 1\n callback(next)\n }, interval)\n }\n function mouseEnter() {\n mouseRef.current = true\n clear()\n }\n function mouseLeave() {\n mouseRef.current = false\n invoke()\n }\n useEffect(() => {\n invoke()\n }, [start])\n useEffect(() => {\n // 绑定mouse in与mouse out事件\n if (!ref || !ref.current) {\n return\n }\n on(ref.current, 'mouseenter', mouseEnter)\n on(ref.current, 'mouseleave', mouseLeave)\n return () => {\n clear()\n off(ref.current, 'mouseenter', mouseEnter)\n off(ref.current, 'mouseleave', mouseLeave)\n }\n }, [])\n}\n\n/**\n * 获取城市名,初始状态为undefined,如果获取不到为'',在使用时,尽量如下使用\n```\n const cityName = useCityName()\n useEffect(() => {\n if (typeof cityName === 'undefined') {\n return\n }\n fetch(`/api/?city_name=${encodeURIComponent(cityName.replace('未知', ''))}`)\n }, [cityName])\n\n```\n */\nexport function useCityName() {\n const { state } = useContext(GlobalStoreContext)\n return state.cityName\n}\n\nlet getAllBrand: Promise | null\n\ninterface IBrands {\n letters: string[]\n list: {\n letter: string\n data: IBrandItem[]\n }[]\n}\n\nexport function useBrandList() {\n const { state, dispatch } = useContext(GlobalStoreContext)\n // 首页模块渲染独立于GlobalStoreProvider, 无法获取全局state\n // 因此额外保存一份内部数据进行返回\n const [innerBrands, setInnerBrands] = useState()\n useEffect(() => {\n if (state.brands) {\n return\n }\n if (!getAllBrand) {\n getAllBrand = fetch(getUrl('/motor/car_page/v1/all_brand/'))\n }\n getAllBrand\n .then((json) => {\n if (!json.data || json.message !== 'success') {\n throw new Error('Data error in fetching brands')\n }\n const letters = json.data.map((item: any) => item.pinyin) as string[]\n const brands = json.data.map((item: any) => {\n const obj: any = {}\n obj.letter = item.pinyin\n obj.data = item.data.map((inner: any) => ({\n id: inner.id,\n name: inner.brand,\n avatar: inner.toutiaourl,\n }))\n return obj\n })\n const payload = { letters, list: brands } as IBrands\n setInnerBrands(payload)\n dispatch({\n type: 'setBrands',\n payload,\n })\n })\n .catch((err) => {\n getAllBrand = null\n setInnerBrands(undefined)\n dispatch({\n type: 'setBrands',\n payload: undefined,\n })\n })\n }, [])\n return state.brands || innerBrands\n}\n\n/**\n * 监听滚动联动\n * @param getElements 获取需要监听的元素\n * @returns [current, setCurrent, ref]\n```\nconst [current, setCurrent, ref] = useScrollSpy2(node => {\n return node.children\n})\n...\n
\n
\n
\n
\n
\n
\n
{setCurrent(2)}}>A
\n
\n```\n */\n\nexport function useScrollSpy(\n getElements: (node: T) => NodeListOf,\n globalScroll = true\n): [\n number,\n (index: number, parent?: any, offset?: number) => void,\n (node: T) => void\n] {\n // 当前滚动到第几个元素\n const [current, setCurr] = useState(0)\n const [elements, setElements] = useState([])\n const [rootElement, setRootElement] = useState(null)\n const clickRef = useRef(false)\n // 初始化是忽略\n const initRef = useRef(true)\n useEffect(() => {\n if (elements.length === 0) {\n return\n }\n const observer: IntersectionObserver = new IntersectionObserver(\n (changes) => {\n // 初始化时忽略\n if (initRef.current) {\n initRef.current = false\n return\n }\n // 如果是通过ScrollInToView产生的滚动则不执行Observer, 避免冲突\n if (clickRef.current) {\n clickRef.current = false\n return\n }\n changes.forEach((change) => {\n const ele = change.target as HTMLElement\n const { bottom } = change.boundingClientRect\n const { height } = change.rootBounds || {\n height: document.documentElement.clientHeight,\n }\n // console.log(change, ele, bottom, height)\n // 只关注顶部变动\n if (bottom && height && bottom <= height) {\n // 离开可视区域,获取最后一个,默认顺序\n // chrome55缺少isIntersecting字段\n const index = elements.findIndex((element) => element === ele)\n setCurr(change.isIntersecting === false ? index + 1 : index)\n }\n })\n },\n {\n root: globalScroll ? null : rootElement,\n // root: rootElement.current,\n rootMargin: '0px 0px 0px 0px',\n threshold: [0.0000001],\n }\n )\n // 每个需要监听的区域块\n elements.forEach((element) => {\n observer.observe(element)\n })\n return () => {\n observer.disconnect()\n }\n }, [elements.length])\n\n const ref = useCallback((node: T) => {\n if (node !== null) {\n setRootElement(node)\n setElements(Array.from(getElements(node)) as HTMLElement[])\n }\n }, [])\n function setCurrent(\n index: number,\n scrollContainer?: HTMLElement,\n offset?: number\n ): void {\n const offsetValue = offset || 0\n if (elements[index]) {\n clickRef.current = true\n const parent = elements[index].parentElement\n if (scrollContainer) {\n scrollContainer.scrollTop = elements[index].offsetTop - offsetValue\n } else if (parent) {\n parent.scrollTop = elements[index].offsetTop\n }\n\n setCurr(index)\n }\n }\n return [current, setCurrent, ref]\n}\n\n// 与Spy1实现相同的功能 但在实现上做了修改。\n// 主要区别是➡由依赖ref callback 改为依赖dependency (利用useEffect一定是在渲染完成后执行的性质)\n// 并在getELements外加setTimeout延时。\n//(useEffect后,依然有不确定原因的DOM变化,setTimeout是个暂时的解决方案,后续还需探究dom变化原因。)\nexport function useScrollSpy_v2(\n getElements: (node: T) => NodeListOf,\n globalScroll = true,\n dependencies: any[]\n): [\n number,\n (index: number, parent?: any, offset?: number) => void,\n (node: T | null) => void\n] {\n // 当前滚动到第几个元素\n const [current, setCurr] = useState(0)\n const [rootElement, setRootElement] = useState(null)\n const elementsRef = useRef(null)\n const clickRef = useRef(false)\n const timeoutRef = useRef()\n // 初始化时忽略\n const initRef = useRef(true)\n\n const observerRef = useRef(null)\n useEffect(() => {\n observerRef.current = new IntersectionObserver(\n (changes) => {\n const elements = elementsRef.current\n if (!elements) {\n return\n }\n\n // 初始化时忽略\n if (initRef.current) {\n initRef.current = false\n return\n }\n // 如果是通过ScrollInToView产生的滚动则不执行Observer,避免冲突,加点延迟时间,避免多次触发导致新的执行了\n if (clickRef.current) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = window.setTimeout(() => {\n clickRef.current = false\n }, 500)\n return\n }\n changes.forEach((change) => {\n const ele = change.target as HTMLElement\n const { bottom } = change.boundingClientRect\n const { height } = change.rootBounds || {\n height: document.documentElement.clientHeight,\n }\n // console.log(change, ele, bottom, height)\n // 只关注顶部变动\n if (bottom <= height) {\n // 离开可视区域,获取最后一个,默认顺序\n // chrome55缺少isIntersecting字段\n const index = elements.findIndex((element) => element === ele)\n setCurr(change.isIntersecting === false ? index + 1 : index)\n }\n })\n },\n {\n root: globalScroll ? null : rootElement,\n // root: rootElement.current,\n rootMargin: '0px 0px 0px 0px',\n threshold: [0.0],\n }\n )\n }, [])\n\n useEffect(() => {\n const observer = observerRef.current\n if (!observer) {\n return\n }\n if (!rootElement) {\n return\n }\n // setTimeout(()=>{\n\n // },0)\n let elements\n\n // 使用setTimeout来确保getElements拿到最新的dom\n setTimeout(() => {\n elements = Array.from(getElements(rootElement))\n\n elementsRef.current = elements\n if (elements.length === 0) {\n return\n }\n // 每个需要监听的区域块\n elements.forEach((element) => {\n observer.observe(element)\n })\n }, 300)\n return () => {\n observer.disconnect()\n }\n }, [rootElement, ...dependencies])\n\n const ref = useCallback((node: T | null) => {\n if (node !== null) {\n setRootElement(node)\n }\n }, [])\n\n function setCurrent(\n index: number,\n scrollContainer?: HTMLElement,\n offset?: number\n ): void {\n const offsetValue = offset || 0\n const elements = elementsRef.current\n if (!elements) {\n return\n }\n if (elements[index]) {\n clickRef.current = true\n const parent = elements[index].parentElement\n if (scrollContainer) {\n scrollContainer.scrollTop =\n elements[index].getBoundingClientRect().top -\n offsetValue +\n window.pageYOffset\n } else if (parent) {\n parent.scrollTop =\n elements[index].getBoundingClientRect().top + window.pageYOffset\n }\n\n setCurr(index)\n }\n }\n return [current, setCurrent, ref]\n}\n\nexport interface IFeedAdData {\n type: 2004 | 2005 | 2006\n fix_position: number\n id: number\n id_str: string\n image_list: [\n {\n url: string\n width: number\n height: number\n }\n ]\n image_mode: number\n label: string\n log_extra: string\n ad_log_id: string\n materiel_id: string\n materiel_str: string\n rit: number\n rit_str: string\n source: string\n time: number\n title: string\n web_title: string\n web_url: string\n unique_id_str: string\n inserted?: boolean | undefined\n track_url_list?: string[]\n click_track_url_list?: string[]\n avatar_url?: string\n}\n\ninterface IFeedAdResult {\n status: number\n prompts?: string\n data: IFeedAdData[]\n}\n/**\n * 获取feed流广告位\n * @param category 频道名\n * @param page 页面名\n */\nexport function useFeedAd(category: string, page = 'home') {\n const [feedAd, setFeedAd] = useState([])\n const cityName = useCityName()\n\n // 广告接口,资讯页page为information,只针对广告接口对page做修改\n const curPage = page === 'feed' ? 'information' : page\n useEffect(() => {\n if (cityName === undefined) {\n return\n }\n const url = `/motor/ad/m/pc/channel_fixed_position?page=${curPage}&category=${category}&city_name=${encodeURIComponent(\n cityName || ''\n )}`\n fetch(url, {\n credentials: 'include',\n })\n .then((result: Partial) => {\n if (!result || !result.data || result.status !== 0) {\n logger.warn(`[channel feed error],err: ${JSON.stringify(result)}`, {\n url: window?.location?.href,\n })\n return\n }\n setFeedAd(result.data)\n })\n .catch((err) => {\n logger.warn(`[channel feed error],err: ${err?.message}`, {\n url: window?.location?.href,\n })\n })\n }, [cityName, page, category])\n return feedAd\n}\n","import batchedUpdates from 'lib/batched-updates'\nimport { SetStateAction, useEffect, useState } from 'react'\n\ntype Subscriber = () => void\n\nfunction makePubSubHook(\n defaultState: S\n): [(setState: SetStateAction) => void, () => S] {\n let curState: S = defaultState\n\n const subscribers = new Set()\n\n function setState(setState: SetStateAction) {\n const newState =\n typeof setState === 'function'\n ? (setState as Function)(curState)\n : setState\n if (curState === newState) {\n return\n }\n curState = newState\n subscribers.forEach((subscriber) => {\n batchedUpdates(() => {\n subscriber()\n })\n })\n }\n\n function hook() {\n const [state, setState] = useState(curState)\n\n useEffect(() => {\n batchedUpdates(() => {\n setState(curState)\n })\n const subscriber = () => {\n setState(curState)\n }\n subscribers.add(subscriber)\n return () => {\n subscribers.delete(subscriber)\n }\n }, [])\n\n return state\n }\n\n return [setState, hook]\n}\n\nexport default makePubSubHook\n","import {\n responsiveConfig,\n useResponsive,\n} from 'Components/hooks/use-responsive'\n\n// 用于client获取header的高度,ssr场景不建议使用\nexport function getHeaderHeight() {\n if (typeof window === 'undefined') {\n throw new Error('call getHeaderHeight on the server side')\n }\n if (window.matchMedia(`(min-width: ${responsiveConfig['xl']}px)`).matches) {\n return 78 // xl\n } else if (\n window.matchMedia(`(min-width: ${responsiveConfig['lg']}px)`).matches\n ) {\n return 64 // lg\n } else {\n return 56 // sm\n }\n}\n\nfunction useHeaderHeight() {\n const { lg, xl } = useResponsive()\n if (xl) {\n return 78 // xl\n } else if (lg) {\n return 64 // lg\n } else {\n return 56 // sm\n }\n}\n\nexport default useHeaderHeight\n","import { getPageType } from 'Components/hooks/use-side-nav-status'\nimport makePubSubHook from 'Components/hooks/make-pub-sub-hook'\n\ntype HeaderTheme = 'default' | 'theater'\n\nconst defaultTheme: HeaderTheme = 'default'\n\nconst [setHeaderTheme, useHeaderTheme] = makePubSubHook('default')\n\nexport { setHeaderTheme }\n\nfunction getHeaderThemeByPageType(): HeaderTheme {\n const pageType = getPageType()\n if (!pageType) {\n return defaultTheme\n }\n if (pageType.indexOf('theater') > -1) {\n return 'theater'\n }\n return defaultTheme\n}\n\nexport function resetHeaderTheme() {\n setHeaderTheme(getHeaderThemeByPageType())\n}\n\nexport default useHeaderTheme\n","import { useCallback, useRef } from 'react'\nimport { unstable_batchedUpdates } from 'react-dom'\n\nconst defaultValue = Symbol('hoverDelay')\n\nfunction useHoverDelay(\n callback: (value: T, ...args: any[]) => void,\n delay?: number\n): [\n (value: T, ...args: any[]) => void,\n () => void,\n (value: T, ...args: any[]) => void\n] {\n const valueRef = useRef()\n const timerRef = useRef()\n\n const start = useCallback(\n (value: T, ...args) => {\n valueRef.current = value\n\n timerRef.current && clearTimeout(timerRef.current)\n\n timerRef.current = setTimeout(() => {\n if (valueRef.current === value) {\n unstable_batchedUpdates(() => {\n callback(value, ...args)\n valueRef.current = defaultValue\n })\n }\n }, delay || 200)\n },\n [callback]\n )\n\n const cancel = useCallback(() => {\n valueRef.current = defaultValue\n }, [])\n\n const immediate = useCallback((value: T, ...args) => {\n cancel()\n callback(value, ...args)\n }, [])\n\n return [start, cancel, immediate]\n}\n\nexport default useHoverDelay\n","import { useEffect, useState } from 'react'\n\ninterface IOffset {\n top: number\n right: number\n bottom: number\n left: number\n}\n\ntype Subscriber = () => void\n\nconst subscribers = new Set()\n\n// 目前只实现了 top 逻辑\nlet curOffset: IOffset = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n}\n\nexport function getPageOffset() {\n return curOffset\n}\n\nexport function setPageOffset({\n top = 0,\n right = 0,\n bottom = 0,\n left = 0,\n}: Partial) {\n const newOffset = { top, right, bottom, left }\n if (\n (['top', 'right', 'bottom', 'left'] as (keyof IOffset)[]).every(\n (prop) => newOffset[prop] === curOffset[prop]\n )\n ) {\n // 值不变直接返回\n return\n }\n curOffset = newOffset\n for (const subscriber of subscribers) {\n subscriber()\n }\n}\n\nfunction usePageOffset() {\n const [offset, setOffset] = useState(curOffset)\n\n useEffect(() => {\n const subscriber = () => {\n setOffset(curOffset)\n }\n subscribers.add(subscriber)\n return () => {\n subscribers.delete(subscriber)\n }\n }, [])\n\n return offset\n}\n\nexport default usePageOffset\n","import { useEffect, useState } from 'react'\nimport { unstable_batchedUpdates } from 'react-dom'\n\ntype Subscriber = () => void\n\nconst subscribers = new Set()\n\nexport type IResponsiveType = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | string\n\ntype ResponsiveConfig = {\n [key in IResponsiveType]: number\n}\nexport type ResponsiveInfo = {\n [key in IResponsiveType]: boolean\n}\n\nlet info: ResponsiveInfo\n\n// 1440分辨率以上屏幕为主\nconst defaultInfo: ResponsiveInfo = {\n sm: true,\n md: true,\n lg: true,\n xl: false,\n '2xl': false,\n}\n\n// 从小到大排序\nexport const responsiveConfig: ResponsiveConfig = {\n sm: 1024,\n md: 1280,\n lg: 1440,\n xl: 1680,\n '2xl': 1920,\n}\n\nexport const responsiveTypes: IResponsiveType[] = [\n 'sm',\n 'md',\n 'lg',\n 'xl',\n '2xl',\n]\n\nlet isResponsivePaused = false\n\n// 开启/暂停 响应式下发\nexport function toggleResponsivePausedStatus(target?: boolean) {\n isResponsivePaused = target === undefined ? !isResponsivePaused : target\n}\n\ninterface IMediaSqlHandler {\n key: IResponsiveType\n mediaSql: MediaQueryList\n handler: (event: MediaQueryListEvent) => void\n}\n\nlet removeResponsiveListener: (() => void) | null\nlet curResponsiveType: IResponsiveType = 'lg'\nlet isUpdated = false\n\nfunction addResponsiveListener() {\n if (removeResponsiveListener) {\n return\n }\n\n let mediaSqlHandlers: IMediaSqlHandler[] | null = Object.keys(\n responsiveConfig\n ).map((key) => {\n return {\n key,\n mediaSql: window.matchMedia(`(min-width: ${responsiveConfig[key]}px)`),\n handler: (event: MediaQueryListEvent) => {\n if (isResponsivePaused) {\n return\n }\n const newInfo = { ...info }\n newInfo[key] = event.matches\n info = newInfo\n isUpdated = true\n\n unstable_batchedUpdates(() => {\n subscribers.forEach((subscriber) => {\n subscriber()\n })\n })\n },\n }\n })\n\n const newInfo: ResponsiveInfo = {}\n\n mediaSqlHandlers!.forEach(({ key, mediaSql, handler }) => {\n newInfo[key] = mediaSql.matches\n if (mediaSql.addListener) {\n // 兼容处理\n mediaSql.addListener(handler)\n } else {\n mediaSql.addEventListener('change', handler)\n }\n })\n\n info = newInfo\n isUpdated = true\n\n removeResponsiveListener = () => {\n mediaSqlHandlers!.forEach(({ mediaSql, handler }) => {\n if (mediaSql.removeListener) {\n mediaSql.removeListener(handler)\n } else {\n mediaSql.removeEventListener('change', handler)\n }\n })\n mediaSqlHandlers = null\n removeResponsiveListener = null\n }\n}\n\nexport function useResponsive(): ResponsiveInfo {\n const [state, setState] = useState(defaultInfo)\n\n useEffect(() => {\n addResponsiveListener()\n setState(info)\n const subscriber = () => {\n setState(info)\n }\n subscribers.add(subscriber)\n return () => {\n subscribers.delete(subscriber)\n if (subscribers.size === 0) {\n if (removeResponsiveListener) {\n removeResponsiveListener()\n }\n }\n }\n }, [])\n\n return state\n}\n\nexport function computedResponsive(): IResponsiveType {\n // 缓存计算结果\n if (isUpdated) {\n for (let i = responsiveTypes.length - 1; i >= 0; i--) {\n if (info[responsiveTypes[i]]) {\n curResponsiveType = responsiveTypes[i]\n break\n }\n }\n isUpdated = false\n }\n return curResponsiveType\n}\n","import { useEffect, useRef, useState } from 'react'\nimport batchedUpdates from 'lib/batched-updates'\n\nexport function getScrollTop() {\n return document.body.scrollTop || document.documentElement.scrollTop\n}\n\nexport function setScrollTop(scrollTop: number) {\n document.body.scrollTop = scrollTop\n document.documentElement.scrollTop = scrollTop\n}\n\nlet isObservePaused: boolean\nlet needImmediateScroll: boolean\n\nexport function scrollToWithStickyObserve(scrollTop: number) {\n isObservePaused = true\n needImmediateScroll = true\n setScrollTop(scrollTop)\n setTimeout(() => {\n isObservePaused = false\n }, 500)\n}\n\ntype Subscriber = (params: {\n isDown: boolean\n distance: number\n force: boolean\n}) => void\nconst subscribers = new Set()\nlet isListening = false\nlet distance = 0\nlet curDirection: boolean\nlet preTop: number\n\nconst handleScroll = () => {\n const curTop = getScrollTop()\n const curOffset = curTop - preTop\n preTop = curTop\n\n if (isObservePaused) {\n return\n }\n\n const curIsDown = curOffset > 0\n if (curIsDown !== curDirection) {\n distance = curOffset\n curDirection = curIsDown\n } else {\n distance += curOffset\n }\n const force = needImmediateScroll\n subscribers.forEach((subscriber) => {\n batchedUpdates(() => {\n subscriber({\n isDown: curIsDown,\n distance: Math.abs(distance),\n force,\n })\n })\n })\n needImmediateScroll = false\n}\n\nexport function addScrollDirectionListener(subscriber: Subscriber) {\n subscribers.add(subscriber)\n if (isListening) {\n return\n }\n preTop = getScrollTop()\n distance = 0\n window.addEventListener('scroll', handleScroll)\n isListening = true\n}\n\nexport function removeScrollDirectionListener(subscriber: Subscriber) {\n subscribers.delete(subscriber)\n if (subscribers.size === 0) {\n window.removeEventListener('scroll', handleScroll)\n isListening = false\n }\n}\n\nexport interface IScrollStickyState {\n isFixed: boolean\n duration: number\n}\n\nexport interface IScrollStickyObserveParams {\n state: IScrollStickyState\n setState(state: IScrollStickyState): void\n canListenScroll(params: { isIntersecting: boolean; top: number }): boolean\n isCurrentFixed(params: {\n isIntersecting: boolean\n prevIsIntersecting: boolean\n isScrollUp: boolean\n top: number\n }): boolean\n}\n\nfunction useScrollStickyObserve({\n state,\n setState,\n canListenScroll,\n isCurrentFixed,\n}: IScrollStickyObserveParams) {\n const [markNode, setMarkNode] = useState(null)\n\n useEffect(() => {\n return () => {\n setState({\n isFixed: false,\n duration: 0,\n })\n }\n }, [])\n\n const [isIntersecting, setIsIntersecting] = useState(false)\n const prevIsIntersectingRef = useRef(isIntersecting)\n const [top, setTop] = useState(0)\n const [isScrollUp, setIsScrollUp] = useState(false)\n const isFixedRef = useRef(state.isFixed)\n\n useEffect(() => {\n const subscriber: Subscriber = ({ isDown, distance, force }) => {\n if (force || (distance >= 120 && isScrollUp !== isDown)) {\n setIsScrollUp(isDown)\n }\n }\n if (canListenScroll({ isIntersecting, top }) || isFixedRef.current) {\n addScrollDirectionListener(subscriber)\n }\n return () => {\n removeScrollDirectionListener(subscriber)\n }\n }, [isIntersecting, canListenScroll, top, isScrollUp])\n\n useEffect(() => {\n const isFixed = isCurrentFixed({\n isIntersecting,\n prevIsIntersecting: prevIsIntersectingRef.current,\n isScrollUp,\n top,\n })\n prevIsIntersectingRef.current = isIntersecting\n if (isFixed === isFixedRef.current) {\n return\n }\n isFixedRef.current = isFixed\n setState({\n isFixed,\n duration: 300,\n })\n }, [isIntersecting, isScrollUp, top])\n\n useEffect(() => {\n if (!markNode) return\n const observer = new IntersectionObserver((changes) => {\n changes.forEach((change) => {\n if (isObservePaused) {\n return\n }\n const { top } = change.boundingClientRect\n batchedUpdates(() => {\n setIsIntersecting(change.isIntersecting)\n setTop(top)\n })\n })\n }, {})\n observer.observe(markNode)\n\n return () => {\n observer.disconnect()\n }\n }, [markNode])\n\n return { state, setMarkNode }\n}\n\nexport default useScrollStickyObserve\n","import { resetHeaderTheme } from 'Components/hooks/use-header-theme'\nimport makePubSubHook from 'Components/hooks/make-pub-sub-hook'\n\ntype SideNavStatus =\n | 'on' // 展开\n | 'off' // 收起\n | 'none' // 隐藏\n | 'fixed' // 固定加蒙层\n | 'md-none' // 1440 以下隐藏\n | 'md-off' // 1440 以下收起\n | 'lg-off' // 1680 以下收起\n\nconst defaultStatus: SideNavStatus = 'lg-off'\n\nlet pageType: string\nexport function setPageType(newPageType: string) {\n pageType = newPageType\n resetSideNavStatus()\n resetHeaderTheme()\n}\n\nexport function getPageType() {\n return pageType\n}\n\nfunction getSideNavStatusByPageType(): SideNavStatus {\n if (!pageType) {\n return defaultStatus\n }\n if (pageType.indexOf('no-nav') > -1) {\n return 'none'\n }\n if (pageType.indexOf('auto-nav') > -1) {\n return 'md-none'\n }\n if (pageType.indexOf('lg-off-nav') > -1) {\n return 'lg-off'\n }\n return defaultStatus\n}\n\nconst [setSideNavStatus, useSideNavStatus] =\n makePubSubHook(defaultStatus)\n\nexport function resetSideNavStatus() {\n setSideNavStatus(getSideNavStatusByPageType())\n}\n\nexport { setSideNavStatus }\n\nexport default useSideNavStatus\n","import { useEffect, useState } from 'react'\nimport { isHasTips } from 'lib/ie-version'\nimport { setPageOffset } from 'Components/hooks/use-page-offset'\n\n// 是否需要添加顶部浏览器升级提示\nfunction useHasTips() {\n const [value, setValue] = useState(false)\n\n useEffect(() => {\n const value = isHasTips()\n if (value) {\n setValue(true)\n setPageOffset({ top: 52 })\n }\n }, [])\n\n return value\n}\n\nexport default useHasTips\n","import { useEffect, useState } from 'react'\nimport batchedUpdates from 'lib/batched-updates'\nlet isLoad = false\n\ntype Subscriber = () => void\n\nconst subscribers = new Set()\n\nfunction handleLoad() {\n isLoad = true\n subscribers.forEach((subscriber) => {\n batchedUpdates(() => {\n subscriber()\n })\n })\n}\n\nif (typeof window !== 'undefined') {\n window.addEventListener('load', handleLoad)\n}\n\nfunction useWindowLoaded() {\n const [state, setState] = useState(isLoad)\n\n useEffect(() => {\n if (isLoad) return\n const subscriber = () => {\n setState(isLoad)\n }\n subscribers.add(subscriber)\n return () => {\n subscribers.delete(subscriber)\n }\n }, [])\n\n return state\n}\n\nexport default useWindowLoaded\n","import React, { PureComponent } from 'react'\nimport classNames from 'classnames'\nimport { Fade } from './animation'\nimport Portal from './portal'\n\nexport interface IModalProps {\n /** 样式类名 */\n className?: string\n title?: React.ReactNode\n children: React.ReactNode\n maskClosable: boolean\n /** 关闭后回调 */\n onClose?: (e: React.MouseEvent) => void\n /** 是否可见 */\n visible: boolean\n /** 获取挂载容器 */\n getContainer?: () => HTMLElement\n /** 底部配置 */\n footer?: React.ReactNode\n /** 是否展示关闭按钮 */\n closable: boolean\n /** 关闭函数 */\n close: () => void\n /** 内容宽度 */\n width?: number | string\n /** 内容高度 */\n height?: number | string\n /** 打开关闭是否有延时*/\n timeout?: number | { appear?: number; enter?: number; exit?: number }\n CloseIcon?: (x: any) => JSX.Element\n}\n\nexport default class Modal extends PureComponent {\n static defaultProps: Partial = {\n closable: false,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close: () => {},\n maskClosable: true,\n visible: false,\n }\n\n getContainer = () => {\n const { getContainer } = this.props\n if (getContainer) {\n return getContainer()\n }\n const container = document.createElement('div')\n document.body.appendChild(container)\n return container\n }\n\n handleMaskClick = (e: React.MouseEvent) => {\n const { maskClosable } = this.props\n if (maskClosable && e.target === e.currentTarget) {\n this.onClose(e)\n }\n }\n\n onClose = (e: React.MouseEvent) => {\n const { onClose, close } = this.props\n onClose && onClose(e)\n close()\n }\n\n onEntered = () => {\n const clientWidthBefore = document.body.clientWidth\n document.body.style.overflow = 'hidden'\n const clientWidthAfter = document.body.clientWidth\n\n const scrollBarWidth = clientWidthAfter - clientWidthBefore\n\n document.body.style.paddingRight = `${scrollBarWidth}px`\n }\n\n onExited = () => {\n document.body.style.overflow = ''\n document.body.style.paddingRight = '0'\n }\n\n getComponent() {\n const {\n visible,\n className,\n children,\n title,\n closable,\n CloseIcon,\n footer,\n width,\n height,\n timeout,\n } = this.props\n\n const dest: any = {}\n if (width !== undefined) {\n dest.width = width\n }\n if (height !== undefined) {\n dest.height = height\n }\n\n return (\n \n \n
\n {!!title && (\n
\n
{title}
\n
\n )}\n {closable &&\n (CloseIcon ? (\n \n ) : (\n \n ))}\n
{children}
\n {!!footer &&
{footer}
}\n
\n \n \n \n )\n }\n\n render() {\n return (\n {this.getComponent()}\n )\n }\n}\n","import React, { useContext, useEffect, useRef, useCallback } from 'react'\nimport get from 'lodash/get'\nimport fetch from 'isomorphic-unfetch'\nimport classnames from 'classnames'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport getUrl from 'lib/url'\nimport { useScrollSpy } from 'Components/hooks'\nimport { GlobalStoreContext } from 'Components/store'\n\nexport interface ICity {\n /* 城市首字母 */\n initials: string\n /* 城市列表 */\n city: [\n {\n city_name: string\n }\n ]\n}\n\ninterface IProps {\n onChange?(cityName?: string): void\n showNationWide?: boolean\n isLocalUse?: boolean\n}\n\nexport default function City(props: IProps) {\n const { onChange, showNationWide, isLocalUse } = props\n // 设置全局的城市\n const { state: globalStore, dispatch } = useContext(GlobalStoreContext)\n const { cities } = globalStore\n\n // 整体dom\n const ref = useRef(null)\n\n const [currIndex, setCurrIndex, cityRef] = useScrollSpy<\n HTMLElement,\n HTMLDivElement\n >((node) => {\n return node.querySelectorAll('.cities')\n }, false)\n /* 获取城市列表 */\n const fetchCities = useCallback(() => {\n return fetch(getUrl('/motor/dealer/m/v1/get_dealer_city_list/'))\n .then((res) => res.json())\n .then((json) => {\n const data = get(json, 'data', [])\n if (data.length) {\n data.unshift({\n initials: '热门城市',\n city: [\n { city_name: '北京', initials: '热门城市' },\n { city_name: '上海', initials: '热门城市' },\n { city_name: '广州', initials: '热门城市' },\n { city_name: '深圳', initials: '热门城市' },\n { city_name: '重庆', initials: '热门城市' },\n { city_name: '天津', initials: '热门城市' },\n { city_name: '成都', initials: '热门城市' },\n { city_name: '杭州', initials: '热门城市' },\n { city_name: '武汉', initials: '热门城市' },\n { city_name: '苏州', initials: '热门城市' },\n { city_name: '西安', initials: '热门城市' },\n { city_name: '南京', initials: '热门城市' },\n ],\n })\n if (showNationWide) {\n data.unshift({\n initials: '全国',\n city: [{ city_name: '全国', initials: '全国' }],\n })\n }\n }\n if (!isLocalUse)\n dispatch({\n type: 'setCities',\n payload: data,\n })\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n useEffect(() => {\n if (!cities || !cities.length) {\n fetchCities()\n }\n }, [cities, fetchCities])\n useEffect(() => {\n function handleDocumentClick(e: Event) {\n if (!ref.current || ref.current.contains(e.target as Node)) {\n return\n }\n onChange && onChange()\n // setCity(Object.assign({}, city, { show: false }))\n }\n on(window, 'click', handleDocumentClick)\n return () => {\n off(window, 'click', handleDocumentClick)\n }\n }, [onChange])\n\n /* 渲染城市首字母 */\n function renderLetter() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map((item, index) => (\n {\n setCurrIndex(index)\n // scrollView(item.initials)\n }}\n >\n {item.initials.slice(0, 1).toLocaleUpperCase()}\n \n ))}\n \n
\n )\n }\n\n /* 渲染城市列表 */\n function renderCities() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map((city) => {\n return (\n \n

{city.initials.toLocaleUpperCase()}

\n {city.city.map((item: ICity['city'][0]) => (\n {\n // setCity({ show: false, name: item.city_name })\n sendTeaCommEvent('clk_event', {\n event_id: 'common_city_select_menu',\n })\n if (!isLocalUse)\n dispatch({\n type: 'setCityName',\n payload: item.city_name,\n })\n if (onChange) {\n onChange(item.city_name)\n }\n }}\n >\n {item.city_name}\n \n ))}\n \n )\n })}\n \n
\n )\n }\n if (!cities || !cities.length) {\n return null\n }\n return (\n ) => {\n e.stopPropagation()\n }}\n >\n {renderLetter()}\n {renderCities()}\n \n \n )\n}\n","import React, { useCallback, useEffect, useRef } from 'react'\nimport fetch from 'lib/decorated-fetch'\nimport Router from 'next/router'\nimport { logger, metrics } from 'lib/slardar-utils'\nimport ImageStyles from 'Components/view-image/style'\nimport getUrl from 'lib/url'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { useCityName } from 'Components/hooks'\nimport { getSearchLink } from 'New/search/utils'\nimport { handleAsPath } from 'lib/utils'\nimport decodeUriComponent from 'decode-uri-component'\nimport xss from 'xss'\nimport classNames from 'classnames'\n\ninterface IBuriedPointInfo {\n motor_id?: string\n series_id?: string\n}\n\ninterface IResult {\n keyword: string\n image_url?: string\n cpl_type?: number\n buried_point_info?: IBuriedPointInfo\n}\ninterface IListProps {\n data: IResult[]\n value: string\n cityName: string | undefined\n setList: (list: any) => void\n type: string\n keyword: string\n inputeValue?: string\n}\ninterface IState {\n data: IResult[]\n show: boolean\n type: string\n}\n\nconst handler = (\n spanKeyword: string,\n searchMode = 'common',\n value: string,\n cityName: string | undefined,\n query_input_text?: string\n) => {\n // 去除高亮插入标签\n const keyword = spanKeyword?.replace(/<[^>]+>/g, '')\n if (searchMode === 'sug') {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_recommend',\n query_content: keyword,\n query_input_text,\n })\n } else if (searchMode === 'common' || searchMode === 'preset') {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_btn',\n query_content: keyword,\n query_input_text,\n })\n } else if (searchMode === 'history') {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_history',\n query_content: keyword,\n query_input_text,\n })\n }\n sessionStorage.setItem('search_content', keyword)\n sessionStorage.setItem('search_mode', searchMode)\n saveLocalSearch(keyword)\n const link = getSearchLink({\n keyword,\n city_name: cityName || '',\n from: 'DELETE_KEY',\n api_param: 'DELETE_KEY',\n search_mode: searchMode,\n })\n // 非搜索页面的话新开页面跳转\n if (window?.location?.pathname?.indexOf('/search') === 0) {\n // 如果aspath 没改变的话需要强制刷新页面 不然 右侧组件 show 有问题\n if (\n decodeUriComponent(`/search${window.location.search}`) ===\n decodeUriComponent(link.as || '')\n ) {\n window.location.href = link.as\n return\n }\n Router.push(link.link, link.as)\n // window.location.href = link.as\n return\n }\n window.open(link.as, '_blank')\n}\n\nfunction ResultList({\n data,\n value,\n cityName,\n setList,\n type = '',\n inputeValue = '',\n}: IListProps) {\n //考虑高亮关键字\n if (inputeValue && data?.length) {\n /* eslint-disable no-unused-expressions */\n data?.forEach((item: any) => {\n if (item?.keyword && item?.keyword?.indexOf('') === -1) {\n item.keyword = item?.keyword?.replace(\n inputeValue,\n `${inputeValue}`\n )\n }\n })\n }\n return (\n
    \n {type && data?.length ? (\n
  • \n 历史搜索\n {\n clearLocalSearch()\n setList({ type: '', data: [], show: false })\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_clear',\n })\n }}\n >\n 清空\n \n
  • \n ) : (\n ''\n )}\n {data?.map?.((item: IResult, index: number) => {\n if (item.keyword && item.keyword?.trim()) {\n return (\n ) => {\n e.stopPropagation()\n handler(\n item.keyword,\n type || 'sug',\n value,\n cityName,\n inputeValue\n )\n }}\n >\n {item?.image_url && item?.cpl_type === 2 ? (\n \"\"\n ) : (\n ''\n )}\n \n {item?.buried_point_info?.series_id ? (\n {\n e.stopPropagation()\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_tag',\n query_content: item.keyword?.replace(/<[^>]+>/g, ''),\n query_input_text: inputeValue,\n tag_name: '车系直达',\n })\n }}\n >\n 车系直达\n \n ) : (\n ''\n )}\n {item?.buried_point_info?.motor_id ? (\n {\n e.stopPropagation()\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_tag',\n query_content: item.keyword?.replace(/<[^>]+>/g, ''),\n query_input_text: inputeValue,\n tag_name: '车友圈',\n })\n }}\n >\n 车友圈\n \n ) : (\n ''\n )}\n \n )\n }\n return ''\n })}\n \n
\n )\n}\n\nconst fetchRollInfo = async () => {\n try {\n const json = await fetch(getUrl(`/motor/searchpage/launcher/main/v1/`))\n return json?.data?.hot_search_roll_info?.map((item: any) => item.default)\n } catch (error) {\n return []\n }\n}\n\nconst DEFUALT_PLACEHOLDER = ''\n\ninterface IProps {\n isFixed?: boolean\n className?: string\n}\n\nexport default function Search(props: IProps) {\n const cityName = useCityName()\n const [focus, setFocus] = React.useState(false)\n const [value, setValue] = React.useState('')\n\n /* 列表数据 */\n const [list, setList] = React.useState({\n show: true,\n data: [],\n type: '',\n })\n\n const isShowListRef = useRef(false)\n\n const searchDivRef = useRef(null)\n const buttonRef = useRef(null)\n const inputRef = useRef(null)\n\n // 搜索预置词 index 间隔3s\n const rollIndex = useRef(0)\n const rollList = useRef()\n\n const setRollInfo = useCallback(() => {\n // 用户focus时 或者 无预置词 直接返回\n if (focus || !rollList?.current?.length || !inputRef?.current) {\n return\n }\n // 搜索页面保留用户的输入\n if (window?.location?.pathname?.indexOf('/search') === 0) {\n if (inputRef?.current?.value === '') {\n inputRef.current.placeholder = rollList?.current?.[rollIndex?.current]\n rollIndex.current++\n if (rollIndex.current >= rollList?.current?.length) {\n rollIndex.current = 0\n }\n }\n return\n }\n // 非搜索页面 非focus时 用户有输入也清空\n inputRef.current.value = ''\n setValue('')\n inputRef.current.placeholder = rollList?.current?.[rollIndex?.current]\n rollIndex.current++\n if (rollIndex.current >= rollList?.current?.length) {\n rollIndex.current = 0\n }\n }, [focus])\n\n useEffect(() => {\n const init = async () => {\n const list = await fetchRollInfo()\n rollList.current = list\n setRollInfo()\n }\n init()\n }, [])\n\n useEffect(() => {\n const rollTimer = window.setInterval(() => {\n setRollInfo()\n }, 3000)\n return () => {\n window.clearInterval(rollTimer)\n }\n }, [setRollInfo])\n\n const href = typeof window === 'undefined' ? '' : window?.location?.href\n const keyword = handleAsPath(href)?.keyword\n useEffect(() => {\n // 搜索页面才处理\n if (window?.location?.pathname?.indexOf('/search') === 0) {\n setValue(keyword)\n saveLocalSearch(keyword)\n setList((preValue) => {\n return { type: '', data: preValue.data, show: false }\n })\n }\n }, [keyword])\n\n useEffect(() => {\n const searchDivDom = searchDivRef.current\n const searchButtonDom = buttonRef.current\n const onMouseEnter = () => {\n if (searchDivDom) searchDivDom.classList.add('button-hover')\n }\n const onMouseLeave = () => {\n if (searchDivDom) searchDivDom.classList.remove('button-hover')\n }\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.addEventListener('mouseenter', onMouseEnter)\n searchButtonDom.addEventListener('mouseleave', onMouseLeave)\n }\n\n return () => {\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.removeEventListener('mouseenter', onMouseEnter)\n searchButtonDom.removeEventListener('mouseleave', onMouseLeave)\n }\n }\n }, [searchDivRef.current, buttonRef.current])\n\n const fetchComlete = (value: any) => {\n fetch(\n getUrl(`/motor/searchacl/complete?motor_source=pc_new&keyword=${value}`)\n ).then((json) => {\n if (inputRef?.current?.value === '') {\n return\n }\n setList({\n show: true,\n type: '',\n data: json?.data?.filter((t: any) => t?.keyword !== 'undefined'),\n })\n })\n }\n\n useEffect(() => {\n if (!value || handleAsPath(window?.location?.href)?.keyword === value) {\n return\n }\n fetchComlete(inputRef?.current?.value)\n }, [value])\n\n const searchBtnHandler = () => {\n let searchType = 'common'\n isShowListRef.current = false\n let searchValue = inputRef?.current?.value?.trim() || ''\n if (\n inputRef?.current?.placeholder &&\n (searchValue === undefined || searchValue === '')\n ) {\n searchType = 'preset'\n searchValue = inputRef?.current?.placeholder as string\n }\n handler(\n searchValue?.trim(),\n searchType,\n searchValue?.trim(),\n cityName,\n inputRef?.current?.value || ''\n )\n }\n\n // 顶部菜单吸屏的时候 需要收起下拉框\n const { isFixed = false, className } = props\n useEffect(() => {\n if (isFixed) {\n setList((preValue) => {\n return { ...preValue, show: false }\n })\n setFocus(false)\n inputRef?.current?.blur?.()\n }\n }, [isFixed])\n\n return (\n \n {\n isShowListRef.current = true\n setValue(e?.target?.value)\n if (e?.target?.value === '') {\n setList({ data: getLocalSearch(), show: true, type: 'history' })\n } else {\n setList((preValue) => {\n return { type: '', data: preValue.data, show: false }\n })\n }\n }}\n onBlur={() => {\n setFocus(false)\n setTimeout(() => {\n setList({ ...list, show: false, type: '' })\n }, 200)\n }}\n onFocus={(e) => {\n isShowListRef.current = true\n // focus 搜索框被点击但未输出任何内容状态\n // 页面切换 value为undefined 但是 e.target.value 有可能任会有值\n if (e?.target?.value === '') {\n setList({ data: getLocalSearch(), show: true, type: 'history' })\n } else {\n if (list?.data?.length) {\n setList({ ...list, show: true, type: '' })\n } else {\n fetchComlete(e?.target?.value)\n }\n }\n setFocus(true)\n sendTeaCommEvent('clk_event', {\n event_id: 'common_search_input',\n })\n }}\n onKeyDownCapture={(e) => {\n if (e.keyCode === 13) {\n e?.currentTarget?.blur()\n searchBtnHandler()\n setFocus(false)\n setTimeout(() => {\n setList({ ...list, show: false, type: '' })\n }, 200)\n }\n }}\n />\n {\n e.stopPropagation()\n searchBtnHandler()\n }}\n >\n 搜索\n \n {list.show && isShowListRef?.current ? (\n \n ) : (\n ''\n )}\n \n )\n}\n\nfunction getLocalSearch() {\n if (typeof window === 'undefined') {\n return []\n }\n try {\n const list = window.localStorage.getItem('search_local_list') || '[]'\n return JSON.parse(list)?.map((value: string) => {\n return { keyword: value }\n })\n } catch (err: any) {\n metrics.counter('localStorage.getItem', { key: 'search_local_list' })\n logger.warn(\n `[search_local_list] Error get window.localStorage.getItem, err: ${err?.message}`\n )\n return []\n }\n}\n\nfunction clearLocalSearch() {\n if (typeof window === 'undefined') {\n return\n }\n try {\n window.localStorage.setItem('search_local_list', '')\n } catch (err: any) {\n console.error(err)\n metrics.counter('localStorage.setItem', { key: 'search_local_list' })\n logger.warn(\n `[search_local_list] Error clear window.localStorage.setItem, err: ${err?.message}`\n )\n }\n}\n\nfunction saveLocalSearch(value: string) {\n if (typeof window === 'undefined' || value === undefined) {\n return\n }\n try {\n const storageList = JSON.parse(\n window.localStorage.getItem('search_local_list') || '[]'\n )\n // 首先去重\n const index = storageList.indexOf(value)\n if (index > -1) {\n storageList.splice(index, 1)\n }\n // 最多8条记录\n const maxList = storageList.slice(0, 7)\n window.localStorage.setItem(\n 'search_local_list',\n JSON.stringify([value, ...maxList])\n )\n } catch (err: any) {\n console.error(err)\n metrics.counter('localStorage.setItem', { key: 'search_local_list' })\n logger.warn(\n `[search_local_list] Error set window.localStorage.setItem, err: ${err?.message}`\n )\n }\n}\n","import React, { useContext, useEffect, useRef } from 'react'\nimport fetch from 'isomorphic-unfetch'\nimport getUrl from 'lib/url'\nimport { GlobalStoreContext } from 'Components/store'\nimport { teaConfig, sendTeaCommEvent } from 'lib/tea-analyze'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport Avatar, { ugcUserLink } from 'Components/author/avatar'\nimport ToolTip from 'Components/new/tool-tip'\nimport style from './new-user.module.scss'\n\nconst fetchAntiToken = () => {\n return fetch(getUrl('/tt-anti-token'))\n .then((res) => res.json())\n .then((res) => {\n window.localStorage.setItem('tt-anti-token', res?.data?.token || '')\n })\n .catch((err) => {\n console.error(err)\n })\n}\n\nexport default function User(props: any) {\n const { size, isFixed } = props\n // 设置全局的城市\n const { state: globalStore } = useContext(GlobalStoreContext)\n const { userData } = globalStore\n\n useEffect(() => {\n if (!userData) {\n fetchAntiToken()\n }\n }, [userData])\n\n const isLogin = userData && userData.user_id\n const screenName = (userData && userData.screen_name) || ''\n\n useEffect(() => {\n if (userData?.user_id) {\n sessionStorage.setItem('userData', JSON.stringify(userData))\n teaConfig({\n user_id: userData.user_id,\n })\n }\n }, [userData?.user_id])\n\n const { openLogin, logout } = useContext(LoginStoreContext)\n\n const closeRef = useRef<() => void>()\n\n useEffect(() => {\n if (isFixed) {\n if (closeRef.current) {\n closeRef.current()\n }\n }\n }, [isFixed])\n\n return isLogin ? (\n {\n closeRef.current = close\n return (\n
    \n
  • \n {ugcUserLink({ userId: userData?.user_id, target: '_self' })(\n
    \n \n {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_login_menu_item',\n button_name: '个人主页',\n })\n }}\n >\n

    {screenName}

    \n
    \n \n )}\n
  • \n
  • \n {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_login_menu_item',\n button_name: '退出登录',\n })\n logout()\n }}\n >\n \n 退出登录\n \n
  • \n
\n )\n }}\n >\n {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_user_profile_icon',\n })\n }}\n />\n \n ) : (\n {\n openLogin({\n enter_method: 'login',\n })\n sendTeaCommEvent('clk_event', {\n event_id: 'common_login_icon',\n })\n }}\n >\n 登录\n \n )\n}\n","import React, { useState, useEffect, useCallback, useRef, memo } from 'react'\nimport {\n useResponsive,\n IResponsiveType,\n computedResponsive,\n} from 'Components/hooks/use-responsive'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n// import { publishSideNav } from 'New/side-nav/utils'\nimport useSideNavStatus, {\n resetSideNavStatus,\n setSideNavStatus,\n} from 'Components/hooks/use-side-nav-status'\nimport style from './new-header-switch.module.scss'\n\nconst DEFAULT_TYPE = ''\n\nfunction HeaderSwitch({ pageType = 'new' }: { pageType?: string }) {\n const navStatus = useSideNavStatus()\n const responsive = useResponsive()\n const [responsiveType, setResponsiveType] =\n useState(DEFAULT_TYPE)\n\n // 是否手动点击触发\n const isHandle = useRef(false)\n\n useEffect(() => {\n setResponsiveType(computedResponsive())\n if (isHandle.current) {\n isHandle.current = false\n }\n }, [responsive])\n\n const handleClick = useCallback(() => {\n isHandle.current = true\n switch (navStatus) {\n case 'md-none':\n switch (responsiveType) {\n case 'sm':\n case 'md':\n setSideNavStatus('fixed')\n break\n default:\n setSideNavStatus('off')\n }\n break\n case 'fixed':\n setSideNavStatus('none')\n break\n case 'none':\n setSideNavStatus('fixed')\n break\n case 'on':\n setSideNavStatus('off')\n break\n case 'off':\n setSideNavStatus('on')\n break\n case 'md-off':\n switch (responsiveType) {\n case 'sm':\n case 'md':\n setSideNavStatus('on')\n break\n default:\n setSideNavStatus('off')\n }\n break\n case 'lg-off':\n switch (responsiveType) {\n case 'sm':\n case 'md':\n case 'lg':\n setSideNavStatus('on')\n break\n default:\n setSideNavStatus('off')\n }\n break\n }\n }, [navStatus, responsiveType])\n\n useEffect(() => {\n resetSideNavStatus()\n isHandle.current = false\n }, [responsive])\n\n useEffect(() => {\n if (isHandle.current) {\n switch (navStatus) {\n case 'on':\n case 'fixed':\n sendTeaCommEvent('clk_event', {\n event_id: 'common_menu_btn',\n shrink_type: 'unfold',\n })\n break\n case 'none':\n case 'off':\n sendTeaCommEvent('clk_event', {\n event_id: 'common_menu_btn',\n shrink_type: 'fold',\n })\n break\n }\n }\n }, [navStatus])\n\n return (\n \n \n \n \n )\n}\n\nexport default memo(HeaderSwitch)\n","import { useEffect, useState } from 'react'\nimport { isFirefox } from 'lib/ie-version'\n\n// 是否为 Firfox\nfunction useFireFox() {\n const [value, setValue] = useState(false)\n\n useEffect(() => {\n const value = isFirefox()\n setValue(value)\n }, [])\n\n return value\n}\n\nexport default useFireFox\n","import React, { memo } from 'react'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport useHeaderTheme from 'Components/hooks/use-header-theme'\n\nconst HeaderLogo = memo(() => {\n const headerTheme = useHeaderTheme()\n\n return (\n \n {\n sendTeaCommEvent('clk_event', {\n event_id: 'dcar_brand_icon',\n })\n }}\n href={'/'}\n >\n \n \n \n )\n})\n\nexport default HeaderLogo\n","import * as React from 'react'\nimport getLocation, {\n setLocation2storage,\n setSelectedCity2storage,\n sendTeaLocationEvent,\n} from 'lib/get-location'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { GlobalStoreContext } from 'Components/store'\nimport City from './new-city'\nimport Search from './new-search'\nimport User from './new-user'\nimport HeaderSwitch from './new-header-switch'\nimport TopTips from './top-tops-dynamic'\nimport useHasTips from 'Components/hooks/use-top-tips'\nimport useFireFox from 'Components/hooks/use-firefox'\nimport classNames from 'classnames'\nimport dynamic from 'next/dynamic'\nconst FixNavModal = dynamic(() => import('New/side-nav/fix-nav'), {\n ssr: false,\n})\nimport ToolTip from 'Components/new/tool-tip'\nimport usePageOffset from 'Components/hooks/use-page-offset'\nimport useWindowLoaded from 'Components/hooks/use-window-loaded'\nimport { useStickHeader } from 'Components/new/scroll-sticky/sticky-header'\nimport useSideNavStatus, {\n setPageType,\n} from 'Components/hooks/use-side-nav-status'\nimport HeaderLogo from 'Components/new/header-logo'\nimport { getPageId } from 'lib/page-enter'\nimport { useRouter } from 'next/router'\nimport style from './new-header.module.scss'\nimport { useEffect, useRef, useState } from 'react'\nimport useHeaderTheme from 'Components/hooks/use-header-theme'\nimport Cookies from '@arsenal/arsenal/modules/Cookies'\n\nexport const headerHeight = 'tw-h-56 lg:tw-h-64 xl:tw-h-78'\nexport const headerTop = 'tw-top-56 lg:tw-top-64 xl:tw-top-78'\n\nconst AddToDesktop: React.FC<{\n className: string\n}> = React.memo(({ className }) => {\n const isLoaded = useWindowLoaded()\n const [visible, setVisible] = useState(false)\n const promptEventRef = useRef()\n useEffect(() => {\n if (!isLoaded) {\n return\n }\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/sw.js', { scope: '/' })\n .then(function () {\n console.log('ServiceWorker registration success')\n })\n .catch(function () {\n console.log('ServiceWorker registration failed')\n })\n }\n const handlePrompt = (event: any) => {\n promptEventRef.current = event\n setVisible(true)\n event.userChoice.then((choiceResult: any) => {\n if (choiceResult.outcome === 'accepted') {\n setVisible(false)\n sendTeaCommEvent('clk_event', {\n event_id: 'install',\n button_name: '安装',\n uid: Cookies('tt_webid'),\n })\n localStorage.setItem('pwa_installed', '1')\n } else {\n // dismissed\n }\n })\n const isPWAInstalled = localStorage.getItem('pwa_installed')\n sendTeaCommEvent('show_event', {\n event_id: 'add_desk',\n uid: Cookies('tt_webid'),\n state_type: isPWAInstalled ? '1' : '0',\n })\n }\n window.addEventListener('beforeinstallprompt', handlePrompt)\n return () => {\n window.removeEventListener('beforeinstallprompt', handlePrompt)\n }\n }, [isLoaded])\n\n return visible ? (\n (\n
\n \n
\n 添加懂车帝到桌面\n
\n
\n 下次可从电脑桌面直接访问懂车帝\n
\n {\n promptEventRef.current!.prompt()\n close()\n sendTeaCommEvent('clk_event', {\n event_id: 'add_desk_module_btn',\n button_name: '立即添加',\n uid: Cookies('tt_webid'),\n })\n }}\n >\n 立即添加\n \n
\n )}\n onTipShow={() => {\n sendTeaCommEvent('show_event', {\n event_id: 'add_desk_module',\n uid: Cookies('tt_webid'),\n })\n }}\n >\n \n {\n sendTeaCommEvent('show_event', {\n event_id: 'hover',\n uid: Cookies('tt_webid'),\n })\n }}\n >\n 添加到桌面\n
\n \n ) : null\n})\n\nconst DcdPublish: React.FC<{\n className: string\n}> = React.memo(({ className }) => {\n const list = [\n {\n text: '文章',\n href: 'https://mp.dcdapp.com/profile_v2/publish/article',\n },\n { text: '视频', href: 'https://mp.dcdapp.com/profile_v2/publish/video' },\n {\n text: '懂车分',\n href: 'https://mp.dcdapp.com/profile_v2/publish/car-score/recommend',\n },\n { text: '车友圈动态', href: 'https://mp.dcdapp.com/ugc/publish#/post' },\n ]\n return (\n (\n
\n {list.map((item, index) => {\n return (\n {\n close()\n sendTeaCommEvent('clk_event', {\n event_id: 'common_top_btn',\n obj_id: item.text,\n })\n }}\n >\n {item.text}\n \n )\n })}\n
\n )}\n >\n {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_top_btn',\n })\n }}\n >\n \n 发布作品\n \n \n )\n})\n\nfunction Header({ pageType = 'new' }: { pageType?: string }) {\n const isHasTips = useHasTips()\n const isFireFox = useFireFox()\n const isLoaded = useWindowLoaded()\n const router = useRouter()\n\n // 防止ssr与前端渲染的html不一致的问题,在服务端不渲染城市\n const { state, dispatch } = React.useContext(GlobalStoreContext)\n const { cityName } = state\n\n const { isFixed, duration } = useStickHeader()\n\n React.useEffect(() => {\n if (typeof state.cityName === 'undefined') {\n try {\n const cityName = window.localStorage.getItem('cityName')\n // 优先从本地存储中获取城市\n if (cityName) {\n dispatch({\n type: 'setCityName',\n payload: cityName || '',\n })\n sendTeaLocationEvent('init_top_location')\n } else {\n // 获取不到时,调用location获取\n getLocation().then((location) => {\n setLocation2storage(location)\n dispatch({\n type: 'setCityName',\n payload: location.cityName || '',\n })\n sendTeaLocationEvent('init_top_location')\n })\n }\n } catch (err) {}\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.cityName])\n const headerTheme = useHeaderTheme()\n\n const themeClassName = React.useMemo(() => {\n return {\n 'tw-text-common-black hover:tw-text-common-red':\n headerTheme === 'default',\n 'tw-text-video-shallow-gray hover:tw-text-white':\n headerTheme === 'theater',\n }\n }, [isFixed, headerTheme])\n\n // 关闭tooltip\n const closeCityRef = React.useRef<() => void>()\n const closeCodeRef = React.useRef<() => void>()\n\n React.useEffect(() => {\n if (isFixed) {\n if (closeCityRef.current) {\n closeCityRef.current()\n }\n if (closeCodeRef.current) {\n closeCodeRef.current()\n }\n }\n }, [isFixed])\n\n const { top } = usePageOffset()\n\n useEffect(() => {\n setPageType(pageType)\n }, [pageType])\n\n const navStatus = useSideNavStatus()\n\n return (\n \n \n
\n \n
\n \n \n \n {cityName ? (\n {\n closeCityRef.current = close\n return (\n {\n setSelectedCity2storage(name!)\n sendTeaLocationEvent('switch_top_location', name)\n close()\n }}\n />\n )\n }}\n className={style['city']}\n >\n {(showTips) => (\n {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n sendTeaCommEvent('hover_event', {\n event_id: 'common_city_select_btn',\n shrink_type: 'unfold',\n })\n }}\n onMouseLeave={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n sendTeaCommEvent('hover_event', {\n event_id: 'common_city_select_btn',\n shrink_type: 'fold',\n })\n }}\n onClick={(event) => {\n event.stopPropagation()\n }}\n >\n {cityName}\n \n \n )}\n \n ) : null}\n \n \n
\n \n {getPageId(router?.asPath) !== 'page_quality_qa_detail' && (\n {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_top_btn',\n })\n }}\n onMouseEnter={(event) => {\n sendTeaCommEvent('hover_event', {\n event_id: 'common_download_app_btn',\n button_name: '下载App',\n })\n }}\n >\n {\n closeCodeRef.current = close\n return (\n
\n

扫码下载懂车帝App

\n \n
\n )\n }}\n >\n \n 下载App\n \n \n )}\n \n \n
\n \n \n {isLoaded ? : null}\n {isHasTips && isLoaded ? : null}\n \n \n )\n}\n\nexport default Header\n","import classNames from 'classnames'\nimport Divider from 'Components/divider'\nimport { GlobalStoreContext } from 'Components/store'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport Link from 'next/link'\nimport { useRouter } from 'next/router'\nimport * as React from 'react'\nimport styles from './index.module.scss'\ninterface IInfoModeSwitcherProps {\n style?: React.CSSProperties\n tabName?: string\n className?: string\n}\nexport enum EInfoMode {\n DYNAMIC = 'dynamic',\n STATIC = 'static',\n}\ninterface IMode {\n type: EInfoMode\n text: string\n href: string\n rel?: string\n tips: JSX.Element\n}\nexport const INFO_MODE_KEY = 'info_mode_key'\nexport default function InfoModeSwitcher({\n style,\n tabName,\n className,\n}: IInfoModeSwitcherProps) {\n const isLogin = !!React.useContext(GlobalStoreContext).state.userData?.user_id\n const { openLogin } = React.useContext(LoginStoreContext)\n const router = useRouter()\n const isDynamicFeed = router.asPath.indexOf('/feed') > -1\n const currentMode = isDynamicFeed ? EInfoMode.DYNAMIC : EInfoMode.STATIC\n const modeList: IMode[] = [\n {\n type: EInfoMode.STATIC,\n text: '自主阅读',\n href: '/news/dynamic_motor_car',\n tips: (\n {\n event.stopPropagation()\n event.preventDefault()\n }}\n >\n 自主阅读模式:支持自主选择浏览 最新/最热\n 车闻、行情、评测、导购等汽车内容\n

\n ),\n },\n {\n type: EInfoMode.DYNAMIC,\n text: '兴趣阅读',\n href: '/feed',\n rel: 'nofollow',\n tips: (\n {\n event.stopPropagation()\n event.preventDefault()\n }}\n >\n 兴趣阅读模式:算法自动为你推荐喜欢的汽车内容。\n {!isLogin && (\n
\n Tips:\n {\n event.stopPropagation()\n event.preventDefault()\n openLogin()\n }}\n >\n 登录\n \n 后阅读,懂车帝能更精准分析您的兴趣爱好\n
\n )}\n

\n ),\n },\n ]\n if (isDynamicFeed) {\n modeList.reverse()\n }\n const handleClick = (event: React.MouseEvent, mode: IMode) => {\n if (mode.type === currentMode) {\n event.preventDefault()\n return\n }\n window.localStorage.setItem(INFO_MODE_KEY, mode.type)\n sendTeaCommEvent('clk_event', {\n event_id:\n mode.type === EInfoMode.DYNAMIC\n ? 'interest_reading'\n : 'independent_reading',\n sub_tab: tabName,\n button_name: mode.text,\n })\n }\n return (\n
\n 当前模式\n {modeList.map((mode, index) => (\n <>\n \n handleClick(event, mode)}\n >\n {mode.text}\n {mode.tips}\n \n \n {index === 0 && (\n \n )}\n \n ))}\n
\n )\n}\n","/* eslint-disable react/jsx-no-target-blank */\nimport * as React from 'react'\n\nimport fetch, { IBaseResponse } from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\n\nimport styles from './styles.module.scss'\nimport { metrics } from 'lib/slardar-utils'\n\nexport interface IInnerLink {\n title?: string\n url?: string\n}\n\nexport interface IInnerLinkProps {\n linkList: IInnerLink[]\n}\n\nconst logger = (uri: string, req?: any) => {\n if (req) {\n req.metrics.emitCounter('seo.inner_link.fail', 1, undefined, {\n uri,\n })\n } else {\n metrics.counter(`seo.inner_link.fail`, {\n uri,\n })\n }\n return []\n}\n\nexport const getInnerLinkList = async (uri: string, req?: any) => {\n if (!req?.isSpider) return []\n try {\n const json: IBaseResponse = await fetch(\n getUrl(\n `/motor/pc/common/seo/inner_link?uri=${uri}`,\n 'motor.pc_common.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n return logger(uri, req)\n }\n return json?.data\n } catch {\n return logger(uri, req)\n }\n}\n\nexport default function InnerLink(props: IInnerLinkProps) {\n const { linkList } = props\n if (!linkList.length) return null\n return (\n
\n 热门:\n {linkList.map((link, index) => (\n \n {link.title}\n \n ))}\n
\n )\n}\n","import React, { ReactElement } from 'react'\nimport { LinkProps } from 'next/dist/client/link'\nimport noopWrapper from 'lib/noop-wrapper'\nimport Link from 'next/link'\n\nconst LightLink = (props: React.PropsWithChildren) => {\n const { children, as, href, ...rest } = props\n const isSSR = typeof window === 'undefined'\n\n const child = isSSR\n ? React.cloneElement(React.Children.only(children) as any, {\n href: as || href,\n })\n : children\n\n return (\n isSSR\n ? noopWrapper\n : (content: React.ReactNode) => (\n \n {content}\n \n )\n )(child) as ReactElement\n}\n\nexport default LightLink\n","/* eslint-disable react/jsx-no-target-blank */\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport fetch, { IBaseResponse } from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\nimport { metrics } from 'lib/slardar-utils'\n\nexport interface IOuterLink {\n keyword?: string\n url?: string\n}\n\nexport interface IOuterLinkProps {\n linkList: IOuterLink[]\n}\n\nconst logger = (uri: string, req?: any) => {\n if (req) {\n req.metrics.emitCounter('seo.outer_link.fail', 1, undefined, {\n uri,\n })\n } else {\n metrics.counter(`seo.outer_link.fail`, {\n uri,\n })\n }\n return []\n}\n\n/** 获取外部链接列表 */\nexport const getOuterLinkList = async (uri: string, req?: any) => {\n if (!req?.isSpider) return []\n try {\n const domain = 'www.dongchedi.com'\n const params = {\n domain_url: `${domain}${uri}`,\n domain,\n link_type: '汽车',\n link_count: 20,\n }\n const json: IBaseResponse = await fetch(\n getUrl(\n `/motor/pc/common/seo/link_voting/v1/get_link_list?${serializeObject(\n params\n )}`,\n 'motor.pc_common.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n return logger(uri, req)\n }\n return json?.data\n } catch {\n return logger(uri, req)\n }\n}\n\n/** 外部链接 */\nexport default function OuterLink(props: IOuterLinkProps) {\n const { linkList } = props\n if (!linkList.length) return null\n return (\n
\n 推荐:\n {linkList.map((link, index) => (\n \n {link.keyword}\n \n ))}\n
\n )\n}\n","import React from 'react'\nimport classNames from 'classnames'\nimport StickyWrapper, {\n IProps as StickyWrapperProps,\n} from 'Components/new/scroll-sticky/sticky-wrapper'\nimport usePageOffset from 'Components/hooks/use-page-offset'\nimport useSideNavStatus from 'Components/hooks/use-side-nav-status'\nimport { IScrollStickyState } from 'Components/hooks/use-scroll-sticky-observe'\nimport makePubSubHook from 'Components/hooks/make-pub-sub-hook'\n\nconst [setHeaderState, useStickHeader] = makePubSubHook({\n isFixed: false,\n duration: 0,\n})\n\nexport { useStickHeader }\n\ninterface IProps {\n children: StickyWrapperProps['children']\n markOffset?: number\n className?: string\n}\n\nconst StickyHeader = ({ children, className }: IProps) => {\n // const { state, setState } = useContext(StickyHeaderContext)\n const state = useStickHeader()\n const { top } = usePageOffset()\n\n const navStatus = useSideNavStatus()\n\n return (\n \n \n classNames({\n 'tw-fixed tw-z-9999 tw-w-full tw-top-0 tw-inset-x-0 tw-m-auto tw-transform tw-translate-x-0':\n isFixed,\n })\n }\n outerStyle={(isFixed) => (isFixed ? { top } : {})}\n innerClassName={(isFixed) =>\n classNames(\n isFixed\n ? {\n 'tw-absolute tw-h-56 lg:tw-h-64 xl:tw-h-78 tw-left-0 tw-right-0 tw-overflow-hidden':\n true,\n 'tw-left-88 tw-pl-4%': navStatus === 'off',\n 'tw-left-160 tw-pl-4%': navStatus === 'on',\n 'tw-left-88 lg:tw-left-160 tw-pl-4%': navStatus === 'md-off',\n 'tw-left-88 xl:tw-left-160 tw-pl-4%': navStatus === 'lg-off',\n 'lg:tw-left-160 tw-pl-72 lg:tw-pl-4%':\n navStatus === 'md-none',\n 'tw-pl-72 lg:tw-pl-4%': navStatus === 'none',\n }\n : ''\n )\n }\n innerStyle={(isFixed) => (isFixed ? { paddingRight: '4%' } : {})}\n state={state}\n setState={setHeaderState}\n canListenScroll={({ top }) => top < 0}\n isCurrentFixed={({\n isScrollUp,\n top,\n isIntersecting,\n prevIsIntersecting,\n }) =>\n top < 0 && ((!isIntersecting && prevIsIntersecting) || isScrollUp)\n }\n >\n {children}\n \n \n )\n}\n\nexport default StickyHeader\n","import React, {\n CSSProperties,\n Dispatch,\n ReactNode,\n SetStateAction,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport classNames from 'classnames'\nimport useScrollStickyObserve, {\n IScrollStickyObserveParams,\n IScrollStickyState,\n} from 'Components/hooks/use-scroll-sticky-observe'\n\nexport interface IProps extends IScrollStickyObserveParams {\n children(isFixed: boolean): ReactNode\n className?: string\n outerClassName?(isFixed: boolean): string\n outerStyle?(isFixed: boolean): CSSProperties | undefined\n innerClassName?(isFixed: boolean): string\n innerStyle?(isFixed: boolean): CSSProperties | undefined\n}\n\nconst StickyWrapper = ({\n children,\n className,\n outerClassName,\n outerStyle,\n innerClassName,\n innerStyle,\n state,\n setState,\n canListenScroll,\n isCurrentFixed,\n}: IProps) => {\n const {\n state: { isFixed, duration },\n setMarkNode,\n } = useScrollStickyObserve({\n state,\n setState,\n canListenScroll,\n isCurrentFixed,\n })\n\n const [isLeave, setIsLeave] = useState(isFixed)\n\n useEffect(() => {\n if (isFixed) {\n setIsLeave(true)\n }\n }, [isFixed])\n\n const curChildren = useMemo(() => {\n return children(Boolean(duration && isLeave))\n }, [duration, isLeave])\n\n return (\n \n
\n
\n {curChildren ? (\n \n \n setIsLeave(isFixed)}\n className={classNames('tw-h-full', {\n enter: isFixed,\n leave: !isFixed,\n })}\n >\n {children(Boolean(duration && isLeave))}\n
\n
\n \n ) : null}\n \n \n
\n )\n}\n\nexport default StickyWrapper\n","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\"; // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { top, left, right, bottom } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport default function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { max as mathMax, min as mathMin } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? mathMin(_min, tetherMin) : _min, _offset, tether ? mathMax(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","import * as React from 'react';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import React, {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport useHoverDelay from 'Components/hooks/use-hover-delay'\nimport Portal from 'Components/portal'\nimport classNames from 'classnames'\nimport { usePopper } from 'react-popper'\nimport { Placement } from '@popperjs/core/lib/enums'\nimport styleModule from './index.module.scss'\n\nexport type TOffset = (number | null | undefined)[]\nexport interface IProps extends React.AnchorHTMLAttributes {\n children?: ReactNode | ((showTips: boolean) => ReactNode)\n content?:\n | ReactNode\n | ((params: {\n open(): void\n close(): void\n showTips: boolean\n }) => ReactNode)\n theme?: 'dark' | 'light'\n onTipShow?(): void\n onTipClose?(): void\n onClick?(event: React.MouseEvent): void\n className?: string\n wrapperClassName?: string\n style?: CSSProperties\n popperStyle?: CSSProperties\n tag?: string\n placement?: Placement\n arrowVisible?: boolean\n renderSSR?: boolean\n gap?: number // 下拉框与内容的间距\n offset?: TOffset // 下拉框与内容的偏移,优先以此配置为准,没有时设置为[0, gap]\n trigger?: 'hover' | 'click' | 'focus'\n getContainer?: () => HTMLElement\n beforeClose?(): boolean\n disabled?: boolean\n transfer?: boolean\n}\n\nconst ToolTip = ({\n children,\n content,\n theme = 'dark',\n onTipShow,\n onTipClose,\n onClick,\n className,\n wrapperClassName,\n style,\n tag = 'span',\n placement = 'top',\n arrowVisible = true,\n renderSSR,\n gap = 12,\n offset,\n trigger = 'hover',\n getContainer,\n disabled = false,\n transfer = true,\n popperStyle,\n ...rest\n}: IProps) => {\n const Tag: any = tag\n const [referenceElement, setReferenceElement] = useState(\n null\n )\n const [popperElement, setPopperElement] = useState(null)\n const [arrowElement, setArrowElement] = useState(null)\n const { styles, attributes, update } = usePopper(\n referenceElement,\n popperElement,\n {\n modifiers: [\n {\n name: 'arrow',\n options: { element: arrowElement },\n },\n {\n name: 'offset',\n options: {\n offset: offset ? (offset as any) : [0, gap],\n },\n },\n ],\n placement,\n }\n )\n\n const isEnterRef = useRef(false)\n const [isInit, setIsInit] = useState(renderSSR)\n const [showTips, setShowTips] = useState(false)\n const [isLeave, setIsLeave] = useState(false)\n\n const enter = useCallback(() => {\n if (showTips) {\n return\n }\n if (update) {\n update()\n }\n setIsInit(true)\n setShowTips(true)\n setIsLeave(false)\n\n if (onTipShow) {\n onTipShow()\n }\n }, [onTipShow, isInit, update, showTips])\n\n const leave = useCallback(() => {\n if (isEnterRef.current) {\n return\n }\n setIsLeave(true)\n\n if (onTipClose) onTipClose()\n }, [onTipClose])\n\n const [startShow, cancelShow] = useHoverDelay(enter)\n const [startClose, cancelClose] = useHoverDelay(leave)\n\n const handleEnter = useCallback(() => {\n if (disabled) return\n isEnterRef.current = true\n startShow(1)\n cancelClose()\n }, [startShow, cancelClose, disabled])\n\n const handleClick = () => {\n if (disabled) return\n isEnterRef.current = true\n enter()\n cancelClose()\n }\n\n const handleLeave = useCallback(() => {\n isEnterRef.current = false\n cancelShow()\n startClose(1)\n }, [cancelShow, startClose])\n\n const handleAnimationEnd = useCallback(() => {\n if (isLeave) {\n setShowTips(false)\n setIsLeave(false)\n }\n }, [isLeave])\n\n const curContent = useMemo(() => {\n return typeof content === 'function'\n ? content({\n open: enter,\n showTips,\n close: () => {\n isEnterRef.current = false\n leave()\n },\n })\n : content\n }, [content, enter, leave, showTips])\n\n return (\n {\n if (disabled) return\n if (trigger === 'click') {\n e.stopPropagation()\n handleClick()\n }\n onClick?.(e)\n }}\n onFocus={trigger === 'focus' ? handleEnter : undefined}\n onMouseOut={trigger === 'focus' ? undefined : handleLeave}\n onBlur={trigger === 'focus' ? handleLeave : undefined}\n className={classNames('tw-relative', className)}\n style={style}\n {...rest}\n >\n {useMemo(\n () => (typeof children === 'function' ? children(showTips) : children),\n [showTips, children]\n )}\n {showTips && (\n
\n )}\n {isInit && curContent ? (\n document.body)}\n renderSSR={renderSSR}\n transfer={transfer}\n >\n {\n if (trigger === 'click') e.stopPropagation()\n }}\n onMouseOver={trigger === 'click' ? handleEnter : undefined}\n >\n \n {curContent}\n \n
\n \n \n ) : null}\n
\n )\n}\n\nexport default ToolTip\n","import React, { useEffect, useState, ReactNode, ReactElement } from 'react'\nimport ReactDOM from 'react-dom'\n\nexport interface IPortalProps {\n getContainer: () => HTMLElement\n children: ReactNode\n renderSSR?: boolean\n transfer?: boolean\n}\n\ntype TElement = null | HTMLElement\n\nexport default function Portal({\n getContainer,\n children,\n renderSSR,\n transfer = true,\n}: IPortalProps) {\n const [element, updateElement] = useState(null)\n useEffect(() => {\n updateElement(getContainer())\n }, [getContainer])\n return element\n ? transfer\n ? ReactDOM.createPortal(children, element)\n : (children as ReactElement)\n : renderSSR\n ? (children as ReactElement)\n : null\n}\n","import fetch, { IBaseResponse } from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\nexport interface INewEnergyTypeData {\n options?: IRankDataFilterOptions[] //车系type 细分类型 param=1,纯电动, param=2插电式混动\n key?: string //车系type 所属key\n text?: string //车系type name\n}\nexport interface IRankConfigData {\n filters?: IRankDataFilterData[] //过滤参数\n sells_rank_month?: IRankMonthData[] //销量月份数据\n new_energy_type?: INewEnergyTypeData[] //新能源过滤参数\n is_publish_time?: boolean //是否发榜时间\n}\nexport interface IRankDataFilterData {\n data?: IRankDataFilterOptionsData //车系type 细分类型\n key?: string //车系type 所属key\n text?: string //车系type name\n}\nexport interface IRankDataFilterOptions {\n params?: string //条件参数\n text?: string //文本\n}\nexport interface IRankDataFilterOptionsData {\n options?: IRankDataFilterOptions[]\n}\nexport interface IRankMonthData {\n month?: string //月份字段\n text?: string //月份文本\n}\nexport default async function (req?: any) {\n const response: IBaseResponse = await fetch(\n getUrl('/motor/pc/car/rank_data_config', 'motor.pc_car.api'),\n { req }\n )\n if (0 !== response?.status) {\n throw Error(response?.prompts || response.message)\n }\n return response?.data\n}\n","import * as React from 'react'\nimport getRankDataConfig from './getRankDataConfig'\nimport styles from './index.module.scss'\nimport classNames from 'classnames'\ninterface IRankFlag {\n className?: string\n style?: React.CSSProperties\n textStyle?: React.CSSProperties\n textClassName?: string\n}\nexport default React.memo(function RankPublishFlag({\n className,\n style,\n textClassName,\n textStyle,\n}: IRankFlag) {\n const [visible, setVisible] = React.useState(false)\n React.useEffect(() => {\n ;(async () => {\n const config = await getRankDataConfig()\n setVisible(!!config?.is_publish_time)\n })()\n }, [])\n if (!visible) {\n return null\n }\n return (\n \n \n 发榜日\n \n \n )\n})\n","import React, { useReducer, createContext, useEffect } from 'react'\nimport { ILocation } from 'lib/get-location'\nimport { AdData } from 'Pages/home/ad/interface'\n\nexport interface IBrandItem {\n id: number\n name: string\n avatar: string\n}\n\nexport interface IUserData {\n /**\n * 性别\n */\n gender: string\n\n /**\n * 用户名\n */\n name: string\n\n /**\n * 用户名\n */\n screen_name: string\n\n /**\n * 用户ID\n */\n user_id: string\n\n /**\n * 用户类型\n */\n user_type: string\n\n /**\n * 头像\n */\n avatar_url: string\n\n /**\n * 手机号 加密串 188*****710\n */\n mobile: string\n}\n\ninterface IStore {\n /**\n * 首页的广告数据\n * undefined 代表未加载\n * null 代表没有广告数据\n */\n adData: AdData | null | undefined\n /**\n * 城市名称\n */\n cityName?: string\n\n /**\n * 城市列表\n */\n cities: {\n initials: string\n city: {\n city_name: string\n initials: string\n }[]\n }[]\n\n /**\n * 品牌列表\n */\n brands: {\n /**\n * 所有的字母列表\n */\n letters: string[]\n list: {\n letter: string\n data: IBrandItem[]\n }[]\n }\n\n /**\n * 经纬度等坐标\n */\n location: ILocation\n\n /**\n * 页面可见状态,默认为true\n */\n isVisible: boolean\n\n /**\n * 用户信息\n */\n userData: IUserData\n}\n\ninterface ISetAdData {\n type: 'setAdData'\n payload: IStore['adData'] | null\n}\n\ninterface ISetCityName {\n type: 'setCityName'\n payload?: IStore['cityName']\n}\n\ninterface ISetCities {\n type: 'setCities'\n payload?: IStore['cities']\n}\n\ninterface ISetBrandList {\n type: 'setBrands'\n payload?: IStore['brands']\n}\n\ninterface ISetLocation {\n type: 'setLocation'\n payload?: IStore['location']\n}\n\ninterface ISetUserData {\n type: 'setUserData'\n payload?: IStore['userData']\n}\n\ninterface ISetVisibility {\n type: 'setVisibility'\n payload?: IStore['isVisible']\n}\n\ntype IAction =\n | ISetCityName\n | ISetCities\n | ISetBrandList\n | ISetLocation\n | ISetUserData\n | ISetVisibility\n | ISetAdData\n\ninterface StoreContext {\n state: Partial\n dispatch(param: ISetCityName): void\n dispatch(param: ISetCities): void\n dispatch(param: ISetBrandList): void\n dispatch(param: ISetLocation): void\n dispatch(param: ISetUserData): void\n dispatch(param: ISetAdData): void\n}\nconst initState = {\n cityName: undefined,\n cities: undefined,\n brands: undefined,\n location: undefined,\n userData: undefined,\n isVisible: undefined,\n}\nconst GlobalStoreContext = createContext({\n state: initState,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n dispatch: () => {},\n})\n\nfunction reducer(state: Partial = initState, action: IAction) {\n switch (action.type) {\n case 'setAdData':\n return {\n ...state,\n adData: action.payload || null,\n }\n case 'setVisibility':\n return {\n ...state,\n isVisible: action.payload,\n }\n case 'setLocation':\n return {\n ...state,\n location: action.payload,\n }\n case 'setCityName':\n try {\n window.localStorage.setItem('cityName', action.payload || '')\n document.cookie = `city_name=${encodeURIComponent(\n action.payload || ''\n )};max-age=${60 * 60 * 24 * 30};path=/`\n } catch (err) {}\n return {\n ...state,\n cityName: action.payload,\n }\n case 'setCities':\n return {\n ...state,\n cities: action.payload,\n }\n case 'setBrands':\n return {\n ...state,\n brands: action.payload,\n }\n case 'setUserData':\n return {\n ...state,\n userData: action.payload,\n }\n default:\n return state\n }\n}\n\nconst GlobalStoreProvider = (props: { children: React.ReactNode }) => {\n const { children } = props\n const [state, dispatch] = useReducer(reducer, initState)\n\n useEffect(() => {\n const handler = () => {\n dispatch({\n type: 'setVisibility',\n payload: !document.hidden,\n })\n }\n document.addEventListener('visibilitychange', handler)\n\n return () => {\n document.removeEventListener('visibilitychange', handler)\n }\n }, [])\n\n return (\n \n {children}\n \n )\n}\n\nexport { GlobalStoreProvider, GlobalStoreContext }\n","import React from 'react'\nimport dynamic from 'next/dynamic'\n\nconst TopTips = dynamic(() => import('./top-tips'), {\n ssr: false,\n})\n\nexport default TopTips\n","import React, { useState, useContext, useEffect, useCallback } from 'react'\nimport fetch from 'lib/decorated-fetch'\nimport applyHttpsImage from 'lib/apply-https-img'\nimport getUrl from 'lib/url'\nimport cookie from 'cookie'\nimport { GlobalStoreContext } from 'Components/store'\nimport {\n getLoginHref,\n getRegisterHref,\n getLogoutHref,\n} from 'lib/get-login-href'\nimport { teaConfig } from 'lib/tea-analyze'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport { ugcUserLink } from 'Components/author/avatar'\n\nconst fetchAntiToken = () => {\n return fetch(getUrl('/tt-anti-token'))\n .then((res) => {\n window.localStorage.setItem('tt-anti-token', res?.data?.token || '')\n })\n .catch((err) => {\n console.error(err)\n })\n}\n\nexport default function User(props: any) {\n const { size } = props\n // 设置全局的城市\n const { state: globalStore, dispatch } = useContext(GlobalStoreContext)\n const { userData } = globalStore\n\n useEffect(() => {\n if (!userData) {\n fetchAntiToken()\n }\n }, [userData])\n\n const isLogin = userData && userData.user_id\n const screenName = (userData && userData.screen_name) || ''\n\n useEffect(() => {\n if (userData?.user_id) {\n sessionStorage.setItem('userData', JSON.stringify(userData))\n teaConfig({\n user_id: userData.user_id,\n })\n }\n }, [userData?.user_id])\n\n const { openLogin, logout } = useContext(LoginStoreContext)\n\n return (\n ) => {\n e.stopPropagation()\n }}\n >\n {isLogin ? (\n
\n
\n
\n ) : (\n
\n {/**/}\n {/* 登录*/}\n {/**/}\n \n openLogin({\n enter_method: 'login',\n })\n }\n >\n 登录\n \n \n {/**/}\n {/* 注册*/}\n {/**/}\n \n openLogin({\n enter_method: 'login',\n })\n }\n >\n 注册\n \n
\n )}\n
    \n
  • \n {ugcUserLink({ userId: userData?.user_id, target: '_self' })(\n
    \n
    \n
    \n

    {screenName}

    \n
    \n
    \n )}\n
  • \n
  • \n \n \n 退出登录\n \n
  • \n
\n \n
\n )\n}\n","const domainWhiteList = [\n 'dcarimg.com',\n 'byteimg.com',\n 'toutiaoimg.com',\n 'bytexservice.com',\n 'huoshanstatic.com',\n 'bdxiguastatic.com',\n 'toutiaostatic.com',\n 'bdxiguaimg.com',\n 'douyinpic.com',\n 'byteacctimg.com',\n 'dcarstatic.com',\n]\n\nconst domainBlackList = ['qlogo.cn', '58cdn.com.cn']\n\nlet domainList = ['p3.dcarimg.com', 'lf3-motor.dcarstatic.com']\n/**\n * 增加域名白名单\n * @param list\n */\nexport function addDomainWhiteList(list: string[]) {\n domainWhiteList.push(...list)\n}\n/**\n * 获取域名白名单\n */\nexport function getDomainWhiteList() {\n return domainWhiteList\n}\n/**\n * 增加域名黑名单\n * @param list\n */\nexport function addDomainBlackList(list: string[]) {\n domainBlackList.push(...list)\n}\n/**\n * 获取域名黑名单\n */\nexport function getDomainBlackList() {\n return domainBlackList\n}\n\nexport function setDomainList(list: string[]) {\n domainList = list\n}\nexport function getDomainList() {\n return domainList\n}\n","import { logger, metrics } from 'lib/slardar-utils'\n\nimport { getDomainBlackList, getDomainWhiteList } from './constant'\n\n/* eslint-disable complexity */\nexport function decodeUriBack(originStr: string): string | null {\n let origin = originStr\n if (!origin) {\n return null\n }\n const blackList = getDomainBlackList()\n // 匹配到黑名单,不进行打点\n if (blackList.some((domain) => origin?.includes?.(`${domain}/`))) {\n return null\n }\n const whiteList = getDomainWhiteList()\n if (!whiteList.some((domain) => origin?.includes?.(`.${domain}/`))) {\n logger.warn(`[motor/pc/view-image] not in domain white list url=${origin}`)\n metrics.counter('tosUri.decode.ignore', { url: origin })\n return null\n }\n\n /* eslint-disable prefer-destructuring */\n origin = origin.split('?')[0]\n // 原格式,如:https://p3.dcarimg.com/obj/developer-baas/baas/ttcqr5/de057af34f101a4e_1605090421476.png\n const objUrlRegex = /\\/obj\\/(.*)/\n\n if (objUrlRegex.test(origin)) {\n const matches = origin.match(objUrlRegex)\n if (matches?.[1]) {\n return matches[1]\n }\n }\n // 遗留的图片格式0,如:https://p3.dcarimg.com/large/1bf6000409257e13550d\n const legacyUrlRegex0 = /\\/(?:origin|large|medium|thumb|img)\\/([0-9a-f]{9,})/\n if (legacyUrlRegex0.test(origin)) {\n const matches = origin.match(legacyUrlRegex0)\n if (matches?.[1]) {\n return `mosaic-legacy/${matches[1]}`\n }\n }\n // 遗留的图片格式,如:https://p3.dcarimg.com/avatar/100x100/1dd5000048d6334c26b4.png\n const legacyUrlRegex1 = /\\d+x\\d+\\/([0-9a-f]{9,})/\n if (legacyUrlRegex1.test(origin)) {\n const matches = origin.match(legacyUrlRegex1)\n if (matches?.[1]) {\n return `mosaic-legacy/${matches[1]}`\n }\n }\n\n // 遗留的图片格式2,如:https://p3.dcarimg.com/large/pgc-image/a8c9c8f743174b259f21915df49f19a7\n const legacyUrlRegex2 = /[a-z]+\\/([0-9a-z-]+)\\/([0-9a-f]{9,})/\n if (legacyUrlRegex2.test(origin)) {\n const matches = origin.match(legacyUrlRegex2)\n if (matches && matches[1] && matches[2]) {\n return `${matches[1]}/${matches[2]}`\n }\n }\n\n // 遗留图片格式3,'https://p3.dcarimg.com/list/300x196/pgc-image/123432866b864bc295ac12102aaf395f'\n const legacyUrlRegex3 = /list\\/\\d+x\\d+\\/([0-9a-z-]+)\\/([0-9a-f]{9,})/\n if (legacyUrlRegex3.test(origin)) {\n const matches = origin.match(legacyUrlRegex3)\n if (matches && matches[1] && matches[2]) {\n return `${matches[1]}/${matches[2]}`\n }\n }\n\n // 常见的图片格式,如:https://p3.dcarimg.com/large/pgc-image/a8c9c8f743174b259f21915df49f19a7\n const normalUrlRegex = /(?:img)\\/([0-9a-z-]+)\\/([0-9a-zA-Z-]{9,})/\n const matches = origin.match(normalUrlRegex)\n if (matches && matches[1] && matches[2]) {\n return `${matches[1]}/${matches[2]}`\n }\n logger.warn(`[motor/pc/view-image] can not decode url=${origin}`)\n metrics.counter('tosUri.decode.miss', { url: origin })\n return null\n}\n\nconst prefix =\n 'origin|aweme|list|live|large/w480|large/w240|large|medium|thumb|details|img|avatar'\nconst origin = `(?:(?:https?:)?//[^/]+(?:${getDomainWhiteList().join('|')}))`\n\nexport function decodeUri(url: string) {\n if (!url || typeof url !== 'string') {\n return null\n }\n\n // 带有 x-expires | x-signature 参数的图片不解析\n const authRegex = /[^#?]+\\?.*x-(expires|signature)=.+/\n\n if (authRegex.test(url)) {\n return null\n }\n\n // obj 前缀表示原图 匹配掉 ?和# 即可\n const objRegex = new RegExp(`${origin}/obj/([^?#]+)`)\n\n const objUri = url.match(objRegex)?.[1]\n if (objUri) {\n return objUri\n }\n\n // 其他已知前缀的处理掉前缀和切图参数\n const uriRegex = new RegExp(\n `${origin}/(?:(?:${prefix})/(?:[0-9]+x[0-9]+/)?)?((?:.+/)?(?:[^~?#]+)?(\\\\.$)?)`\n )\n\n const uri = url.match(uriRegex)?.[1]\n\n if (!uri) {\n logger.warn(`[motor/pc/view-image] can not decode url=${url}`)\n metrics.counter('tosUri.decode.miss', { url })\n return null\n }\n\n // 不带bucket 或者 [四位数字]/[若干数字] 需要额外带上虚拟bucket 格式: mosaic-legacy/\n const legacyUriRegex = /^([0-9a-zA-Z]+|[0-9]{4}\\/[0-9]+)(?:\\.[a-zA-Z]+)?$/\n\n const legacyUri = uri.match(legacyUriRegex)?.[1]\n\n return legacyUri ? `mosaic-legacy/${legacyUri}` : uri\n}\n","import React from 'react'\n\ninterface IProps {\n zoomHeight: string\n children: React.ReactNode\n className?: string\n loadImg?: boolean\n [key: string]: any\n}\n\nconst ImageZoom: React.FC = ({\n zoomHeight,\n children,\n className = '',\n loadImg = true,\n ...restProps\n}) => {\n const styles: any = {\n display: 'inline-block',\n position: 'relative',\n }\n\n if (zoomHeight) {\n Object.assign(styles, {\n paddingBottom: zoomHeight,\n width: '100%',\n })\n }\n\n return (\n \n {children}\n\n \n \n )\n}\n\nexport default ImageZoom\n","/* eslint-disable indent */\nimport React, {\n CSSProperties,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport classNames from 'classnames'\nimport { GenImgAttrsData, getOptimizedImage } from './utils'\nimport { logger, metrics } from 'lib/slardar-utils'\nimport ImageStyles from './style'\nimport batchedUpdates from 'lib/batched-updates'\nexport { default as ImageZoom } from './image-zoom'\nimport style from './index.module.scss'\n\n// 常用的一些图片\nexport const userLoading = require('static/user-loading.svg')\nexport const carLoading = require('static/car-bg-l.png')\nexport const logoLoading = require('static/dongchedi-logo.svg')\nexport const logoLoadingRect = require('static/loading/logo~rect.svg')\nexport const commentLoading = require('static/comment-loading.svg')\nexport const smallLogoLoading = require('static/loading/logo-small.svg')\nexport const dealerLogoLoading = require('static/loading/logo-dealer.svg')\n\nexport type ImageProps = {\n /**\n * 图片宽度\n */\n width: number\n /**\n * 图片高度\n */\n height: number\n /**\n * 图片资源地址\n */\n src: string\n /**\n * className\n */\n className?: string\n /**\n * alt\n */\n layout?: 'fill' | 'responsive' | 'intrinsic' | 'fixed'\n alt?: string\n objectFit?: CSSProperties['objectFit']\n objectPosition?: CSSProperties['objectPosition']\n cutType?: GenImgAttrsData['cutType']\n /**\n * 是否懒加载\n */\n lazy?: boolean\n /**\n * 不使用图片格式优化,主要是webp\n * @default false\n */\n unoptimized?: boolean\n /**\n * 是否开启加载完毕后的动画,默认开启\n */\n useTransition?: boolean\n /**\n * hover动画\n */\n hoverTransition?: boolean\n /**\n * intersection observer的rootMargin\n * @default 0px 100px\n */\n rootMargin?: string\n /**\n * 自定义图片的行内样式\n */\n style?: React.CSSProperties\n /**\n * 自定义默认图片\n */\n cusDefaultImg?: string\n /**\n * 自定义错误图片\n */\n errorImg?: string\n /**\n * 是否自动适配 设备像素比 服务器端默认2倍,客户端根据实际的devicePixelRatio\n */\n autoPixelRatio?: boolean\n /**\n * 点击事件\n */\n onClick?(): void\n onLoad?(event: SyntheticEvent): void\n}\n\ntype ImgElementStyle = NonNullable\n\nconst classNamePrefix = 'motor-pc-image'\n\nexport const defaultImg =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg=='\n\nexport const Image: React.FC = ({\n src,\n width,\n height,\n lazy = true,\n unoptimized,\n cutType,\n layout = 'intrinsic',\n alt,\n objectFit = 'cover',\n objectPosition,\n cusDefaultImg = defaultImg,\n errorImg = defaultImg,\n hoverTransition = false,\n autoPixelRatio = true,\n className,\n onClick,\n onLoad,\n}) => {\n const imageStyle: CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n\n boxSizing: 'border-box',\n padding: 0,\n border: 'none',\n margin: 'auto',\n\n display: 'block',\n width: 0,\n height: 0,\n minWidth: '100%',\n maxWidth: '100%',\n minHeight: '100%',\n maxHeight: '100%',\n\n objectFit,\n objectPosition,\n }\n\n const wrapperStyle: CSSProperties | undefined = useMemo(() => {\n if (layout === 'fill') {\n return {\n display: 'block',\n overflow: 'hidden',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n zIndex: 0,\n // boxSizing: 'border-box',\n // margin: 0,\n }\n } else if (layout === 'responsive') {\n return {\n display: 'block',\n overflow: 'hidden',\n position: 'relative',\n zIndex: 0,\n // boxSizing: 'border-box',\n // margin: 0,\n }\n } else if (layout === 'intrinsic') {\n return {\n display: 'inline-block',\n maxWidth: '100%',\n overflow: 'hidden',\n position: 'relative',\n zIndex: 0,\n // boxSizing: 'border-box',\n // margin: 0,\n }\n } else if (layout === 'fixed') {\n return {\n display: 'inline-block',\n position: 'relative',\n zIndex: 0,\n // boxSizing: 'border-box',\n width,\n height,\n }\n }\n }, [layout, width, height])\n\n const sizerStyle: CSSProperties | undefined = useMemo(() => {\n if (layout === 'responsive') {\n return {\n display: 'block',\n boxSizing: 'border-box',\n paddingTop: `${(height / width) * 100}%`,\n }\n } else if (layout === 'intrinsic') {\n return { boxSizing: 'border-box', display: 'block', maxWidth: '100%' }\n }\n }, [layout, width, height])\n\n const sizerSvg = useMemo(() => {\n if (layout === 'intrinsic') {\n return ``\n }\n }, [layout, width, height])\n\n const isBase64 = src?.startsWith?.('data:')\n\n const isLazy = !isBase64 && lazy\n\n const [inView, setInView] = useState(!isLazy)\n\n const optimizedSrc = useMemo(() => {\n return isBase64\n ? src\n : src\n ? getOptimizedImage({\n src,\n width,\n // height,\n unoptimized,\n autoPixelRatio,\n cutType,\n })\n : cusDefaultImg\n }, [\n isBase64,\n src,\n width,\n height,\n autoPixelRatio,\n cusDefaultImg,\n cutType,\n unoptimized,\n ])\n\n const [realSrc, setRealSrc] = useState(() =>\n inView ? optimizedSrc : cusDefaultImg\n )\n const isErrorRef = useRef(false)\n\n useEffect(() => {\n if (inView && realSrc !== optimizedSrc && !isErrorRef.current) {\n setRealSrc(optimizedSrc)\n }\n isErrorRef.current = false\n }, [inView, realSrc, optimizedSrc])\n\n const rootRef = useRef(null)\n\n useEffect(() => {\n if (!isLazy && !inView) {\n setInView(true)\n }\n if (!isLazy || inView) return\n const observe = new IntersectionObserver(\n (changes) => {\n changes.forEach((change) => {\n if (change.isIntersecting) {\n batchedUpdates(() => {\n setInView(true)\n })\n }\n })\n },\n {\n rootMargin: '100px 0px',\n }\n )\n observe.observe(rootRef.current!)\n return () => {\n observe.disconnect()\n }\n }, [inView, isLazy])\n\n const handleError = useCallback(() => {\n isErrorRef.current = true\n if (realSrc === optimizedSrc) {\n if (optimizedSrc !== src) {\n setRealSrc(src)\n } else if (optimizedSrc !== errorImg) {\n setRealSrc(errorImg)\n }\n } else if (realSrc === src) {\n if (src !== errorImg) {\n setRealSrc(errorImg)\n }\n }\n logger.error(`[motor-fe/pc/image onError] error message: src=${realSrc}`, {\n src,\n })\n metrics.counter('motor-fe/pc.image.onerror', { realSrc, src })\n }, [src, optimizedSrc, errorImg, realSrc])\n return (\n \n {sizerStyle ? (\n
\n {sizerSvg ? (\n \n ) : null}\n
\n ) : null}\n {inView ? null : (\n \n )}\n \n \n )\n}\n\nexport { ImageStyles }\n","import css from 'styled-jsx/css'\n\nconst imageStyles = css.global`\n .motor-pc-image {\n position: relative;\n display: inline-block;\n max-width: 100%;\n }\n .motor-pc-image-holder img {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n .motor-pc-image-auto img {\n max-width: 100%;\n }\n .motor-pc-image-fade {\n opacity: 0;\n transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1),\n transform 0.3s ease-in-out;\n }\n .motor-pc-image-in {\n opacity: 1;\n }\n\n .motor-pc-image-hover {\n transition: opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1),\n transform 0.3s ease-in-out;\n }\n .motor-pc-image-hover:hover {\n transform: scale(1.1);\n }\n`\nexport default imageStyles\n","import { decodeUri } from './decode'\nimport applyHttpsImage from 'lib/apply-https-img'\n/**\n * 是否支持webp格式\n * @type {boolean}\n */\nconst canUseWebp = (() => {\n if (typeof document === 'undefined') {\n return false\n }\n const elem = document.createElement('canvas')\n if (elem && elem.getContext && elem.getContext('2d')) {\n return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0\n }\n return false\n})()\n\nconst cdnDomain = 'p3.dcarimg.com'\n\nfunction getSize({\n width,\n autoPixelRatio,\n}: {\n width?: number\n autoPixelRatio?: boolean\n}) {\n if (!width) {\n return 'noop'\n }\n // 服务器端默认2倍大小,客户端根据实际的window?.devicePixelRatio\n // if (autoPixelRatio) {\n // let pixelRatio = 2\n // if (typeof window !== 'undefined' && window?.devicePixelRatio) {\n // pixelRatio = window?.devicePixelRatio\n // }\n // return `${~~Math.abs(width * pixelRatio)}x0`\n // }\n // 全部取2倍图\n return `${~~Math.abs(width * 2)}x0`\n}\n\nfunction getExt(src: string): string {\n const append = src.match(/([^/]+?)(?:[#?].+)?$/)?.[1] || ''\n\n // 优先取uri里面的格式 再取 切图参数里面的 格式\n // https://xxx.dcd.com/tos-xx-xx/3243.32131.jpg~200x200.png -> jpg\n // https://xxx.dcd.com/tos-xx-xx/3243.32131~200x200.png -> png\n const [uri, param] = append.split('~')\n const extRegx = /.+\\.([a-z]{2,5})$/i\n const matches = uri.match(extRegx) || param?.match(extRegx)\n\n // 动图保留源格式\n if (['awebp', 'gif'].includes(matches?.[1]!)) {\n return matches![1]\n }\n\n if (canUseWebp) {\n return 'webp'\n }\n\n if (!matches || !matches[1]) {\n return 'png'\n }\n\n if (!canUseWebp && matches[1] === 'webp') {\n return 'png'\n }\n\n return matches[1]\n}\n\nexport type GenImgAttrsData = {\n src: string\n unoptimized?: boolean\n width?: number\n // height?: number\n autoPixelRatio?: boolean\n // 裁剪方式,ImageX服务文档: https://bytedance.feishu.cn/docs/doccn7ehHqqE7XOap2Dsfobj64h#G7yDN3\n // 默认定宽缩放\n cutType?:\n | 'c1' // 居上裁剪\n | 'c5' // 居中裁剪\n | 'cs' // 人脸识别,开销更大 谨用\n}\n\nexport function getOptimizedImage(params: GenImgAttrsData): string {\n const {\n src,\n unoptimized,\n width,\n // height,\n // autoPixelRatio,\n cutType,\n } = params\n if (typeof src !== 'string') {\n return ''\n }\n const isUrl = /^(((https?:)?\\/)?\\/)/.test(src)\n if (unoptimized) {\n return isUrl ? applyHttpsImage(src) : `//${cdnDomain}/obj/${src}`\n }\n\n // 获取uri,如果不是tos地址,就不匹配\n const uri = isUrl ? decodeUri(src) : src\n\n if (!uri) {\n return applyHttpsImage(src)\n }\n\n const size = getSize({ width })\n const ext = getExt(src)\n return `//${cdnDomain}/img/${uri}~${\n cutType ? `${cutType}_` : ''\n }${size}.${ext}`\n}\n","export default function applyHttpsImage(url?: string) {\n return (url || '').replace?.('http://', '//')\n}\n","import { unstable_batchedUpdates } from 'react-dom'\n\nlet queue: (() => void)[] = []\n\nfunction batchedUpdates(cb: () => void) {\n if (!queue.length) {\n setTimeout(() => {\n unstable_batchedUpdates(() => {\n queue.forEach((cb) => {\n cb()\n })\n })\n queue = []\n })\n }\n queue.push(cb)\n}\n\nexport default batchedUpdates\n","import { metrics, logger } from './slardar-utils'\n\nimport { isBOE, isPPE, ttEnv } from './utils'\n\nconst refineUrl = (str: string, req?: any) => {\n let decodedUrl = ''\n try {\n decodedUrl = decodeURIComponent(str)\n .split('?')[0]\n .replace(/(^\\d+$)/g, '')\n } catch (err) {\n if (req) {\n if (req.metrics && req.logger) {\n req.metrics.emitCounter(`decode.url.fail`, 1, undefined, {\n url: str,\n })\n req.logger.warn(`[decode url] ${str} fail. err=${(err as any).message}`)\n }\n } else {\n metrics.counter(`decode.url.fail`, {\n url: str,\n })\n logger.warn(`[decode url] ${str} fail. err=${(err as any).message}`)\n }\n }\n return decodedUrl\n}\n\nexport interface IBaseResponse {\n data?: T\n message: string\n prompts: string\n status: number\n}\n\nconst decoratedFetch = (\n input: RequestInfo,\n init?: RequestInit & {\n retryMaxCount?: number\n timeout?: number\n rawRes?: boolean\n req?: {\n fetch: any\n metrics: any\n logger: any\n }\n }\n): Promise => {\n const { retryMaxCount = 1, timeout = 5000, req, rawRes = false } = init || {}\n let { headers = {} } = init || {}\n const url = typeof input === 'string' ? input : input.url\n const refinedUrl = refineUrl(url, req)\n const {\n fetch: bytedFetch,\n metrics: bytedMetrics,\n logger: bytedLogger,\n } = req || {}\n const inBrowser = typeof window !== 'undefined'\n if (!inBrowser) {\n // 开发与测试环境自动配置header\n console.log('[decorated-fetch:headers]:before', headers)\n if (headers) {\n // @ts-ignore\n headers.cookie = `${req?.headers?.cookie || ''}; ${headers.cookie || ''}`\n }\n\n // 透传浏览器插件设置的环境标签到服务端\n const envHeaders: Record = {}\n const envReq: any = req\n if (envReq?.headers?.['x-tt-env']) {\n envHeaders['x-tt-env'] = envReq.headers['x-tt-env'] as string\n }\n if (envReq?.headers?.['x-use-ppe']) {\n envHeaders['x-use-ppe'] = envReq.headers['x-use-ppe'] as string\n } else if (envReq?.headers?.['x-use-boe']) {\n envHeaders['x-use-boe'] = envReq.headers['x-use-boe'] as string\n }\n headers = {\n ...headers,\n ...envHeaders,\n }\n\n // 根据 npm 脚本设置的环境标签\n if ((isBOE || isPPE) && ttEnv) {\n if (isBOE) {\n headers = {\n ...headers,\n 'x-use-boe': '1',\n 'x-tt-env': ttEnv,\n }\n }\n if (isPPE) {\n headers = {\n ...headers,\n 'x-use-ppe': '1',\n 'x-tt-env': ttEnv,\n }\n }\n console.log('[decorated-fetch:isBOE]:', isBOE)\n console.log('[decorated-fetch:isPPE]:', isPPE)\n console.log('[decorated-fetch:ttEnv]:', ttEnv)\n console.log('[decorated-fetch:headers]:after', headers)\n }\n return (typeof bytedFetch !== 'function' ? fetch : bytedFetch)(url, {\n ...init,\n handleMethod: refinedUrl || 'unknown_method',\n retry: retryMaxCount,\n timeout,\n headers,\n })\n .then((res: any) => {\n if (rawRes) {\n return res\n }\n if (!res.ok) {\n return res.text().then((text: string) => {\n throw new Error(text)\n })\n } else {\n return res.json()\n }\n })\n .catch((err: Error) => {\n console.error(err)\n if (bytedLogger) {\n bytedLogger.error(\n `[fetch fail] fetch ${url} error. error = ${err.message}`\n )\n }\n throw err\n })\n }\n\n let retryCount = 0\n const retry_able_fetch = (): Promise => {\n const controller = new AbortController()\n setTimeout(() => controller.abort(), timeout)\n const timeBeforeFetch = new Date().getTime()\n return fetch(url, {\n ...init,\n headers,\n signal: controller.signal,\n })\n .then((res) => {\n const timeAfterFetch = new Date().getTime()\n const duration = timeAfterFetch - timeBeforeFetch\n metrics.counter(`fetch.success`, {\n url: refinedUrl || url,\n })\n metrics.timer(`fetch.success`, duration, {\n url: refinedUrl || url,\n })\n return res\n })\n .then((res: any) => {\n if (rawRes) {\n return res\n }\n if (!res.ok) {\n return res.text().then((text: string) => {\n throw new Error(text)\n })\n } else {\n return res.json()\n }\n })\n .catch((err) => {\n if (err.name === 'AbortError') {\n metrics.counter(`fetch.timeout`, {\n url: refinedUrl || url,\n })\n logger.log(`[fetch timeout] fetch ${url} timeout`)\n if (retryCount < retryMaxCount) {\n retryCount += 1\n metrics.counter(`fetch.retry`, {\n url: refinedUrl || url,\n })\n logger.log(`[fetch retry] fetch ${url} retry.`)\n return retry_able_fetch()\n } else {\n metrics.counter(`fetch.fail`, {\n url: refinedUrl || url,\n })\n logger.error(`[fetch fail] fetch ${url} timeout. reach retry limit`)\n }\n } else {\n metrics.counter(`fetch.fail`, {\n url: refinedUrl || url,\n })\n logger.error(\n `[fetch fail] fetch ${url} error. error = ${err.message}`\n )\n }\n throw err\n })\n }\n\n return retry_able_fetch()\n}\n\nexport default decoratedFetch\n","/**\n * 获取Link组件的href值,方便线上测试\n */\nexport default (path: string) => {\n const prefixer = process.env.NODE_ENV === 'production' ? '' : ''\n // const prefixer = '/test'\n return prefixer + path\n}\n","import get from 'lodash/get'\nimport { sendTeaCommEvent, teaConfig } from 'lib/tea-analyze'\nimport fetch from 'lib/decorated-fetch'\n\ninterface Coordinates {\n latitude: number\n longitude: number\n}\ninterface Result extends Coordinates {\n status: number\n cityName: string\n}\n\nexport const setLocation2storage = (location: {\n cityName: string\n match: boolean\n}) => {\n if (!location?.cityName) {\n return\n }\n window.localStorage.setItem(\n 'locationCity',\n JSON.stringify({\n cityName: location?.cityName,\n match: location?.match,\n })\n )\n}\n\nexport const setSelectedCity2storage = (cityName: string) => {\n if (cityName) {\n window.localStorage.setItem('selectedCity', cityName)\n }\n}\n\nexport const getTeaParam = async (selectedCity?: string) => {\n let location = null\n let sCity = selectedCity\n const str = window.localStorage.getItem('locationCity')\n if (str) {\n try {\n location = JSON.parse(str)\n } catch (e) {\n // new user, do nothing;\n }\n }\n\n const locationCity = (location as any)?.cityName ?? ''\n if (!sCity) {\n sCity = window.localStorage.getItem('selectedCity') ?? ''\n }\n\n let city = window?.localStorage?.getItem('cityName') ?? ''\n if (sCity) {\n city = sCity\n } else if (locationCity) {\n city = locationCity\n }\n\n return {\n location_city: locationCity,\n is_city_normal: location?.match ? 1 : 0,\n selected_city: sCity,\n 'custom.city': city,\n }\n}\n\nexport const sendTeaLocationEvent = async (\n event: string,\n cityName?: string\n) => {\n const params = await getTeaParam(cityName)\n if (params && event) {\n if (event === 'init_top_location') {\n return teaConfig(params)\n } else if (event === 'switch_top_location') {\n teaConfig(params)\n\n return sendTeaCommEvent(event, {\n location_city: params?.selected_city,\n })\n }\n }\n}\n\nexport interface ILocation {\n latitude: number\n longitude: number\n gpsLatitude: number\n gpsLongitude: number\n ipLatitude: number\n ipLongitude: number\n cityName: string\n gpsCityName: string\n ipCityName: string\n match: boolean\n}\n\nlet mapKey = ''\n/* eslint-disable prefer-destructuring */\nexport default async function getLocation(\n key = '88db9775ba89ac7e7afafbecd43b96e7'\n): Promise {\n try {\n mapKey = key\n const [gpsLocation, ipLocation] = await Promise.all([\n getGPSCityName(),\n getIPCityName(),\n ])\n let cityName = ''\n let gpsCityName = ''\n\n if (gpsLocation.status === 0 && gpsLocation.cityName) {\n // gps地址获取成功\n console.log('[utils/location] gps success:::', gpsLocation)\n cityName = gpsLocation.cityName\n gpsCityName = cityName\n } else if (ipLocation.status === 0 && ipLocation.cityName) {\n // ip地址获取成功\n console.log('[utils/location] ip success:::', ipLocation)\n cityName = ipLocation.cityName\n }\n const dataBaseResult = await getDatabaseCity(cityName)\n return {\n latitude: gpsLocation.latitude || ipLocation.latitude,\n longitude: gpsLocation.longitude || ipLocation.longitude,\n gpsLatitude: gpsLocation.latitude,\n gpsLongitude: gpsLocation.longitude,\n ipLatitude: ipLocation.latitude,\n ipLongitude: ipLocation.longitude,\n cityName: dataBaseResult.cityName,\n gpsCityName,\n ipCityName: ipLocation.cityName,\n match: dataBaseResult?.match,\n }\n } catch (error) {\n console.warn(error)\n return {\n latitude: 0,\n longitude: 0,\n gpsLatitude: 0,\n gpsLongitude: 0,\n ipLatitude: 0,\n ipLongitude: 0,\n cityName: '',\n gpsCityName: '',\n ipCityName: '',\n match: false,\n }\n }\n}\n\nfunction getGPSLocation(): Promise<\n {\n status: number\n } & Coordinates\n > {\n const defaultResult = {\n status: -1,\n latitude: 0,\n longitude: 0,\n }\n\n const timeout: Promise<\n {\n status: number\n } & Coordinates\n > = new Promise((resolve) => {\n setTimeout(() => {\n resolve(defaultResult)\n }, 3000)\n })\n\n const getCurrentPosition: Promise<\n {\n status: number\n } & Coordinates\n > = new Promise((resolve) => {\n try {\n const positionOptions = {\n timeout: 3000,\n maximumAge: 60 * 60 * 1000,\n }\n\n window.navigator.geolocation.getCurrentPosition(\n (res) => {\n if (res && res.coords) {\n const { latitude = 0, longitude = 0 } = res.coords\n resolve({\n status: 0,\n latitude,\n longitude,\n })\n } else {\n resolve(defaultResult)\n }\n },\n () => {\n resolve(defaultResult)\n },\n positionOptions\n )\n } catch (err) {\n resolve(defaultResult)\n }\n })\n\n return Promise.race([timeout, getCurrentPosition])\n}\n\nfunction getIPLocation(): Promise {\n return fetch('/motor/car_service/open_api/get_ip_city/')\n .then((json) => {\n return {\n status: 0,\n cityName: get(json, 'data.city_name', ''),\n latitude: get(json, 'data.Latitude', 0),\n longitude: get(json, 'data.Longitude', 0),\n }\n })\n .catch(() => {\n return {\n status: -1,\n cityName: '',\n latitude: 0,\n longitude: 0,\n }\n })\n}\n\nfunction getCityByPos(coordinate: Coordinates): Promise {\n return fetch(\n `https://restapi.amap.com/v3/geocode/regeo?key=${mapKey}&location=${coordinate.longitude},${coordinate.latitude}`\n ).then((json) => {\n try {\n // province 可能返回字符串或数组\n const { city = [], province = [] } = get(\n json,\n 'regeocode.addressComponent',\n {}\n )\n const cityResult = typeof city === 'string' ? city : city[0]\n const provinceResult =\n typeof province === 'string' ? province : province[0]\n\n let result = cityResult || provinceResult || ''\n\n result = result.replace('市', '')\n const currentCity = result || ''\n console.log('[utils/location] getCityByPos response:::', json.data)\n return Promise.resolve({\n status: 0,\n cityName: currentCity,\n ...coordinate,\n })\n } catch (error) {\n return {\n status: -1,\n cityName: '',\n ...coordinate,\n }\n }\n })\n}\n\nfunction getDatabaseCity(cityName: string): Promise<{\n status: number\n cityName: string\n match: boolean\n}> {\n return fetch(\n `/motor/car_service/open_api/get_city_name/?city_name=${encodeURIComponent(\n cityName\n )}`\n )\n .then((json) => {\n try {\n const dbCityName = get(json, 'data.city_name', '')\n const match = get(json, 'data.match', true)\n return Promise.resolve({\n status: 0,\n cityName: dbCityName,\n match,\n })\n } catch (error) {\n return {\n status: -1,\n cityName: '',\n match: false,\n }\n }\n })\n .catch((e) => {\n return {\n status: -1,\n cityName: '',\n match: false,\n }\n })\n}\n\nfunction getGPSCityName() {\n return getGPSLocation().then(getCityByPos)\n}\n\nfunction getIPCityName(): Promise {\n return fetch('/motor/car_service/open_api/get_ip_city/')\n .then((json) => ({\n status: 0,\n cityName: get(json, 'data.city_name', ''),\n latitude: get(json, 'data.Latitude', 0),\n longitude: get(json, 'data.Longitude', 0),\n }))\n .catch(() => {\n return {\n status: -1,\n cityName: '',\n latitude: 0,\n longitude: 0,\n }\n })\n}\n","import fetch from 'lib/decorated-fetch'\nimport { logger } from './slardar-utils'\n\nexport interface IConfig {\n declare_strategy: string\n api_intercept: string\n}\nconst defaultConfig: IConfig = {\n declare_strategy: '1',\n api_intercept: '[]',\n}\nlet promise: Promise | null = null\nexport default function getTCCConfig() {\n if (promise) return promise\n promise = new Promise(async (resolve) => {\n try {\n const response = await fetch(\n 'https://lf3-config.bytetcc.com/obj/tcc-config-web/tcc-v2-data-motor.fe.pc-default'\n )\n resolve(Object.assign({}, defaultConfig, response.data as IConfig))\n } catch (error) {\n logger.error(\n `[/motor/tcc/config/web/get onError] error message: ${\n (error as Error).message\n }]`\n )\n resolve({ ...defaultConfig })\n }\n })\n return promise\n}\n","export const getIEVersion = () => {\n if (typeof window === 'undefined') {\n return -1\n }\n if (!window?.navigator || !window?.navigator?.userAgent) {\n return -1\n }\n const { userAgent } = navigator //取得浏览器的userAgent字符串\n const isIE =\n userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 //判断是否IE<11浏览器\n const isEdge = userAgent.indexOf('Edge') > -1 && !isIE //判断是否IE的Edge浏览器\n const isIE11 =\n userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1\n if (isIE) {\n const reIE = new RegExp('MSIE (\\\\d+\\\\.\\\\d+);')\n reIE.test(userAgent)\n const fIEVersion = parseFloat(RegExp['$1'])\n if (fIEVersion == 7) {\n return 7\n } else if (fIEVersion == 8) {\n return 8\n } else if (fIEVersion == 9) {\n return 9\n } else if (fIEVersion == 10) {\n return 10\n } else {\n return 6 //IE版本<=7\n }\n } else if (isEdge) {\n return 'edge' //edge\n } else if (isIE11) {\n return 11 //IE11\n } else {\n return -1 //不是ie浏览器\n }\n}\n\n// 是否需要全局升级提示\nexport const isHasTips = () => {\n const ieVersion = getIEVersion()\n // ie 11以下\n if (ieVersion > 0 && ieVersion <= 11) {\n return true\n }\n\n return false\n}\n\n// 是否为 Firefox\nexport const isFirefox = () => {\n if (typeof window === 'undefined') {\n return false\n }\n if (!window?.navigator || !window?.navigator?.userAgent) {\n return false\n }\n\n if (window?.navigator?.userAgent?.indexOf('Firefox') >= 0) {\n return true\n }\n\n return false\n}\n","/**\n * 判断当前是否为node环境\n */\nconst isNode = typeof window === 'undefined'\n\nexport default isNode\n","import teaInit, { sendTeaCommEvent, teaConfig } from 'lib/tea-analyze'\nimport { logger, metrics } from 'lib/slardar-utils'\n\ninterface IRealUser {\n scr?: number // 是否有过滚动\n clk?: number // 是否有过点击\n}\n\nexport function isRealUser() {\n const realUser = getRealUserFromStorage()\n return realUser?.clk || realUser?.scr ? true : false\n}\n\nexport function getRealUserFromStorage() {\n let realUser: IRealUser = null!\n let str = ''\n if (localStorage?.getItem) {\n str = localStorage.getItem('pc_real_user') ?? ''\n }\n try {\n realUser = JSON.parse(str ?? '')\n } catch (e) {\n // do nothing\n }\n return realUser\n}\n\nexport function setRealUser2Storage({ scr, clk }: IRealUser) {\n const realUser = getRealUserFromStorage() ?? {}\n if (typeof scr !== 'undefined') {\n Object.assign(realUser, {\n scr,\n })\n }\n if (typeof clk !== 'undefined') {\n Object.assign(realUser, {\n clk,\n })\n }\n try {\n localStorage.setItem('pc_real_user', JSON.stringify(realUser))\n } catch (e) {\n if (metrics?.counter) {\n metrics.counter('pc_real_user_localstorage')\n }\n }\n}\nexport const PUB_SUB_CUSTOM_PARAMS_KEY = Symbol('customParams')\nexport default function init() {\n const isValidUser = isRealUser()\n\n let hasScroll = false\n let hasClick = false\n let customParams = {}\n\n // 用户有效性,通过滚动实现\n let timer = 0\n function handleScroll() {\n if (timer) {\n window.clearTimeout(timer)\n }\n\n function winScroll() {\n const param: any = {}\n const active_property = window.localStorage.getItem(\n 'auto_compare/params/active_property'\n )\n if (active_property) param.highlight_params_text = active_property\n sendTeaCommEvent('page_scroll', { ...param, ...customParams })\n\n if (isValidUser || hasScroll) {\n return\n }\n\n hasScroll = true\n\n if (hasScroll) {\n setRealUser2Storage({ scr: 1 })\n }\n }\n\n timer = window.setTimeout(winScroll, 200)\n }\n\n function handleClick() {\n if (isValidUser || hasClick) {\n return\n }\n\n hasClick = true\n\n if (hasClick) {\n setRealUser2Storage({ clk: 1 })\n }\n }\n\n document.removeEventListener('scroll', handleScroll, false)\n document.addEventListener('scroll', handleScroll, false)\n const token = PubSub.subscribe(\n PUB_SUB_CUSTOM_PARAMS_KEY,\n (key: string, data: Record) => {\n customParams = data\n }\n )\n\n if (!isValidUser) {\n document.removeEventListener('click', handleClick, false)\n document.addEventListener('click', handleClick, false)\n }\n\n return () => {\n document.removeEventListener('scroll', handleScroll, false)\n PubSub.unsubscribe(token)\n if (!isValidUser) {\n document.removeEventListener('click', handleClick, false)\n }\n }\n}\n","import { ReactNode } from 'react'\n\nexport type Wrapper = (content: ReactNode) => ReactNode\n\nconst noopWrapper: Wrapper = content => content\n\nexport default noopWrapper\n","import { logger, metrics } from './slardar-utils'\n\nexport const videoStaticLabel =\n 'news|newcar|guide|industry|motor|usage|evaluating|tiche|travel|offroad|modification|learn|culture|used|touring|acing|tech|skill'\n\n/**\n * url 转 pageId\n * 可以通过两种方式:\n * 1. url (优先级高)\n * 2. RegExp\n * 注意:\n * 1. 避免影响埋点数据。 如果新增,请在page-enter.test.ts中增加测试case. 并保证 npm run test 验证通过\n * 2. 如果正则方式,尽量/^ $/ 开头和结尾严格匹配\n */\nconst PAGE_ID_2_URL_MAP: {\n [key: string]: {\n url?: string\n reg?: RegExp\n }\n} = {\n // url...\n page_main_new: {\n url: '/',\n },\n page_section_combine_pc: {\n url: '/video/groups',\n },\n page_video_combine_pc: {\n reg: new RegExp(\n `^/video(?:s/((${videoStaticLabel})(?:-[^/]+)?)(?:/([1-9]\\\\d*))?)?$`\n ),\n },\n page_feed_article_mix: {\n url: '/feed',\n },\n page_search_result_new: {\n url: '/search',\n },\n page_404: {\n url: '/404',\n },\n page_car_picture: {\n url: '/picture',\n },\n page_hot_series_rank_list: {\n url: '/popular',\n },\n page_motor_forum: {\n url: '/car_fans_community',\n },\n page_dcar_live_main: {\n url: '/live',\n },\n page_series_configuration: {\n // 复杂正则在SCM编译产物检验会失败,采用非严格的匹配\n // reg: /^\\/auto\\/params-carIds(-x-(\\d+)|(?<=carIds)(-\\d+)+)$/,\n reg: /^\\/auto\\/params-carIds-/,\n },\n page_new_car_rank_list: {\n url: '/newcar',\n },\n page_dcd_list: {\n reg: /sales(\\/*)?/,\n },\n page_dcar_motor_show: {\n url: '/activity/car_show',\n },\n page_dcar_origin_list: {\n url: '/video/groups-origin',\n },\n page_car_model_comparison: {\n url: '/auto/auto_compare/params',\n },\n page_car_zonghe_comparison: {\n url: '/auto/auto_compare/composites',\n },\n page_sell_car_publish_implement: {\n url: '/usedcar/sale',\n },\n page_sell_car_success: {\n url: '/usedcar/sale/result',\n },\n // reg...\n page_section_detail_pc: {\n reg: /^\\/video\\/groups\\/(\\d+)/,\n },\n page_car_series_pc: {\n reg: /^\\/auto\\/library/,\n },\n page_pgc_video_detail: {\n reg: /^\\/video\\/(\\d+)/,\n },\n page_car_series_home: {\n reg: /^\\/auto\\/series\\/(\\d+)$/,\n },\n page_car_series_dcd_score_home: {\n reg: /^\\/auto\\/series\\/score\\/(\\d|x)(.*)$/,\n },\n page_pgc_article_detail: {\n reg: /^\\/article\\/(\\d+)/,\n },\n page_ugc_detail: {\n reg: /^\\/ugc\\/article\\/[0-9-]+$/,\n },\n page_answer_detail: {\n reg: /^\\/ugc\\/article\\/\\d+\\/answer\\/\\d+$/,\n },\n page_my_collection: {\n reg: /^\\/user\\/favor(\\/)?(\\d+)?/,\n },\n page_personal_homepage: {\n reg: /^\\/user\\/?(\\w+)?\\/?(\\d+)?/,\n },\n page_feed_article_mix_static: {\n reg: /^\\/news/,\n },\n page_user_profile: {\n reg: /^\\/user\\/profile\\/(\\d+)/,\n },\n page_series_real_picture: {\n reg: /^\\/auto\\/series\\/(\\d+)\\/images-[\\w]+$/,\n },\n page_series_video_list: {\n reg: /^\\/auto\\/series\\/(\\d+)\\/video(.*)$/,\n },\n page_series_article_list: {\n reg: /^\\/auto\\/series\\/(\\d+)\\/article(.*)$/,\n },\n page_series_qa_list: {\n reg: /^\\/auto\\/series\\/(\\d+)\\/qa$/,\n },\n page_series_instruction_video_detail: {\n reg: /^\\/auto\\/series\\/(\\d+)\\/videoManual\\/(\\d+)$/,\n },\n page_series_picture_detail: {\n reg: /^\\/series-(\\d+)\\/images\\/(.+)/,\n },\n page_series_inquiry: {\n reg: /^\\/dealer\\/(\\d+)(\\/(sale|presell|stagingpurchase|testrun))?$/,\n },\n page_series_compare_detail: {\n reg: /^\\/auto\\/compare\\/(\\d+),(\\d+)/,\n },\n page_ugc_forum_home: {\n // /community/96/wenda-release-2\n reg: /^\\/community\\/(\\d+)(?:\\/([^-0-9]+)?(?:-([^-0-9]+))?(?:-?([1-9][0-9]*))?)?/,\n },\n page_reputation_detail: {\n reg: /^\\/koubei\\/(.+)$/,\n },\n page_dcar_origin_detail: {\n reg: /^\\/video\\/groups-origin\\/(\\d+)/,\n },\n page_topic_talk_details: {\n reg: /\\/topic\\/(\\d+)(?:\\/(complex|video|picture|qa)?(?:-([^-0-9]+))?(?:-?([1-9][0-9]*))?)?/,\n },\n page_used_car_source_detail: {\n reg: /^\\/usedcar\\/(\\d+)$/,\n },\n page_used_car_source_list: {\n reg: /^\\/usedcar\\/(.+)$/,\n },\n page_buy_car_pc_tag: {\n reg: /^\\/tag\\/(model|series)\\/(\\d+)$/,\n },\n page_topic_word_information: {\n reg: /^\\/tag\\/pgc\\/(\\d+)$/,\n },\n page_car_friend_communication: {\n reg: /^\\/tag\\/ugc\\/(\\d+)$/,\n },\n page_car_style_home: {\n reg: /^\\/auto\\/series\\/(\\d+)\\/model-(\\d+)$/,\n },\n page_price_calculator: {\n reg: /^\\/calculator\\/(fullpayment|loan)$/,\n },\n page_quality_qa_detail: {\n reg: /^\\/bdwenda\\/(\\d+)/,\n },\n page_dealer_detail: {\n reg: /^\\/agent\\/(\\d+)$/,\n },\n page_coupon_collection: {\n reg: /^\\/agent\\/(\\d+)\\/coupon-(\\d+)$/,\n },\n page_registration: {\n reg: /^\\/agent\\/(\\d+)\\/activity-(\\d+)$/,\n },\n page_professional_evaluation_web: {\n reg: /^\\/test\\/(.+)$/,\n },\n page_tensofmillions_car_parameter: {\n reg: /section\\/(\\d+)-(\\d+)-(\\d+)$/,\n },\n}\n\ninterface IPageIdInfo {\n pageId: string\n rule: {\n url?: string\n reg?: RegExp\n }\n matches?: any[]\n}\n\nconst getPageIdInfo = (urlStr: string): IPageIdInfo | undefined => {\n if (!urlStr) {\n return\n }\n\n let url = urlStr.split('?').length > 0 ? urlStr.split('?')[0] : ''\n url = url.split('#').length > 0 ? url.split('#')[0] : ''\n\n //search by url\n const hitUrlPageId = Object.keys(PAGE_ID_2_URL_MAP).find((pageId) => {\n return PAGE_ID_2_URL_MAP[pageId]?.url === url\n })\n\n if (hitUrlPageId) {\n return {\n pageId: hitUrlPageId,\n rule: PAGE_ID_2_URL_MAP[hitUrlPageId],\n }\n }\n\n //search by reg\n let matches\n const hitRegPageId = Object.keys(PAGE_ID_2_URL_MAP).find((pageId) => {\n const reg = PAGE_ID_2_URL_MAP[pageId]?.reg\n if (!reg) {\n return false\n }\n\n matches = url?.match(reg)\n if (!matches) {\n return false\n }\n\n return true\n })\n\n if (hitRegPageId) {\n return {\n pageId: hitRegPageId,\n rule: PAGE_ID_2_URL_MAP[hitRegPageId],\n matches,\n }\n }\n\n metrics.counter('lib_page_enter_get_pageId_fail')\n logger.error(`[lib_page_enter_get_pageId_fail] url=${url}`)\n}\n\nexport const getPageId = (url: string) => {\n const result = getPageIdInfo(url)\n return result?.pageId\n}\n\nexport interface IStatData {\n page_id: string\n group_id?: string\n car_series_id?: string\n compare_series_id?: string\n user_id?: string\n column_id?: string\n current_pic_rank?: string\n section_id?: string\n}\n\ntype IGetStatData = (urlStr: string) => IStatData\n\nconst getStatData: IGetStatData = (urlStr: string) => {\n let params: IStatData = {\n page_id: '',\n }\n\n const pageIdInfo = getPageIdInfo(urlStr)\n if (!pageIdInfo) {\n return params\n }\n\n const pageId = pageIdInfo?.pageId\n params = {\n page_id: pageId,\n }\n\n const matches = pageIdInfo?.matches\n if (matches) {\n const m1 = matches?.[1]\n Object.assign(params, {\n group_id: m1,\n car_series_id: m1,\n user_id: m1,\n column_id: m1,\n section_id: m1,\n })\n\n if (matches?.length >= 2) {\n if (pageId === 'page_series_compare_detail') {\n params.compare_series_id = matches[2] || ''\n }\n }\n }\n\n return params\n}\n\nexport default getStatData\n","import { logger } from './slardar-utils'\n\nexport const DCD_REFERRER = 'dcd_referrer'\n\nexport const updateAnchorRel = (node: Node) => {\n if (node.nodeType !== node.ELEMENT_NODE) return\n const anchors = (node as HTMLElement).querySelectorAll('a')\n anchors.forEach((anchor) => {\n const {rel} = anchor\n if (rel.indexOf('noopener') === -1 && rel.indexOf('opener') === -1) {\n anchor.rel = [rel, 'opener'].filter(Boolean).join(' ')\n }\n })\n}\nexport const createRootObserver = () => {\n try {\n const rootNode = document.body\n updateAnchorRel(rootNode)\n const config = { attributes: false, childList: true, subtree: true }\n const callback: MutationCallback = function (mutationsList, observer) {\n for (const mutation of mutationsList) {\n mutation.addedNodes.forEach((node) => {\n updateAnchorRel(node)\n })\n }\n }\n const observer = new MutationObserver(callback)\n observer.observe(rootNode, config)\n return observer\n } catch (error) {\n logger.error(\n `[create/root/observer error] message:${(error as Error).message}`\n )\n return null\n }\n}\n\nexport const setReferrer = () => {\n const docReferrer = document.referrer\n const sessionReferrer = window.sessionStorage.getItem(DCD_REFERRER)\n if (!docReferrer || sessionReferrer) return\n try {\n const referrerURL = new URL(docReferrer)\n window.sessionStorage.setItem(DCD_REFERRER, referrerURL.hostname)\n } catch (error) {\n logger.error(`[set referrer error] message: ${(error as Error).message}`)\n }\n}\nconst META_ARRAY = [\n 'baidu',\n 'google',\n 'sogou',\n 'so',\n 'bing',\n 'lenovo',\n 'dongchedi',\n]\n\nexport const getReferrerMeta = () => {\n const referrer = window.sessionStorage.getItem(DCD_REFERRER)\n if (!referrer) return 'dongchedi'\n const meta = META_ARRAY.find((meta) => referrer.indexOf(meta) !== -1)\n return meta || 'seo'\n}\n","const noop = () => {\n // pass\n}\n\nconst slardar =\n typeof window === 'undefined' ? noop : (window as any).Slardar || noop\n\ntype Value = string | number | boolean | Record\ntype Tag = Record\n\nfunction _log(value: Value, level = 'info', tags?: Tag) {\n const consoleMethod =\n level === 'info' ? 'log' : level === 'warn' ? 'warn' : 'error'\n if (\n process.env.NODE_ENV === 'development' ||\n process.env.NODE_ENV === 'test'\n ) {\n console[consoleMethod](value, tags)\n return\n }\n const logMessage = typeof value === 'object' ? JSON.stringify(value) : value\n if (typeof window !== 'undefined') {\n slardar('emit', 'log', {\n value: logMessage,\n level,\n tags,\n })\n return\n }\n switch (level) {\n case 'error':\n console.error(logMessage)\n break\n case 'warn':\n console.warn(logMessage)\n break\n default:\n console.log(logMessage)\n }\n}\nconst logger = {\n error: (value: Value, tags?: Tag) => {\n _log(value, 'error', tags)\n },\n warn: (value: Value, tags?: Tag) => {\n _log(value, 'warn', tags)\n },\n log: (value: Value, tags?: Tag) => {\n _log(value, 'info', tags)\n },\n info: (value: Value, tags?: Tag) => {\n _log(value, 'info', tags)\n },\n}\n\nfunction _send(name = '', tags = {}) {\n if (\n process.env.NODE_ENV === 'development' ||\n process.env.NODE_ENV === 'test'\n ) {\n console.log(name, tags)\n return\n }\n\n slardar('emit', 'counter', {\n name,\n value: 1,\n tags,\n })\n}\n\nfunction _sendTimer(name = '', value: number, tags = {}) {\n if (\n process.env.NODE_ENV === 'development' ||\n process.env.NODE_ENV === 'test'\n ) {\n console.log(name, value, tags)\n return\n }\n\n slardar('emit', 'timer', {\n name,\n value,\n tags,\n })\n}\n\nconst metrics = {\n counter: (name: string, tags?: Tag) => {\n _send(name, tags)\n },\n timer: (name: string, value: number, tags?: Tag) => {\n _sendTimer(name, value, tags)\n },\n}\n\nexport { logger, metrics }\n","import Cookies from '@arsenal/arsenal/modules/Cookies'\nimport { logger, metrics } from './slardar-utils'\nconst noop = () => {\n // pass\n}\n\nexport const Tea =\n typeof window === 'undefined' ? noop : window.collectEvent || noop\n\n// const Tea = (arg1: any, arg2: any) => {}\ninterface SendTeaEnterEventParams {\n page_id: string\n extra_params?: any\n pre_page_id?: string\n pre_sub_tab?: string\n sub_tab?: string\n}\n\ninterface SendTeaStayEventParams {\n page_id?: string\n extra_params?: any\n pre_page_id?: string\n pre_sub_tab?: string\n sub_tab?: string\n stay_time?: number\n}\n\ninterface SendTeaCommEventParams {\n page_id?: string\n group_id?: string | number\n item_id?: string\n enter_from?: string\n sub_tab?: string\n content_type?: string | number\n car_series_id?: string | number\n link_source?: string\n [key: string]: any\n}\n\ninterface SendTeaAdEventParams {\n page_id?: string // 点击位置所属页面id\n ad_material_id?: string // 广告素材ID\n ad_target_url?: string // 广告落地页URL\n group_id?: string // 文章ID\n log_extra?: string // 服务端统计字段\n content_type?: string // 文章内容类型\n ad_id?: string // 广告ID\n ad_req_id?: string // 广告接口该次请求的ID\n req_id?: string // 请求ID\n rank?: string | number // 一级列表排序\n pre_page_id?: string // 前一个页面的页面id\n [key: string]: string | number | undefined\n}\n\ninterface AdMonitorParams {\n url: string\n requestId: string\n [props: string]: any\n}\n\nlet stayParams: SendTeaStayEventParams = {}\nlet stayTimer: any = null\nlet PAGE_ID = ''\n\nexport function setPageId(pageId: string) {\n PAGE_ID = pageId\n}\n\nexport default function teaInit({\n appId = 1839,\n zt = '',\n ...rest\n}: {\n [key: string]: any\n}) {\n // 初始化业务配置\n Tea('init', {\n app_id: appId,\n channel: 'cn',\n autotrack: {\n //对内的无埋点,必须填以下的值\n custom: 'tea', //固定值\n },\n ...rest,\n })\n Tea('config', {\n log: process.env.NODE_ENV === 'development',\n app_name: 'auto_web_pc',\n user_type: 13,\n zt,\n })\n Tea('send')\n}\n\nexport function teaConfig(params: any) {\n Tea('config', params)\n}\n\nexport function teaStart() {\n Tea('start')\n}\n\nexport type TeaPageBizParams = Record<\n string,\n string | number | undefined | null\n>\n\nlet enterPageBizParams: TeaPageBizParams | null\n\nexport const setEnterPageBizParams = (params: TeaPageBizParams) => {\n enterPageBizParams = params\n}\n\n// 切换页面时先报stay,再上报进入页面的enter\nexport function sendTeaEnterEvent(params: SendTeaEnterEventParams) {\n // 等待页面useEffect执行完成 通过setEnterPageBizParams设置enterPage需要的业务参数\n setTimeout(() => {\n if (!params.page_id) {\n console.error('sendTeaEnterEvent has no page_id')\n // throw new Error('sendTeaEnterEvent has no page_id')\n }\n if (!params.extra_params) {\n params.extra_params = ''\n }\n // pre_page_id必须, pre_sub_tab不必须\n params.pre_page_id = params.pre_page_id || ''\n if (sessionStorage.getItem('pre_page_id') && !params.pre_page_id) {\n params.pre_page_id = sessionStorage.getItem('pre_page_id') || ''\n }\n if (sessionStorage.getItem('pre_sub_tab') && !params.pre_sub_tab) {\n params.pre_sub_tab = sessionStorage.getItem('pre_sub_tab') || ''\n }\n // 记录当前页信息,其他事件使用\n sessionStorage.setItem('page_id', params.page_id)\n sessionStorage.setItem('sub_tab', params.sub_tab || '')\n if (params.page_id === 'page_pgc_video_detail') {\n Tea('go_detail', {\n ...params,\n })\n }\n Tea('page_enter', {\n ...params,\n ...enterPageBizParams,\n })\n enterPageBizParams = null\n // 记录当前页信息\n stayTimer = new Date()\n stayParams = params\n\n PAGE_ID = params.page_id\n })\n}\n\nlet stayPageBizParams: TeaPageBizParams | null\n\n// 在页面组件中调用设置stayPage需要的的业务参数\nexport const setStayPageBizParams = (params: TeaPageBizParams) => {\n stayPageBizParams = params\n}\n\n// 同一个html内部切换用\nexport const sendTeaStayEvent = (params: SendTeaStayEventParams = {}) => {\n if (params) {\n stayParams = Object.assign({}, stayParams, params)\n }\n stayParams.stay_time = stayTimer\n ? new Date().getTime() - stayTimer.getTime()\n : -1\n if (!stayParams.page_id) {\n stayParams.page_id = PAGE_ID\n }\n if (!stayParams.extra_params) {\n stayParams.extra_params = ''\n }\n const pre_page_id = sessionStorage.getItem('pre_page_id') || 'page_default' // 如果没有传入 默认参数\n // 3.0版本离开页面\n Tea('stay_page_pageid', {\n page_id: stayParams.page_id,\n pre_page_id,\n stay_time: stayParams.stay_time,\n ...stayPageBizParams,\n })\n if (stayParams.page_id === 'page_pgc_video_detail') {\n Tea('stay_page', {\n page_id: stayParams.page_id,\n pre_page_id,\n stay_time: stayParams.stay_time,\n })\n }\n\n Tea('leave_page', {\n ...stayParams,\n ...stayPageBizParams,\n pre_page_id,\n })\n // 记录当前页信息,下页pre使用\n sessionStorage.setItem('pre_page_id', stayParams.page_id || '')\n sessionStorage.setItem('pre_sub_tab', stayParams.sub_tab || '')\n stayPageBizParams = null\n}\n\nexport const sendTeaCommEvent = (\n event: string,\n _params: SendTeaCommEventParams = {}\n) => {\n if (process.env.NODE_ENV === 'development') {\n console.info('[sendTeaAdEvent]', `event = ${event} params =`, _params)\n }\n const params = Object.assign(\n {\n page_id: PAGE_ID,\n },\n _params\n )\n if (event === 'go_detail') {\n sessionStorage.setItem('detail_group_id', `${params.group_id}` || '')\n sessionStorage.setItem('detail_item_id', params.item_id || '')\n sessionStorage.setItem('detail_enter_from', params.enter_from || '')\n }\n Tea(event, params)\n}\n\nexport const sendTeaAdEvent = (\n event: string,\n _params: SendTeaAdEventParams = {}\n) => {\n const params = Object.assign(\n {\n page_id: PAGE_ID,\n pre_page_id: sessionStorage.getItem('pre_page_id') || '',\n },\n _params\n )\n Tea(event, params)\n\n if (process.env.NODE_ENV === 'development') {\n console.info('[sendTeaAdEvent]', `event = ${event} params =`, params)\n }\n}\n\nexport const sendAdMonitor = (params: AdMonitorParams) => {\n const { url, requestId, eventId } = params\n const now = new Date().getTime().toString()\n const uniqueId = Cookies('tt_webid') || ''\n const imageEle = new Image()\n const replaceUrl = `${url.replace(\n /{TS}|__TS__/g,\n now\n )}&mrid=${requestId}&muid=${uniqueId}`\n\n imageEle.onload = () => {\n metrics.counter('sendadmonitor.success', {\n eventId,\n })\n logger.info(`[sendAdMonitor] onload url = ${replaceUrl}`, {\n eventId,\n })\n }\n imageEle.onerror = () => {\n metrics.counter('sendadmonitor.fail', {\n eventId,\n })\n logger.error(`[sendAdMonitor] onerror url = ${replaceUrl}`, {\n eventId,\n })\n }\n imageEle.src = replaceUrl\n\n // mrid\n // muid\n}\n\nexport const documentVisiblityChange = (\n onShow?: Function,\n onHidden?: Function\n) => {\n /*\n ** 页面unload时,统计请求会被cancel\n ** 故离开页面保存stay params, 下一页面上报page stay\n */\n let hidden = ''\n let visibilityChange = ''\n if (typeof document !== 'undefined') {\n if (typeof document.hidden !== 'undefined') {\n // Opera 12.10 and Firefox 18 and later support\n hidden = 'hidden'\n visibilityChange = 'visibilitychange'\n // @ts-ignore\n } else if (typeof document.msHidden !== 'undefined') {\n hidden = 'msHidden'\n visibilityChange = 'msvisibilitychange'\n // @ts-ignore\n } else if (typeof document.webkitHidden !== 'undefined') {\n hidden = 'webkitHidden'\n visibilityChange = 'webkitvisibilitychange'\n }\n const onVisibilityChange = () => {\n if ((document as any)[hidden]) {\n stayParams.stay_time = stayTimer\n ? new Date().getTime() - stayTimer.getTime()\n : -1\n sessionStorage.setItem(\n 'pre_page_stay_params',\n JSON.stringify(stayParams)\n )\n onHidden && onHidden()\n } else {\n onShow && onShow()\n }\n }\n document.addEventListener(visibilityChange, onVisibilityChange)\n }\n}\n\n// @fe/wil 需要 stringify\nexport const str = (item: any) => {\n try {\n return JSON.stringify(item || {})\n } catch (error) {\n console.error(error)\n return ''\n }\n}\n\ndocumentVisiblityChange()\n","import { isNewVersion } from 'Components/hooks/use-version'\nimport { VERSION_COOKIE_KEY, NEW_VERSION, OLD_VERSION } from 'lib/version'\nimport qs, { ParsedQs } from 'qs'\nimport { isBOE, isDEV } from 'lib/utils'\n\nexport default function getUrl(path: string, psm?: string) {\n if (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') {\n if (path.startsWith('/cloud/api')) {\n return path\n }\n // return `/api${path}`\n return path\n }\n\n // 浏览器环境\n if (typeof window !== 'undefined') {\n return path\n }\n\n let domain = isBOE\n ? 'http://pc.motor-boe.bytedance.net'\n : 'https://www.dongchedi.com'\n\n if (isDEV) {\n domain = `http://127.0.0.1:${process.env.PORT || 3000}`\n }\n\n if (psm && !isDEV && !isBOE) {\n domain = `consul://${psm}`\n }\n\n console.log('domain-path', `${domain}${path}`)\n return `${domain}${path}`\n}\n\nexport const urlWithVersion = () => {\n const curUrl = window.location?.href || ''\n const query: ParsedQs = qs.parse(window.location?.search?.substr(1))\n const baseUrl = `${window.location?.origin || ''}${\n window.location?.pathname || ''\n }`\n const hash = window.location?.hash\n let newUrl = curUrl\n\n if (isNewVersion() && query?.[VERSION_COOKIE_KEY] !== NEW_VERSION) {\n query[VERSION_COOKIE_KEY] = NEW_VERSION\n newUrl = `${baseUrl}?${qs.stringify(query)}${hash}`\n } else if (!isNewVersion() && query?.[VERSION_COOKIE_KEY] !== OLD_VERSION) {\n query[VERSION_COOKIE_KEY] = OLD_VERSION\n newUrl = `${baseUrl}?${qs.stringify(query)}${hash}`\n }\n\n if (curUrl !== newUrl) {\n window.history.replaceState(\n { ...window.history.state, as: newUrl, url: newUrl },\n '',\n newUrl\n )\n }\n}\n","import decodeUriComponent from 'decode-uri-component'\n\nexport function validatePhone(phone: string | number): boolean {\n return /^\\d{11}$/.test(`${phone}`)\n}\n\nexport function toNumber(value: string | number): number {\n const numberValue = Number(value)\n return Number.isNaN(numberValue) ? 0 : numberValue\n}\n\nexport function unicodeToChar(text: string) {\n return text.replace(/\\\\u[\\dA-F]{4}/gi, function (match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16))\n })\n}\n\nexport function getBoundingClientRect(element: HTMLElement | Element) {\n const rect = element.getBoundingClientRect()\n // whether the IE version is lower than 11\n const isIE = navigator.userAgent.indexOf('MSIE') !== -1\n\n // fix ie document bounding top always 0 bug\n const rectTop =\n isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top\n\n return {\n left: rect.left,\n top: rectTop,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.right - rect.left,\n height: rect.bottom - rectTop,\n }\n}\n\nexport const isDEV = process.env.NODE_ENV === 'development'\n\nexport const isBOE =\n process.env.server === 'boe' || process.env.TCE_HOST_ENV === 'boe'\n\nexport const isPPE =\n process.env.server === 'ppe' || process.env.TCE_HOST_ENV === 'ppe'\n\nexport const ttEnv = process.env.ttEnv || process.env.TCE_ENV\n\nexport const handleAsPath = (asPath: string) => {\n const search = asPath?.split('?')?.[1]\n const queries = {} as any\n if (search) {\n search.split('&').forEach(function (c: string) {\n if (c === '') {\n return\n }\n const splitArr = c.split('=')\n const [key, value] = splitArr\n queries[key] = decodeUriComponent(value || '')\n })\n }\n return queries\n}\n","export const VERSION_COOKIE_KEY = 'tt_web_version'\nexport const NEW_VERSION = 'new'\nexport const OLD_VERSION = 'old'\nimport Cookies from '@arsenal/arsenal/modules/Cookies'\n\n// 缓存解析结果\nlet _isNewVersion: boolean\n\n// 如果是客户端环境 依靠cookie 如果是server端则依靠传入的 一般为 req?._isNewVersion\nexport const isNewVersion = (serverNewVersion?: boolean) => {\n if (typeof window === 'undefined') {\n return !!serverNewVersion\n }\n if (_isNewVersion === undefined) {\n _isNewVersion = Cookies(VERSION_COOKIE_KEY) === NEW_VERSION\n }\n return _isNewVersion\n}\n","import isNode from 'lib/is-node'\n\nexport const isPWA =\n !isNode && window.matchMedia('(display-mode: minimal-ui)').matches\n\n// const _blank = isPWA ? '_self' : '_blank'\n//\n// export default _blank\n","import getQuery from '@arsenal/arsenal/modules/getQuery'\nimport { isPWA } from 'Constants/_blank'\n\n/**\n * sessionStorage工具\n */\nconst _sessionStorage = (() => {\n return {\n getItem: (key: string): string | null => {\n try {\n return sessionStorage.getItem(key)\n } catch (e) {\n return null\n }\n },\n setItem: (key: string, value: string): void => {\n try {\n sessionStorage.setItem(key, value)\n } catch (e) {}\n },\n }\n})()\n\n/**\n * 获取zt参数,用于统计pc站来源及线索提交场景使用\n * 获取方式:链接中zt参数 > session storage中zt参数 > 自然流量 default_pc\n * FIXME: 上线后观察是否存在无限制向后追加zt问题,并解决\n * @param {string} appendLabel - 用于统计页内不同位置带入留咨\n */\nexport const getZT = (appendLabel = ''): string => {\n try {\n const paramZT = isPWA\n ? 'zhuomian'\n : getQuery('zt', window.location.search.slice(1) || '')\n\n const zt =\n typeof paramZT === 'string'\n ? paramZT\n : _sessionStorage.getItem('__zt') || 'default_pc'\n\n if (zt !== 'default_pc') {\n _sessionStorage.setItem('__zt', zt)\n }\n\n return `${zt}${appendLabel ? `_${appendLabel}` : ''}`\n } catch (e) {\n return `default_pc${appendLabel ? `_${appendLabel}` : ''}`\n }\n}\n","import { useEffect, useState } from 'react'\n\ninterface IAdConfig {\n homeTopAdShow: boolean | undefined\n isShowClose: boolean\n}\n\ntype Subscriber = () => void\n\nconst subscribers = new Set()\n\n// 天幕广告相关的控制\nlet adConfig: IAdConfig = {\n homeTopAdShow: undefined,\n isShowClose: true,\n}\n\nexport function setAdConfig({\n homeTopAdShow = false,\n isShowClose = false,\n}: Partial) {\n const newAdConfig = { homeTopAdShow, isShowClose }\n if (\n (['homeTopAdShow', 'isShowClose'] as (keyof IAdConfig)[]).every(\n (prop) => adConfig[prop] === newAdConfig[prop]\n )\n ) {\n return\n }\n adConfig = newAdConfig\n for (const subscriber of subscribers) {\n subscriber()\n }\n}\n\nfunction useAdConfig() {\n const [config, setConfig] = useState(adConfig)\n\n useEffect(() => {\n const subscriber = () => {\n setConfig(adConfig)\n }\n subscribers.add(subscriber)\n return () => {\n subscribers.delete(subscriber)\n }\n }, [])\n\n return config\n}\n\nexport default useAdConfig\n","import React, { useCallback, useContext, useEffect, useState } from 'react'\nimport dynamic from 'next/dynamic'\nimport cookie from 'cookie'\nimport { GlobalStoreContext } from 'Components/store'\nimport { checkLogin, getSsoSDK, fetchUserInfo } from 'New/login/service'\nimport { LOGIN_STORAGE_KEY } from 'New/login/utils/constants'\nimport { LoginStorageValues } from 'New/login/utils/page-control'\nimport Toast from 'New/side-nav/components/feedback-modal/custom-toast'\nimport { PageType } from 'New/login/index'\nimport { teaConfig } from 'lib/tea-analyze'\nimport {\n ILoginCommonParams,\n ILoginTeaParams,\n} from 'New/login/context/view-context'\nimport useWindowLoaded from 'Components/hooks/use-window-loaded'\n\nconst Login = dynamic(() => import('New/login/index'), {\n ssr: false,\n})\n\nexport const LoginStoreContext = React.createContext(\n {} as {\n openLogin(commonParams?: ILoginCommonParams): void\n logout(): void\n }\n)\n\nconst saveUserData = (userData: string) => {\n document.cookie = `user_data=${encodeURIComponent(userData)};max-age=${\n 60 * 60 * 24 * 30\n };path=/`\n}\n\nconst clearUserData = () => {\n document.cookie = 'user_data=;max-age=-1;path=/'\n}\n\nconst teaStoreKey = 'login_tea_params'\n\nconst getLoginTeaParams = () => {\n let teaParams: ILoginTeaParams = {}\n try {\n const str = sessionStorage.getItem(teaStoreKey)\n if (str) {\n teaParams = JSON.parse(str)\n }\n } catch (e) {\n // noop\n }\n return teaParams\n}\n\nconst saveLoginTeaParams = (teaParams?: ILoginTeaParams) => {\n try {\n if (teaParams) {\n sessionStorage.setItem(teaStoreKey, JSON.stringify(teaParams))\n }\n } catch (e) {\n // noop\n }\n}\n\nconst LoginStoreProvider: React.FC = ({ children }) => {\n const [showLogin, setShowLogin] = useState(false)\n\n const { dispatch } = useContext(GlobalStoreContext)\n\n useEffect(() => {\n const cookies = cookie.parse(document.cookie)\n try {\n const userData = JSON.parse(cookies.user_data)\n dispatch({\n type: 'setUserData',\n payload: userData,\n })\n } catch (e) {\n //\n }\n }, [])\n\n const autoLogin = useCallback(() => {\n try {\n if (localStorage.getItem('is_auto_login')) {\n localStorage.removeItem('is_auto_login')\n return\n }\n } catch {\n // noop\n }\n getSsoSDK()\n .login.checkLogin({\n service: window.location.href,\n })\n .then((res) => {\n if (res?.has_login) {\n Toast.success(\n {\n title: '正在登录,自动为用户登录成功',\n isModal: false,\n getContainer: () => document.body,\n },\n 2000\n )\n localStorage.setItem('is_auto_login', '1')\n window.location.href = res.redirect_url\n }\n })\n }, [])\n\n const [teaParams, setTeaParams] = useState({})\n const [pageType, setPageType] = useState('LOGIN_MOBILE_CODE')\n\n const openLogin = useCallback(\n ({\n autoCheck = true,\n pageType = 'LOGIN_MOBILE_CODE',\n ...teaParams\n }: ILoginCommonParams = {}) => {\n setTeaParams(teaParams)\n setShowLogin(true)\n setPageType(pageType)\n if (autoCheck) {\n autoLogin()\n }\n saveLoginTeaParams(teaParams)\n },\n [autoLogin]\n )\n\n const logout = useCallback(() => {\n clearUserData()\n teaConfig({\n user_is_login: false,\n })\n getSsoSDK().login.logout({\n service: `${\n window.location.origin\n }/passport/web/logout/?next=${encodeURIComponent(window.location.href)}`,\n })\n }, [])\n\n // 判断是否需要设置密码\n const checkNeedSetPassword = useCallback(() => {\n checkLogin()\n .then((res) => {\n if (res?.has_password !== 1) {\n openLogin({\n autoCheck: false,\n pageType: 'SET_PWD',\n ...getLoginTeaParams(),\n })\n }\n })\n .catch(() => {\n //\n })\n }, [])\n\n const checkNeedBindMobile = useCallback(() => {\n checkLogin()\n .then((res) => {\n if (res?.mobile === '') {\n openLogin({\n autoCheck: false,\n pageType: 'BIND_MOBILE',\n ...getLoginTeaParams(),\n })\n }\n })\n .catch(() => {\n //\n })\n }, [openLogin])\n\n const fetchUserData = useCallback(() => {\n // 通过接口获取用户数据,cookies的用户可能登录过期\n fetchUserInfo()\n .then((res) => {\n const loginType = localStorage.getItem(\n LOGIN_STORAGE_KEY\n ) as LoginStorageValues\n localStorage.removeItem(LOGIN_STORAGE_KEY)\n if (res) {\n dispatch({\n type: 'setUserData',\n payload: res,\n })\n saveUserData(JSON.stringify(res))\n teaConfig({\n user_is_login: true,\n })\n const successTip = () => {\n Toast.success(\n {\n title: '登录成功',\n isModal: false,\n getContainer: () => document.body,\n },\n 2000\n )\n }\n switch (loginType) {\n case LoginStorageValues.MOBILE_CODE_LOGIN:\n checkNeedSetPassword()\n successTip()\n break\n case LoginStorageValues.AUTH_LOGIN:\n checkNeedBindMobile()\n successTip()\n break\n case LoginStorageValues.ACCOUNT_LOGIN:\n successTip()\n break\n }\n } else {\n clearUserData()\n teaConfig({\n user_is_login: false,\n })\n autoLogin()\n }\n })\n .catch(() => {\n // 如果没有登录则清除用户数据\n clearUserData()\n teaConfig({\n user_is_login: false,\n })\n autoLogin()\n })\n }, [dispatch])\n\n useEffect(() => {\n fetchUserData()\n }, [fetchUserData])\n\n const handleSuccess = useCallback(() => {\n fetchUserData()\n }, [fetchUserData])\n\n return (\n \n {children}\n {showLogin ? (\n setShowLogin(false)}\n onSuccess={handleSuccess}\n pageType={pageType}\n teaParams={teaParams}\n />\n ) : null}\n \n )\n}\n\nexport default LoginStoreProvider\n","import { SsoInterfaceSdk, WebInterfaceSdk } from '@byted-sdk/account-api'\nimport WebInterface from '@byted-sdk/account-api/dist/interface/web'\nimport SSOInterface from '@byted-sdk/account-api/dist/interface/sso'\nimport fetch from 'lib/decorated-fetch'\nimport cookie from 'cookie'\nimport { IUserData } from 'Components/store'\n\nlet ssoSDK: SSOInterface\nlet webSDK: WebInterface\n\nconst IS_DEV = process.env.NODE_ENV === \"development\"\n\nexport const aid = 1839\n\nexport const getSsoSDK = () => {\n if (!ssoSDK) {\n const isBOE = cookie.parse(document.cookie)?.is_boe === \"true\"\n ssoSDK = new SsoInterfaceSdk({\n aid,\n isOversea: false,\n isBoe: isBOE,\n region: 'cn',\n scope: 'sso',\n scene: 'normal',\n host: isBOE ? \"http://sso-boe.toutiao.com\" : \"https://sso.toutiao.com\",\n printLog: IS_DEV,\n appName: \"懂车帝PC站\",\n })\n }\n return ssoSDK\n}\n\nexport const getWebSDK = () => {\n if (!webSDK) {\n const isBOE = cookie.parse(document.cookie)?.is_boe === \"true\"\n webSDK = new WebInterfaceSdk({\n aid,\n isOversea: false,\n isBoe: isBOE,\n region: 'cn',\n scope: 'web',\n scene: 'normal',\n // host: \"https://sso.toutiao.com\",\n printLog: IS_DEV,\n appName: \"懂车帝PC站\",\n })\n }\n return webSDK\n}\n\nexport const checkLogin = async () => {\n const json = await fetch(`/passport/account/info?aid=${aid}`)\n\n if (json?.message !== \"success\") {\n throw Error(json?.prompts || json?.message)\n }\n\n return json?.data\n}\n\n\nexport const fetchUserInfo = async () => {\n const json = await fetch(`/passport/account/info/v2?aid=${aid}`)\n\n if (json?.message !== \"success\") {\n throw Error(json?.prompts || json?.message)\n }\n\n const result = {} as IUserData\n\n if (json?.data) {\n const keys: (keyof IUserData)[] = [\"gender\", \"name\", \"screen_name\", \"user_id\", \"user_type\", \"avatar_url\", \"mobile\"]\n keys.forEach((key) => {\n result[key] = json.data[key]\n })\n }\n\n return result\n}\n","export const LOGIN_SUCCESS_CALLBACK = \"/login/callback\"\n\nexport const LOGIN_STORAGE_KEY = \"dialog-login-type\"\n\nexport const DEFAULT_DISTRICT_LIST = {\n 中国: '+86',\n 中国香港: '+852',\n 中国澳门: '+853',\n 中国台湾: '+886',\n 阿尔巴尼亚: '+355',\n 阿尔及利亚: '+213',\n 阿富汗: '+93',\n 阿根廷: '+54',\n 阿拉伯联合酋长国: '+971',\n 阿鲁巴岛: '+297',\n 阿曼: '+968',\n 阿塞拜疆: '+994',\n 阿森松: '+247',\n 埃及: '+20',\n 埃塞俄比亚: '+251',\n 爱尔兰: '+353',\n 爱沙尼亚: '+372',\n 安道尔: '+376',\n 安哥拉: '+244',\n 安圭拉: '+1264',\n 安提瓜和巴布达: '+1268',\n 奥地利: '+43',\n 奥兰群岛: '+358',\n 澳大利亚: '+61',\n 巴巴多斯: '+1246',\n 巴哈马: '+1242',\n 巴基斯坦: '+92',\n 巴拉圭: '+595',\n 巴勒斯坦: '+970',\n 巴林: '+973',\n 巴拿马: '+507',\n 巴西: '+55',\n 白俄罗斯: '+375',\n 百慕大: '+1441',\n 保加利亚: '+359',\n 北马里亚纳群岛: '+1670',\n 贝宁: '+229',\n 比利时: '+32',\n 冰岛: '+354',\n 波多黎各: '+1787',\n 波黑: '+387',\n 波兰: '+48',\n 玻利维亚: '+591',\n 伯利兹: '+501',\n 博茨瓦纳: '+267',\n 不丹: '+975',\n 布基拉法索: '+226',\n 布隆迪: '+257',\n 朝鲜: '+850',\n 赤道几内亚: '+240',\n 丹麦: '+45',\n 德国: '+49',\n 多哥: '+228',\n 多米尼加共和国: '+1809',\n 多米尼克: '+1767',\n 俄罗斯: '+7',\n 厄瓜多尔: '+593',\n 厄立特里亚: '+291',\n 法国: '+33',\n 法罗群岛: '+298',\n 法属波利尼西亚: '+689',\n 法属圭亚那: '+594',\n 梵蒂冈: '+379',\n 菲律宾: '+63',\n 斐济: '+679',\n 芬兰: '+358',\n 佛得角: '+238',\n 冈比亚: '+220',\n 刚果: '+242',\n 刚果民主共和国: '+243',\n 哥伦比亚: '+57',\n 哥斯达黎加: '+506',\n 格林纳达: '+1473',\n 格陵兰岛: '+299',\n 格鲁吉亚: '+995',\n 瓜德罗普: '+590',\n 关岛: '+1671',\n 圭亚那: '+592',\n 海地: '+509',\n 韩国: '+82',\n 荷兰: '+31',\n 荷属安的列斯: '+599',\n 洪都拉斯: '+504',\n 吉布提: '+253',\n 加拿大: '+1',\n 吉尔吉斯斯坦: '+996',\n 几内亚: '+224',\n 加那利群岛: '+3491',\n 加纳: '+233',\n 加蓬: '+241',\n 柬埔寨: '+855',\n 捷克: '+420',\n 喀麦隆: '+237',\n 卡塔尔: '+974',\n 开曼群岛: '+1345',\n 科摩罗: '+269',\n 科索沃: '+883',\n 科特迪瓦: '+225',\n 科威特: '+965',\n 克罗地亚: '+385',\n 肯尼亚: '+254',\n 拉脱维亚: '+371',\n 莱索托: '+266',\n 老挝: '+856',\n 黎巴嫩: '+961',\n 立陶宛: '+370',\n 利比里亚: '+231',\n 利比亚: '+218',\n 列支敦士登: '+423',\n 留尼旺岛: '+262',\n 卢森堡: '+352',\n 卢旺达: '+250',\n 罗马尼亚: '+40',\n 马达加斯加: '+261',\n 马尔代夫: '+960',\n 马耳他: '+356',\n 马拉维: '+265',\n 马来西亚: '+60',\n 马里: '+223',\n 马其顿: '+389',\n 马绍尔群岛: '+692',\n 马提尼克: '+596',\n 马约特: '+262',\n 毛里求斯: '+230',\n 毛里塔尼亚: '+222',\n 美国: '+1',\n 美属萨摩亚: '+1684',\n 美属维尔京群岛: '+1340',\n 蒙古: '+976',\n 蒙塞拉特岛: '+1664',\n 蒙特內哥羅: '+382',\n 孟加拉国: '+880',\n 秘鲁: '+51',\n 密克罗尼西亚联邦: '+691',\n 缅甸: '+95',\n 摩尔多瓦: '+373',\n 摩洛哥: '+212',\n 摩纳哥: '+377',\n 莫桑比克: '+258',\n 墨西哥: '+52',\n 纳米比亚: '+264',\n 南非: '+27',\n 尼泊尔: '+977',\n 尼加拉瓜: '+505',\n 尼日尔: '+227',\n 尼日利亚: '+234',\n 挪威: '+47',\n 帕劳: '+680',\n 葡萄牙: '+351',\n 千里达及托巴哥: '+1868',\n 日本: '+81',\n 瑞典: '+46',\n 瑞士: '+41',\n 圣诞岛: '+61',\n 圣基茨和尼维斯: '+1869',\n 圣卢西亚: '+1758',\n 圣马力诺: '+223',\n 圣皮埃尔和密克隆群岛: '+508',\n 圣文森特和格林纳丁斯: '+1784',\n 斯里兰卡: '+94',\n 斯洛伐克: '+421',\n 斯洛文尼亚: '+386',\n 斯威士兰: '+268',\n 苏丹: '+249',\n 苏里南: '+597',\n 索马里: '+252',\n 塔吉克斯坦: '+992',\n 沙特阿拉伯: '+966',\n 塞舌尔: '+248',\n 塞浦路斯: '+357',\n 塞内加尔: '+221',\n 塞拉利昂: '+232',\n 塞尔维亚: '+381',\n 萨尔瓦多: '+503',\n 汤加: '+676',\n 坦桑尼亚: '+255',\n 泰国: '+66',\n 特克斯和凯科斯群岛: '+1649',\n 突尼斯: '+216',\n 图瓦卢: '+688',\n 土耳其: '+90',\n 土库曼斯坦: '+993',\n 乌兹别克斯坦: '+998',\n 乌拉圭: '+598',\n 乌克兰: '+380',\n 乌干达: '+256',\n 文莱: '+673',\n 委内瑞拉: '+58',\n 危地马拉: '+502',\n 叙利亚: '+963',\n 匈牙利: '+36',\n 新西兰: '+64',\n 新喀里多尼亚: '+687',\n 新加坡: '+65',\n 希腊: '+30',\n 西萨摩亚: '+685',\n 西撒哈拉: '+212',\n 西班牙: '+34',\n 越南: '+84',\n 约旦: '+962',\n 英属维尔京群岛: '+1284',\n 英国: '+44',\n 印度尼西亚: '+62',\n 印度: '+91',\n 意大利: '+39',\n 以色列: '+972',\n 伊朗: '+98',\n 伊拉克: '+964',\n 也门: '+967',\n 亚美尼亚: '+374',\n 牙买加: '+1876',\n 中非: '+236',\n 智利: '+56',\n 直布罗陀: '+350',\n 乍得: '+235',\n 赞比亚: '+260',\n} as Record\n","import { LOGIN_STORAGE_KEY } from 'New/login/utils/constants'\n\nexport enum LoginStorageValues {\n AUTH_LOGIN = \"0\",\n ACCOUNT_LOGIN = \"1\",\n MOBILE_CODE_LOGIN = \"2\",\n}\n\nlet handleStorage: ((event: StorageEvent) => void) | null\n\nexport const removeStorageListener = () => {\n if (handleStorage) {\n window.removeEventListener(\"storage\", handleStorage)\n handleStorage = null\n }\n}\n\nexport const watchLoginByStorage = (storageValue: LoginStorageValues, success: () => void) => {\n removeStorageListener()\n\n localStorage.setItem(LOGIN_STORAGE_KEY, storageValue)\n\n handleStorage = (event: StorageEvent) => {\n if (event.key === LOGIN_STORAGE_KEY && event.oldValue === storageValue) {\n localStorage.setItem(LOGIN_STORAGE_KEY, event.oldValue) // 刷新之后取值\n success()\n }\n }\n window.addEventListener(\"storage\", handleStorage)\n}","/* 热门车型栏 */\nimport React from 'react'\nimport classnames from 'classnames'\nimport Router from 'next/router'\nimport { sendTeaCommEvent, str } from 'lib/tea-analyze'\nimport { getSearchLink, getTypeParams } from './utils'\nimport dynamic from 'next/dynamic'\n\nconst TypeSelection = dynamic(\n () => import('./components/search-car-selection/type-select'),\n {\n ssr: false,\n }\n)\nconst BrandSelect = dynamic(\n () => import('./components/search-car-selection/brand-select')\n)\n\ninterface INavList {\n name: string\n tabId: number\n}\ninterface IProps {\n end: boolean\n mode: string\n keyword: string\n currTab: number\n sort_by?: number\n energy_type?: string\n brand_id?: string\n price_range?: string\n showCarSelection?: boolean\n searchReqId: string\n searchScene: string\n [key: string]: any\n}\nconst ConditionList: INavList[] = [\n {\n name: '综合',\n tabId: 1,\n },\n {\n name: '找车',\n tabId: 6,\n },\n {\n name: '视频',\n tabId: 2,\n },\n]\n\nexport const getTabName = (tabId: number) => {\n for (let i = 0; i < ConditionList.length; i++) {\n if (ConditionList?.[i]?.['tabId'] === tabId) {\n return ConditionList?.[i]?.['name']\n }\n }\n return ''\n}\n\n//0:全部 1:汽油 2:柴油 3:新能源\nconst energyType = ['全部', '汽油', '柴油', '新能源']\n//0:热度最高 1:价格由低到高 2:价格由高到低\nconst sortBy = ['热度最高', '价格由低到高', '价格由高到低']\n//0:价格不限 1:10万以下 2:10-15万 3:15-20万 4:20-25万 5:25-30万 6:30-40万 7:50万以上\nconst priceRange = [\n '价格不限',\n '10万以下',\n '10-15万',\n '15-20万',\n '20-25万',\n '25-30万',\n '30-40万',\n '50万以上',\n]\n\nconst carConfig: {\n [key: string]: any\n} = {\n brand_id: {\n key: 'brand_id',\n name: '品牌',\n selectComponent: BrandSelect,\n },\n price_range: {\n key: 'price_range',\n name: '价格',\n selectComponent: TypeSelection,\n props: {\n data: priceRange,\n column: 4,\n },\n },\n energy_type: {\n key: 'energy_type',\n name: '能源',\n selectComponent: TypeSelection,\n props: {\n data: energyType,\n column: 4,\n },\n },\n}\n/* eslint-disable react/destructuring-assignment */\nexport default function GlobalTab(props: IProps) {\n const { currTab } = props\n const sort_by = props?.sort_by || 0\n\n // 找到已经选择的\n const selectedData: any[] = []\n /* eslint-disable no-unused-expressions */\n Object.values(carConfig)?.forEach((item: any) => {\n const value = props[item?.key]\n const paramsValue = parseInt(getTypeParams(value), 10)\n\n if (paramsValue) {\n selectedData.push({\n key: item?.key,\n value: paramsValue,\n text: value?.split(',')?.[1],\n })\n }\n })\n\n // 如果加载完成 且 无选择任何条件 且 mode === 'fallback' 不展示筛选器\n let isFinalShow = props?.showCarSelection\n if (props?.showCarSelection && props?.end && props?.mode === 'fallback') {\n isFinalShow = false\n }\n\n /* 渲染选择条件 */\n function renderCondition() {\n return (\n
    \n {ConditionList.map((item: INavList, index: number) => (\n {\n sendTeaCommEvent('clk_event', {\n event_id: 'page_tab',\n sub_tab: item.name,\n })\n const link = getSearchLink({\n currTab: item.tabId,\n })\n Router.push(link.link, link.as)\n }}\n >\n {item.name}\n \n ))}\n \n
\n )\n }\n\n const renderCarCondition = () => {\n if (!isFinalShow) {\n return ''\n }\n return (\n \n
    \n {Object.values(carConfig)?.map((item: any, i: number) => {\n const Comp = item?.selectComponent\n const value = props[item?.key]\n return (\n
  • \n {item.name}\n {Comp ? (\n \n ) : (\n ''\n )}\n
  • \n )\n })}\n
\n
    \n {sortBy.map((item: string, index: number) => (\n {\n if (sort_by === index) {\n return\n }\n const link = getSearchLink({\n sort_by: index,\n })\n Router.push(link.link, link.as)\n }}\n >\n {item}\n \n ))}\n
\n \n \n )\n }\n\n const renderSelected = () => {\n if (!isFinalShow) {\n return ''\n }\n if (currTab !== 6) {\n return ''\n }\n\n if (!selectedData?.length) {\n return null\n }\n\n return (\n
\n
    \n {selectedData?.map((item: any) => {\n return (\n
  • \n {item.text}\n {\n const params: {\n [key: string]: any\n } = {}\n params[item.key] = 'DELETE_KEY'\n const link = getSearchLink(params)\n Router.push(link.link, link.as)\n }}\n />\n
  • \n )\n })}\n
\n \n
\n )\n }\n\n return (\n
\n {renderCondition()}\n {renderCarCondition()}\n {renderSelected()}\n \n
\n )\n}\n","import { isNewVersion } from 'Components/hooks/use-version'\nimport { getTabName } from './global-tab'\nimport decodeUriComponent from 'decode-uri-component'\n\nexport const handlePath = (asPath: string) => {\n const search = typeof asPath !== 'undefined' && asPath && asPath.split('?')[1]\n const queries = {} as any\n const initProps = {\n keyword: '',\n currTab: 1,\n city_name: '',\n sort_by: '',\n } as any\n if (search) {\n search.split('&').forEach(function (c: string) {\n if (c === '') {\n return\n }\n const splitArr = c?.split('=')\n const key = splitArr?.[0]\n queries[key] = splitArr?.[1]\n })\n return {\n keyword: decodeUriComponent(queries['keyword'] || ''),\n currTab: Number(queries['currTab'] || 1),\n city_name: decodeURIComponent(queries['city_name'] || ''),\n sort_by:\n Number(queries['sort_by']) > -1 ? Number(queries['sort_by']) : '',\n energy_type: decodeURIComponent(queries['energy_type'] || ''),\n price_range: decodeURIComponent(queries['price_range'] || ''),\n brand_id: decodeURIComponent(queries['brand_id'] || ''),\n from: decodeURIComponent(queries['from'] || ''),\n api_param: decodeURIComponent(queries['api_param'] || ''),\n search_mode: decodeURIComponent(queries['search_mode'] || ''),\n }\n }\n return initProps\n}\n\nexport const getTypeParams = (str: string | undefined) => {\n return str ? str?.split?.(',')?.[0] : ''\n}\n\n// 获取搜索跳转链接\nexport const getSearchLink = (newParams: {\n [key: string]: string | number\n}): {\n link: string\n as: string\n} => {\n if (typeof window === 'undefined') {\n return {\n link: isNewVersion() ? '/new_search' : '/search',\n as: '',\n }\n }\n const params: {\n [key: string]: string | number\n } = handlePath(window?.location?.href)\n\n for (const key of Object.keys(newParams)) {\n if (newParams[key] === 'DELETE_KEY') {\n delete params[key]\n } else {\n params[key] = newParams[key] === undefined ? params[key] : newParams[key]\n }\n }\n\n // 每次新增一个时间戳\n const list: string[] = []\n Object.keys(params).forEach((key) => {\n if (typeof params[key] === 'string' && params[key]) {\n list.push(`${key}=${params[key]}`)\n }\n if (typeof params[key] === 'number' && params[key] > -1) {\n list.push(`${key}=${params[key]}`)\n }\n })\n const as = `/search${list.length ? '?' : ''}${\n list.length ? list.join('&') : ''\n }`\n return {\n link: isNewVersion() ? '/new_search' : '/search',\n as,\n }\n}\n\n// 1440以下场景\n// 销量排行榜:强插入feed 第8行-9行之间\n// 热搜榜:强插入feed 第16行-17行之间\n// 不同tab之下tab 列数不同,插入位置不同\nexport const fixedCardConfig: {\n [key: string]: any\n} = {\n // 综合搜索\n 1: {\n bigColumns: 3,\n bigTwGrid: 'tw-col-span-3',\n smallColumns: 4,\n smallTwGrid: 'tw-col-span-4',\n lines: 8,\n // 宽屏\n lgIndex: {\n _cus_fixed_56: 2,\n },\n // 窄屏\n index: {\n _cus_fixed_56: 3,\n _cus_fixed_live_card: 5,\n _cus_fixed_rank_list: 9,\n _cus_fixed_pc_hot_search: 17,\n },\n },\n // 视频\n 2: {\n bigColumns: 3,\n bigTwGrid: 'tw-col-span-3',\n smallColumns: 4,\n smallTwGrid: 'tw-col-span-4',\n lines: 8,\n index: {\n _cus_fixed_pc_hot_column: 9,\n _cus_fixed_pc_hot_search: 17,\n },\n },\n // 找车\n 6: {\n bigColumns: 5,\n bigTwGrid: 'tw-col-span-5',\n smallColumns: 5,\n smallTwGrid: 'tw-col-span-5',\n lines: 5,\n index: {\n _cus_fixed_live_card: 5,\n _cus_fixed_rank_list: 9,\n _cus_fixed_pc_hot_search: 17,\n },\n },\n}\nexport interface ITeaCommonParams {\n rank: number\n alaSrc: string\n cellType: number\n searchReqId: string\n searchScene: string\n keyword: string\n currTab: number\n}\nexport const makeTeaCommonParams = ({\n rank,\n alaSrc = '',\n cellType = 0,\n searchReqId = '',\n searchScene = '',\n keyword = '',\n currTab = 0,\n}: ITeaCommonParams) => {\n return {\n page_id: 'page_search_result_new',\n search_req_id: searchReqId,\n search_scene: searchScene,\n rank: String(rank),\n aladdin: alaSrc,\n cell_type: cellType > 0 ? String(cellType) : '',\n cell_source: cellType > 0 ? `${alaSrc}${cellType}` : '',\n query_content: keyword,\n sub_tab: getTabName(currTab),\n }\n}\n\nexport const isCusComponent = (cell_type: number | string) => {\n if (cell_type && cell_type?.toString()?.indexOf('_cus_fixed') === 0) {\n return true\n }\n return false\n}\n","/* eslint-disable no-script-url */\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useContext,\n} from 'react'\nimport classNames from 'classnames'\nimport Router from 'next/router'\nimport PubSub from 'pubsub-js'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport useConfig, { IConfig } from '../../config'\nimport { isNewVersion, VERSION_COOKIE_KEY } from 'lib/version'\nimport { logger } from 'lib/slardar-utils'\nimport { GlobalStoreContext } from 'Components/store'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport Link from 'next/link'\nimport { getHeaderHeight } from 'Components/hooks/use-header-height'\nimport useSideNavStatus from 'Components/hooks/use-side-nav-status'\n\nexport const getLink = (\n link: string | undefined,\n newVersionLink: string | undefined\n) => {\n // 必须每次点击的时候实时判断\n if (isNewVersion() && newVersionLink) {\n return newVersionLink\n }\n\n return link || ''\n}\n\nexport const getAs = (\n as: string | undefined,\n isNeedLogin: boolean | undefined,\n userId: string\n) => {\n if (!as) {\n return 'javascript:;'\n }\n if (!isNeedLogin) {\n return as\n }\n // 未登录返回空\n if (isNeedLogin && !userId) {\n return 'javascript:;'\n }\n\n return as?.replace('{userId}', userId)\n}\n\nexport const childClickHandler = (\n child: IConfig,\n e: React.MouseEvent,\n userId: string,\n openLogin: (params: any) => void\n) => {\n // 登录判断\n if (child?.isNeedLogin) {\n if (!userId) {\n openLogin({\n enter_method: child?.loginMethod || 'other',\n })\n e.preventDefault()\n return\n }\n }\n\n // eslint-disable-next-line no-unused-expressions\n child.onClick?.()\n if (!child?.as) {\n e.preventDefault()\n }\n}\n\nexport default function ChildWrap() {\n const { state: globalStore } = useContext(GlobalStoreContext)\n const { userData } = globalStore\n const { openLogin } = useContext(LoginStoreContext)\n\n const [url, setUrl] = useState('')\n\n const routeChangeComplete = useCallback((url: string) => {\n if (url === '') {\n setUrl('/')\n return\n }\n setUrl(url)\n }, [])\n\n const isActive = useCallback(\n (as: string | undefined, isActive, isNeedLogin = false) => {\n // url带有VERSION_COOKIE_KEY的参数时,返回有bug\n if (url?.indexOf(VERSION_COOKIE_KEY) > -1 && as === '/') {\n return true\n }\n if (url === as && !isNeedLogin) {\n return true\n }\n\n if (isActive && isActive(url, userData?.user_id)) {\n return true\n }\n return false\n },\n [url]\n )\n\n useEffect(() => {\n setUrl(window?.location?.pathname || '/')\n Router.events.on('routeChangeComplete', routeChangeComplete)\n return () => {\n Router.events.off('routeChangeComplete', routeChangeComplete)\n }\n }, [])\n const navStatus = useSideNavStatus()\n\n const [show, setShow] = useState(false)\n const [id, setId] = useState('')\n const [wrapTop, setWrapTop] = useState(0)\n const showHandler = useCallback((type, params) => {\n setShow(params?.status)\n setId(params?.id)\n if (params?.id) {\n try {\n const navItemDOM = document.querySelector(\n `#sideItemWrap_${params?.id}`\n ) as HTMLElement\n const rect = navItemDOM?.getBoundingClientRect?.()\n setWrapTop(rect?.top - getHeaderHeight())\n } catch (err) {\n logger.warn(\n `[side item height] Error get side item height, err: ${\n (err as any)?.message\n }`\n )\n }\n }\n }, [])\n\n useEffect(() => {\n const showToken = PubSub.subscribe('HOVER_NAV_CHILD', showHandler)\n return () => {\n PubSub.unsubscribe(showToken)\n }\n }, [])\n\n const getClassName: string = useMemo(() => {\n switch (navStatus) {\n case 'on':\n case 'fixed':\n return 'tw-left-160'\n case 'off':\n return 'tw-left-82 xl:tw-left-92'\n case 'md-off':\n return 'tw-left-82 xl:tw-left-92 lg:tw-left-160'\n case 'lg-off':\n return 'tw-left-82 xl:tw-left-92 xl:tw-left-160'\n }\n return 'tw-left-82 xl:tw-left-92 lg:tw-left-160'\n }, [navStatus])\n\n const childClick = useCallback(\n (child: IConfig, e: React.MouseEvent) => {\n childClickHandler(child, e, userData?.user_id || '', openLogin)\n },\n [userData?.user_id, openLogin]\n )\n\n const getAsProxy = useCallback(\n (as?: string, isNeedLogin?: boolean) => {\n return getAs(as, isNeedLogin, userData?.user_id || '')\n },\n [userData?.user_id]\n )\n const config = useConfig()\n\n return (\n <>\n
\n \n
\n \n {config?.map((item: IConfig) => {\n if (id === item?.id && item?.children?.length) {\n return (\n
    \n {item?.children?.map((child: IConfig, i: number) => (\n
  • \n \n {\n e.stopPropagation()\n sendTeaCommEvent('clk_event', {\n event_id: 'common_menu_item',\n button_name: child.name,\n })\n childClick(child, e)\n }}\n >\n \n {child.name}\n \n \n
  • \n ))}\n
\n )\n }\n return null\n })}\n \n \n \n )\n}\n","import React, { ReactNode, PureComponent } from 'react'\nimport ReactDOM from 'react-dom'\nimport classNames from 'classnames'\nimport { Fade } from 'Components//animation'\n\nimport Portal from 'Components/portal'\n\nexport interface IToastProps {\n type: string\n title?: ReactNode\n description?: ReactNode\n className?: string\n duration?: number\n onClose?: () => void\n close?: () => void\n visible: boolean\n getContainer?: () => HTMLElement\n isModal: boolean\n}\n\nexport type TToastFunc = (\n config: Partial,\n duration?: number,\n onClose?: () => void\n) => {\n hide: () => void\n}\n\nexport default class Toast extends PureComponent {\n closeTimer?: number\n\n static success: TToastFunc\n static error: TToastFunc\n\n static defaultProps: Partial = {\n duration: 3000,\n type: 'info',\n visible: false,\n }\n\n componentDidMount() {\n this.startCloseTimer()\n }\n\n componentDidUpdate(prevProps: IToastProps) {\n const { duration } = this.props\n if (duration !== prevProps.duration) {\n this.startCloseTimer()\n }\n }\n\n startCloseTimer() {\n const { duration } = this.props\n if (duration) {\n this.closeTimer && clearTimeout(this.closeTimer)\n this.closeTimer = window.setTimeout(() => {\n this.handleClose()\n }, duration)\n }\n }\n\n handleClose() {\n const { onClose, close } = this.props\n onClose && onClose()\n close && close()\n }\n\n getContainer = (): HTMLElement => {\n const { getContainer } = this.props\n if (getContainer) {\n return getContainer()\n }\n const container = document.createElement('div')\n document.body.appendChild(container)\n return container\n }\n\n getComponent() {\n const { className, title, description, type, visible, isModal = true, duration } = this.props\n return (\n <>\n \n
\n
\n
\n
\n
{title}
\n
{description}
\n
\n
\n
\n \n \n \n )\n }\n\n render() {\n return (\n {this.getComponent()}\n )\n }\n}\n\nexport function openToast(config: Partial) {\n const div = document.createElement('div')\n document.body.appendChild(div)\n\n function render(props: IToastProps) {\n ReactDOM.render(, div)\n }\n\n function close() {\n render({\n ...(config as IToastProps),\n getContainer: () => div,\n // @ts-ignore\n onClose: destory.bind(this),\n visible: false,\n })\n }\n\n function destory() {\n const unmountResult = ReactDOM.unmountComponentAtNode(div)\n if (unmountResult && div.parentNode) {\n div.parentNode.removeChild(div)\n }\n }\n\n render({\n ...(config as IToastProps),\n // @ts-ignore\n onClose: destory.bind(this),\n getContainer: () => div,\n close,\n visible: true,\n })\n\n return {\n hide: close,\n }\n}\n\nToast.success = (config, duration, onClose) => {\n return openToast({\n ...config,\n duration,\n onClose,\n type: 'success',\n })\n}\n\nToast.error = (config, duration, onClose) => {\n return openToast({\n ...config,\n duration,\n onClose,\n type: 'error',\n })\n}\n\n","/* eslint-disable no-script-url */\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport PubSub from 'pubsub-js'\nimport React, { useEffect, useState } from 'react'\nimport { EInfoMode, INFO_MODE_KEY } from 'Components/new/info-mode-switcher'\nimport RankFlag from '../../components/rank-publish-flag'\n\nexport interface IConfig {\n id: string // 唯一标示\n icon?: string // icon-type\n foldIcon?: string // 折叠时使用的icon\n name: string // 菜单名称\n foldName?: string // 折叠时使用的菜单名称\n hoverComponent?: boolean // hover情况下 右侧渲染组件\n link?: string // 点击跳转链接 高亮匹配依据\n as?: string // 浏览器url 没有则不跳转\n newVersionLink?: string // pc3.0 对应的page path\n children?: IConfig[] // 如果存在children 则 link 不生效\n isActive?: (url: string, user_id?: string) => boolean // 自定义高亮规则\n onClick?: () => void // 自定义点击事件\n hoverOnOff?: boolean\n onMouseEnter?: () => void // 自定义事件\n onMouseLeave?: () => void // 自定义事件\n isNeedLogin?: boolean // 点击是否需要登陆\n loginMethod?: string // 登陆唤起传入的enter_method\n extraComponent?: (className?: string) => JSX.Element\n target?: '_self' | '_blank'\n}\n\n// hover 选车 延迟展开\nlet timer: any = null\n\nconst showChild = (id: string) => {\n timer = setTimeout(() => {\n PubSub.publish('HOVER_NAV_CHILD', {\n status: true,\n id,\n })\n timer = null\n }, 200)\n}\n\nconst hideChild = (id: string) => {\n if (timer) {\n window.clearTimeout(timer)\n timer = null\n } else {\n setTimeout(() => {\n PubSub.publish('HOVER_NAV_CHILD', {\n status: false,\n id,\n })\n }, 100)\n }\n}\n\n// 新老版本同时存在 只能a标签跳转\nexport default function useConfig(): IConfig[] {\n const [config, setConfig] = useState([\n {\n id: 'home',\n icon: 'icon_home',\n foldIcon: 'icon_home_filled',\n name: '首页',\n link: '/home',\n newVersionLink: '/new_home',\n as: '/',\n },\n {\n id: 'select-car',\n icon: 'icon_car_24',\n foldIcon: 'icon_car_filled',\n name: '选车',\n hoverComponent: true,\n link: '/auto/home',\n newVersionLink: '/auto/library/x-x-x-x-x-x-x-x-x-x-x',\n as: '/auto/library/x-x-x-x-x-x-x-x-x-x-x',\n isActive: (url: string) => {\n // 选车页面\n return /\\/auto\\/library((-energy)|(-brand)|(-picture)|(-accurate))?\\//.test(\n url\n )\n },\n onClick: () => {\n PubSub.publish('HIDE_HOVER_CAR')\n },\n onMouseEnter: () => {\n timer = setTimeout(() => {\n sendTeaCommEvent('show_event', {\n event_id: 'common_select_car_menu',\n })\n PubSub.publish('HOVER_CAR_STATUS', true)\n timer = null\n }, 100)\n },\n onMouseLeave: () => {\n if (timer) {\n window.clearTimeout(timer)\n timer = null\n } else {\n // 稍微延后 用户倾斜划入也能展现弹窗\n setTimeout(() => {\n PubSub.publish('HOVER_CAR_STATUS', false)\n }, 100)\n }\n },\n },\n {\n id: 'usedcar',\n icon: 'icon_usedcar',\n foldIcon: 'icon_usedcar_filled',\n name: '二手车',\n foldName: '二手车',\n link: '/usedcar/x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x',\n as: '/usedcar/x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x',\n hoverComponent: true,\n onMouseEnter: () => {\n timer = setTimeout(() => {\n PubSub.publish('HOVER_USEDCAR', true)\n timer = null\n }, 100)\n },\n onMouseLeave: () => {\n if (timer) {\n window.clearTimeout(timer)\n timer = null\n } else {\n // 稍微延后 用户倾斜划入也能展现弹窗\n setTimeout(() => {\n PubSub.publish('HOVER_USEDCAR', false)\n }, 100)\n }\n },\n },\n {\n id: 'video',\n icon: 'icon_play_2',\n foldIcon: 'icon_video_filled',\n name: '视频',\n link: '/video/home',\n as: '/video',\n isActive: (url: string) => {\n return /^\\/videos?\\//.test(url)\n },\n newVersionLink: '/new_video',\n },\n {\n id: 'feed',\n icon: 'icon_interact',\n foldIcon: 'icon_info_filled',\n name: '资讯',\n link: '/news/dynamic_motor_car',\n as: '/news/dynamic_motor_car',\n newVersionLink: '/news/dynamic_motor_car',\n isActive: (url: string) => {\n return url?.indexOf('/news') === 0 || url?.indexOf('/feed') === 0\n },\n },\n {\n id: 'fans',\n icon: 'icon_community_24',\n foldIcon: 'icon_community_filled',\n name: '车友圈',\n link: '/car_fans_community/home',\n as: '/car_fans_community',\n },\n {\n id: 'rank',\n icon: 'icon_list',\n foldIcon: 'icon_rank_filled',\n name: '排行榜',\n link: '/leaderboard/sales',\n as: '/sales',\n isActive: (url?: string) => {\n return url?.indexOf('/sales') === 0\n },\n extraComponent: (className) => ,\n },\n {\n id: 'live',\n icon: 'icon_icon_home_maichezhibo1x',\n foldIcon: 'icon_live_filled',\n name: '直播',\n link: '/live/home',\n as: '/live',\n },\n {\n id: 'tool',\n icon: 'icon_keyboard',\n foldIcon: 'icon_tools_filled',\n name: '小工具',\n foldName: '工具',\n children: [\n {\n id: 'compare',\n icon: 'icon_pk_24',\n name: '车型对比',\n link: '/auto/auto_compare/params',\n as: '/auto/auto_compare/params',\n target: '_blank',\n },\n {\n id: 'compute',\n icon: 'icon_calculate_24',\n name: '购车计算',\n link: '/price_calculator?type=fullpayment',\n as: '/calculator/fullpayment',\n isActive: (url: string) => {\n return url?.indexOf('/calculator/') === 0\n },\n },\n ],\n hoverOnOff: true,\n onMouseEnter: () => {\n showChild('tool')\n },\n onMouseLeave: () => {\n hideChild('tool')\n },\n },\n {\n id: 'me',\n icon: 'icon_mine',\n foldIcon: 'icon_mine_filled',\n name: '我的',\n // link: '/profile',\n // newVersionLink: '/new_profile',\n // as: '/user/gzyh/{userId}',\n // isNeedLogin: true,\n // loginMethod: 'follow',\n children: [\n // {\n // id: 'history',\n // name: '浏览历史',\n // link: '/me/history'\n // },\n {\n id: 'attention',\n name: '我的关注',\n icon: 'icon_diamonds',\n link: '/profile',\n newVersionLink: '/new_profile',\n as: '/user/gzyh/{userId}',\n isNeedLogin: true,\n loginMethod: 'follow',\n isActive: (url: string, user_id?: string) => {\n // 必须在我的关注下面\n const reg = new RegExp(`gz\\\\w+\\\\/${user_id}\\\\??`)\n return reg.test(url)\n },\n },\n {\n id: 'collect',\n name: '我的收藏',\n icon: 'icon_works_24',\n link: '/new_collect',\n as: '/user/favor',\n isNeedLogin: true,\n loginMethod: 'favorite',\n isActive: (url: string) => {\n return url?.indexOf('/user/favor') > -1\n },\n },\n ],\n hoverOnOff: true,\n onMouseEnter: () => {\n showChild('me')\n },\n onMouseLeave: () => {\n hideChild('me')\n },\n },\n {\n id: 'feedback',\n name: '用户反馈',\n foldName: '反馈',\n icon: 'icon_compose_24',\n foldIcon: 'icon_edit_filled',\n onClick: () => {\n PubSub.publish('OPEN_FEEDBACK')\n },\n },\n ])\n useEffect(() => {\n const infoMode =\n window.localStorage.getItem(INFO_MODE_KEY) || EInfoMode.STATIC\n if (infoMode === EInfoMode.STATIC) return\n const newConfig = [...config]\n const feed = newConfig.find((item) => item.id === 'feed') as IConfig\n feed.link = '/feed/home'\n feed.as = '/feed'\n feed.newVersionLink = '/feed'\n setConfig(newConfig)\n }, [])\n return config\n}\n","/* eslint-disable no-unused-expressions */\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useState,\n useContext,\n memo,\n} from 'react'\nimport Router, { useRouter } from 'next/router'\nimport classNames from 'classnames'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport useConfig, { IConfig } from './config'\nimport { childClickHandler, getLink, getAs } from './components/child-wrap'\nimport { GlobalStoreContext } from 'Components/store'\nimport { LoginStoreContext } from 'New/login/login-store'\nimport { useResponsive } from 'Components/hooks/use-responsive'\nimport Link from 'next/link'\n\nimport dynamic from 'next/dynamic'\nimport useWindowLoaded from 'Components/hooks/use-window-loaded'\nconst UsedCarWrap = dynamic(() => import('./components/usedcar-modal'), {\n ssr: true,\n})\nconst SelectCarWrap = dynamic(() => import('./components/select-car-wrap'), {\n ssr: false,\n})\nconst ChildWrap = dynamic(() => import('./components/child-wrap'), {\n ssr: false,\n})\nimport { headerTop } from 'Components/new-header'\nimport usePageOffset, { setPageOffset } from 'Components/hooks/use-page-offset'\nimport useHasTips from 'Components/hooks/use-top-tips'\nimport { setAdConfig } from '../home/ad/tianmu-ad/use-ad-config'\nimport getPageEnterId from 'lib/page-enter'\nimport useSideNavStatus from 'Components/hooks/use-side-nav-status'\nimport style from './index.module.scss'\nimport LightLink from 'Components/new/light-link'\n\ninterface IProps {\n isFixed?: boolean\n}\n\nexport default memo(function SideNav({ isFixed }: IProps) {\n const { asPath } = useRouter()\n const [url, setUrl] = useState(asPath || '')\n const { top } = usePageOffset()\n\n // 2.0的页面 固定1280宽度 小于1440的时候隐藏\n const isHasTips = useHasTips()\n const responsive = useResponsive()\n const { state: globalStore } = useContext(GlobalStoreContext)\n const { userData } = globalStore\n const { openLogin } = useContext(LoginStoreContext)\n const navStatus = useSideNavStatus()\n\n const routeChangeComplete = useCallback((url: string) => {\n if (url === '') {\n setUrl('/')\n return\n }\n const asPath = (Router && Router.router && Router.router.asPath) || ''\n const currentPageId = getPageEnterId(asPath).page_id\n const isNoIndex =\n currentPageId !== 'page_main_new' &&\n currentPageId !== 'page_used_car_source_list'\n // 天幕只在首页,因此跳转需要恢复状态\n if (!isHasTips && isNoIndex) {\n setAdConfig({\n homeTopAdShow: false,\n })\n setPageOffset({\n top: 0,\n })\n }\n setUrl(url)\n }, [])\n\n const isActive = useCallback(\n (as: string | undefined, isActive, isNeedLogin = false) => {\n // 需要处理 url 后面的参数\n let realUrl = url\n if (realUrl?.indexOf('?') > -1) {\n realUrl = realUrl?.split('?')?.[0]\n }\n if (realUrl === as && (!isNeedLogin || userData?.user_id)) {\n return true\n }\n\n if (isActive && isActive(realUrl, userData?.user_id)) {\n return true\n }\n return false\n },\n [url, userData?.user_id]\n )\n\n // 判断是否有被选中的主导航,在没有选中的主导航页面,点击主导航需要跳转新标签页\n const router = useRouter()\n const config = useConfig()\n const linkTarget = useMemo(() => {\n if (router.pathname === '/404') {\n return '_self'\n }\n const hasActive = config.some((item) => {\n const itemActive = isActive(item.as, item?.isActive)\n if (itemActive) return true\n return item?.children?.some((child) =>\n isActive(child.as, child?.isActive, child?.isNeedLogin)\n )\n })\n return hasActive ? '_self' : '_blank'\n }, [url, router.pathname, userData?.user_id, config])\n\n useEffect(() => {\n setUrl(window?.location?.pathname || '/')\n Router.events.on('routeChangeComplete', routeChangeComplete)\n return () => {\n Router.events.off('routeChangeComplete', routeChangeComplete)\n }\n }, [])\n\n const childClick = useCallback(\n (child: IConfig, e: React.MouseEvent) => {\n childClickHandler(child, e, userData?.user_id || '', openLogin)\n },\n [userData?.user_id, openLogin]\n )\n\n const getAsProxy = useCallback(\n (as?: string, isNeedLogin?: boolean) => {\n return getAs(as, isNeedLogin, userData?.user_id || '')\n },\n [userData?.user_id]\n )\n\n const isLoaded = useWindowLoaded()\n\n const isNavRealOff = useMemo(() => {\n return (\n navStatus === 'off' ||\n (navStatus === 'md-off' && !responsive.lg) ||\n (navStatus === 'lg-off' && !responsive.xl)\n )\n }, [navStatus, responsive])\n return (\n \n \n
\n
    e.stopPropagation()}>\n {config.map((item, index) => {\n return (\n \n \n \n {\n e.stopPropagation()\n sendTeaCommEvent('clk_event', {\n event_id: 'common_menu_item',\n button_name: item.name,\n })\n childClick(item, e)\n }}\n onMouseEnter={() => {\n if (!item.hoverOnOff || isNavRealOff) {\n item?.onMouseEnter?.()\n }\n }}\n onMouseLeave={() => {\n if (!item.hoverOnOff || isNavRealOff) {\n item?.onMouseLeave?.()\n }\n }}\n >\n {item.icon && (\n \n )}\n \n {isNavRealOff\n ? item.foldName || item.name\n : item.name}\n {(item.hoverComponent || item.children) && (\n \n )}\n {item.extraComponent?.(style['rank-flag'])}\n \n \n \n {item?.children ? (\n
      \n {item?.children?.map((child: IConfig, i: number) => {\n return (\n
    • \n \n {\n e.stopPropagation()\n sendTeaCommEvent('clk_event', {\n event_id: 'common_menu_item',\n button_name: child.name,\n })\n childClick(child, e)\n }}\n >\n {child.icon && (\n \n )}\n \n {child.name}\n \n \n \n
    • \n )\n })}\n
    \n ) : null}\n \n
    \n )\n })}\n
\n
\n {useMemo(() => {\n return isLoaded ? (\n \n \n \n \n \n ) : null\n }, [isLoaded])}\n
\n \n )\n})\n","\"use strict\";var _interopRequireWildcard=require(\"@babel/runtime/helpers/interopRequireWildcard\");exports.__esModule=true;exports.default=void 0;var _react=_interopRequireWildcard(require(\"react\"));var _router=require(\"../next-server/lib/router/router\");var _router2=require(\"./router\");var _useIntersection=require(\"./use-intersection\");const prefetched={};function prefetch(router,href,as,options){if(typeof window==='undefined'||!router)return;if(!(0,_router.isLocalURL)(href))return;// Prefetch the JSON page if asked (only in the client)\n// We need to handle a prefetch error here since we may be\n// loading with priority which can reject but we don't\n// want to force navigation since this is only a prefetch\nrouter.prefetch(href,as,options).catch(err=>{if(process.env.NODE_ENV!=='production'){// rethrow to show invalid URL errors\nthrow err;}});const curLocale=options&&typeof options.locale!=='undefined'?options.locale:router&&router.locale;// Join on an invalid URI character\nprefetched[href+'%'+as+(curLocale?'%'+curLocale:'')]=true;}function isModifiedEvent(event){const{target}=event.currentTarget;return target&&target!=='_self'||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey||// triggers resource download\nevent.nativeEvent&&event.nativeEvent.which===2;}function linkClicked(e,router,href,as,replace,shallow,scroll,locale){const{nodeName}=e.currentTarget;if(nodeName==='A'&&(isModifiedEvent(e)||!(0,_router.isLocalURL)(href))){// ignore click for browser’s default behavior\nreturn;}e.preventDefault();// avoid scroll for urls with anchor refs\nif(scroll==null&&as.indexOf('#')>=0){scroll=false;}// replace state instead of push if prop is present\nrouter[replace?'replace':'push'](href,as,{shallow,locale,scroll});}function Link(props){if(process.env.NODE_ENV!=='production'){function createPropError(args){return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.`+(typeof window!=='undefined'?\"\\nOpen your browser's console to view the Component stack trace.\":''));}// TypeScript trick for type-guarding:\nconst requiredPropsGuard={href:true};const requiredProps=Object.keys(requiredPropsGuard);requiredProps.forEach(key=>{if(key==='href'){if(props[key]==null||typeof props[key]!=='string'&&typeof props[key]!=='object'){throw createPropError({key,expected:'`string` or `object`',actual:props[key]===null?'null':typeof props[key]});}}else{// TypeScript trick for type-guarding:\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _=key;}});// TypeScript trick for type-guarding:\nconst optionalPropsGuard={as:true,replace:true,scroll:true,shallow:true,passHref:true,prefetch:true,locale:true};const optionalProps=Object.keys(optionalPropsGuard);optionalProps.forEach(key=>{const valType=typeof props[key];if(key==='as'){if(props[key]&&valType!=='string'&&valType!=='object'){throw createPropError({key,expected:'`string` or `object`',actual:valType});}}else if(key==='locale'){if(props[key]&&valType!=='string'){throw createPropError({key,expected:'`string`',actual:valType});}}else if(key==='replace'||key==='scroll'||key==='shallow'||key==='passHref'||key==='prefetch'){if(props[key]!=null&&valType!=='boolean'){throw createPropError({key,expected:'`boolean`',actual:valType});}}else{// TypeScript trick for type-guarding:\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst _=key;}});// This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst hasWarned=_react.default.useRef(false);if(props.prefetch&&!hasWarned.current){hasWarned.current=true;console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');}}const p=props.prefetch!==false;const router=(0,_router2.useRouter)();const{href,as}=_react.default.useMemo(()=>{const[resolvedHref,resolvedAs]=(0,_router.resolveHref)(router,props.href,true);return{href:resolvedHref,as:props.as?(0,_router.resolveHref)(router,props.as):resolvedAs||resolvedHref};},[router,props.href,props.as]);let{children,replace,shallow,scroll,locale}=props;// Deprecated. Warning shown by propType check. If the children provided is a string (example) we wrap it in an tag\nif(typeof children==='string'){children=/*#__PURE__*/_react.default.createElement(\"a\",null,children);}// This will return the first child, if multiple are provided it will throw an error\nlet child;if(process.env.NODE_ENV==='development'){try{child=_react.Children.only(children);}catch(err){throw new Error(`Multiple children were passed to with \\`href\\` of \\`${props.href}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children`+(typeof window!=='undefined'?\"\\nOpen your browser's console to view the Component stack trace.\":''));}}else{child=_react.Children.only(children);}const childRef=child&&typeof child==='object'&&child.ref;const[setIntersectionRef,isVisible]=(0,_useIntersection.useIntersection)({rootMargin:'200px'});const setRef=_react.default.useCallback(el=>{setIntersectionRef(el);if(childRef){if(typeof childRef==='function')childRef(el);else if(typeof childRef==='object'){childRef.current=el;}}},[childRef,setIntersectionRef]);(0,_react.useEffect)(()=>{const shouldPrefetch=isVisible&&p&&(0,_router.isLocalURL)(href);const curLocale=typeof locale!=='undefined'?locale:router&&router.locale;const isPrefetched=prefetched[href+'%'+as+(curLocale?'%'+curLocale:'')];if(shouldPrefetch&&!isPrefetched){prefetch(router,href,as,{locale:curLocale});}},[as,href,isVisible,locale,p,router]);const childProps={ref:setRef,onClick:e=>{if(child.props&&typeof child.props.onClick==='function'){child.props.onClick(e);}if(!e.defaultPrevented){linkClicked(e,router,href,as,replace,shallow,scroll,locale);}}};childProps.onMouseEnter=e=>{if(!(0,_router.isLocalURL)(href))return;if(child.props&&typeof child.props.onMouseEnter==='function'){child.props.onMouseEnter(e);}prefetch(router,href,as,{priority:true});};// If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n// defined, we specify the current 'href', so that repetition is not needed by the user\nif(props.passHref||child.type==='a'&&!('href'in child.props)){const curLocale=typeof locale!=='undefined'?locale:router&&router.locale;// we only render domain locales if we are currently on a domain locale\n// so that locale links are still visitable in development/preview envs\nconst localeDomain=router&&router.isLocaleDomain&&(0,_router.getDomainLocale)(as,curLocale,router&&router.locales,router&&router.domainLocales);childProps.href=localeDomain||(0,_router.addBasePath)((0,_router.addLocale)(as,curLocale,router&&router.defaultLocale));}return/*#__PURE__*/_react.default.cloneElement(child,childProps);}var _default=Link;exports.default=_default;\n//# sourceMappingURL=link.js.map","\"use strict\";exports.__esModule=true;exports.useIntersection=useIntersection;var _react=require(\"react\");var _requestIdleCallback=require(\"./request-idle-callback\");const hasIntersectionObserver=typeof IntersectionObserver!=='undefined';function useIntersection({rootMargin,disabled}){const isDisabled=disabled||!hasIntersectionObserver;const unobserve=(0,_react.useRef)();const[visible,setVisible]=(0,_react.useState)(false);const setRef=(0,_react.useCallback)(el=>{if(unobserve.current){unobserve.current();unobserve.current=undefined;}if(isDisabled||visible)return;if(el&&el.tagName){unobserve.current=observe(el,isVisible=>isVisible&&setVisible(isVisible),{rootMargin});}},[isDisabled,rootMargin,visible]);(0,_react.useEffect)(()=>{if(!hasIntersectionObserver){if(!visible){const idleCallback=(0,_requestIdleCallback.requestIdleCallback)(()=>setVisible(true));return()=>(0,_requestIdleCallback.cancelIdleCallback)(idleCallback);}}},[visible]);return[setRef,visible];}function observe(element,callback,options){const{id,observer,elements}=createObserver(options);elements.set(element,callback);observer.observe(element);return function unobserve(){elements.delete(element);observer.unobserve(element);// Destroy observer when there's nothing left to watch:\nif(elements.size===0){observer.disconnect();observers.delete(id);}};}const observers=new Map();function createObserver(options){const id=options.rootMargin||'';let instance=observers.get(id);if(instance){return instance;}const elements=new Map();const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{const callback=elements.get(entry.target);const isVisible=entry.isIntersecting||entry.intersectionRatio>0;if(callback&&isVisible){callback(isVisible);}});},options);observers.set(id,instance={id,observer,elements});return instance;}\n//# sourceMappingURL=use-intersection.js.map","\"use strict\";exports.__esModule=true;exports.AmpStateContext=void 0;var _react=_interopRequireDefault(require(\"react\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}const AmpStateContext=/*#__PURE__*/_react.default.createContext({});exports.AmpStateContext=AmpStateContext;if(process.env.NODE_ENV!=='production'){AmpStateContext.displayName='AmpStateContext';}\n//# sourceMappingURL=amp-context.js.map","\"use strict\";exports.__esModule=true;exports.isInAmpMode=isInAmpMode;exports.useAmp=useAmp;var _react=_interopRequireDefault(require(\"react\"));var _ampContext=require(\"./amp-context\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function isInAmpMode({ampFirst=false,hybrid=false,hasQuery=false}={}){return ampFirst||hybrid&&hasQuery;}function useAmp(){// Don't assign the context value to a variable to save bytes\nreturn isInAmpMode(_react.default.useContext(_ampContext.AmpStateContext));}\n//# sourceMappingURL=amp.js.map","\"use strict\";exports.__esModule=true;exports.noSSR=noSSR;exports.default=dynamic;var _react=_interopRequireDefault(require(\"react\"));var _loadable=_interopRequireDefault(require(\"./loadable\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}const isServerSide=typeof window==='undefined';function noSSR(LoadableInitializer,loadableOptions){// Removing webpack and modules means react-loadable won't try preloading\ndelete loadableOptions.webpack;delete loadableOptions.modules;// This check is necessary to prevent react-loadable from initializing on the server\nif(!isServerSide){return LoadableInitializer(loadableOptions);}const Loading=loadableOptions.loading;// This will only be rendered on the server side\nreturn()=>/*#__PURE__*/_react.default.createElement(Loading,{error:null,isLoading:true,pastDelay:false,timedOut:false});}// function dynamic

(options: O):\nfunction dynamic(dynamicOptions,options){let loadableFn=_loadable.default;let loadableOptions={// A loading component is not required, so we default it\nloading:({error,isLoading,pastDelay})=>{if(!pastDelay)return null;if(process.env.NODE_ENV==='development'){if(isLoading){return null;}if(error){return/*#__PURE__*/_react.default.createElement(\"p\",null,error.message,/*#__PURE__*/_react.default.createElement(\"br\",null),error.stack);}}return null;}};// Support for direct import(), eg: dynamic(import('../hello-world'))\n// Note that this is only kept for the edge case where someone is passing in a promise as first argument\n// The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n// To make sure we don't execute the import without rendering first\nif(dynamicOptions instanceof Promise){loadableOptions.loader=()=>dynamicOptions;// Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n}else if(typeof dynamicOptions==='function'){loadableOptions.loader=dynamicOptions;// Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n}else if(typeof dynamicOptions==='object'){loadableOptions={...loadableOptions,...dynamicOptions};}// Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\nloadableOptions={...loadableOptions,...options};// coming from build/babel/plugins/react-loadable-plugin.js\nif(loadableOptions.loadableGenerated){loadableOptions={...loadableOptions,...loadableOptions.loadableGenerated};delete loadableOptions.loadableGenerated;}// support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\nif(typeof loadableOptions.ssr==='boolean'){if(!loadableOptions.ssr){delete loadableOptions.ssr;return noSSR(loadableFn,loadableOptions);}delete loadableOptions.ssr;}return loadableFn(loadableOptions);}\n//# sourceMappingURL=dynamic.js.map","\"use strict\";exports.__esModule=true;exports.defaultHead=defaultHead;exports.default=void 0;var _react=_interopRequireWildcard(require(\"react\"));var _sideEffect=_interopRequireDefault(require(\"./side-effect\"));var _ampContext=require(\"./amp-context\");var _headManagerContext=require(\"./head-manager-context\");var _amp=require(\"./amp\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _getRequireWildcardCache(){if(typeof WeakMap!==\"function\")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!==\"object\"&&typeof obj!==\"function\"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function defaultHead(inAmpMode=false){const head=[/*#__PURE__*/_react.default.createElement(\"meta\",{charSet:\"utf-8\"})];if(!inAmpMode){head.push(/*#__PURE__*/_react.default.createElement(\"meta\",{name:\"viewport\",content:\"width=device-width\"}));}return head;}function onlyReactElement(list,child){// React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\nif(typeof child==='string'||typeof child==='number'){return list;}// Adds support for React.Fragment\nif(child.type===_react.default.Fragment){return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList,fragmentChild)=>{if(typeof fragmentChild==='string'||typeof fragmentChild==='number'){return fragmentList;}return fragmentList.concat(fragmentChild);},[]));}return list.concat(child);}const METATYPES=['name','httpEquiv','charSet','itemProp'];/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like \n Also adds support for deduplicated `key` properties\n*/function unique(){const keys=new Set();const tags=new Set();const metaTypes=new Set();const metaCategories={};return h=>{let isUnique=true;let hasKey=false;if(h.key&&typeof h.key!=='number'&&h.key.indexOf('$')>0){hasKey=true;const key=h.key.slice(h.key.indexOf('$')+1);if(keys.has(key)){isUnique=false;}else{keys.add(key);}}// eslint-disable-next-line default-case\nswitch(h.type){case'title':case'base':if(tags.has(h.type)){isUnique=false;}else{tags.add(h.type);}break;case'meta':for(let i=0,len=METATYPES.length;i<len;i++){const metatype=METATYPES[i];if(!h.props.hasOwnProperty(metatype))continue;if(metatype==='charSet'){if(metaTypes.has(metatype)){isUnique=false;}else{metaTypes.add(metatype);}}else{const category=h.props[metatype];const categories=metaCategories[metatype]||new Set();if((metatype!=='name'||!hasKey)&&categories.has(category)){isUnique=false;}else{categories.add(category);metaCategories[metatype]=categories;}}}break;}return isUnique;};}/**\n *\n * @param headElements List of multiple <Head> instances\n */function reduceComponents(headElements,props){return headElements.reduce((list,headElement)=>{const headElementChildren=_react.default.Children.toArray(headElement.props.children);return list.concat(headElementChildren);},[]).reduce(onlyReactElement,[]).reverse().concat(defaultHead(props.inAmpMode)).filter(unique()).reverse().map((c,i)=>{const key=c.key||i;if(process.env.NODE_ENV!=='development'&&process.env.__NEXT_OPTIMIZE_FONTS&&!props.inAmpMode){if(c.type==='link'&&c.props['href']&&// TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.\n['https://fonts.googleapis.com/css','https://use.typekit.net/'].some(url=>c.props['href'].startsWith(url))){const newProps={...(c.props||{})};newProps['data-href']=newProps['href'];newProps['href']=undefined;// Add this attribute to make it easy to identify optimized tags\nnewProps['data-optimized-fonts']=true;return/*#__PURE__*/_react.default.cloneElement(c,newProps);}}return/*#__PURE__*/_react.default.cloneElement(c,{key});});}/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */function Head({children}){const ampState=(0,_react.useContext)(_ampContext.AmpStateContext);const headManager=(0,_react.useContext)(_headManagerContext.HeadManagerContext);return/*#__PURE__*/_react.default.createElement(_sideEffect.default,{reduceComponentsToState:reduceComponents,headManager:headManager,inAmpMode:(0,_amp.isInAmpMode)(ampState)},children);}var _default=Head;exports.default=_default;\n//# sourceMappingURL=head.js.map","\"use strict\";exports.__esModule=true;exports.LoadableContext=void 0;var _react=_interopRequireDefault(require(\"react\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}const LoadableContext=/*#__PURE__*/_react.default.createContext(null);exports.LoadableContext=LoadableContext;if(process.env.NODE_ENV!=='production'){LoadableContext.displayName='LoadableContext';}\n//# sourceMappingURL=loadable-context.js.map","\"use strict\";exports.__esModule=true;exports.default=void 0;var _react=_interopRequireDefault(require(\"react\"));var _useSubscription=require(\"use-subscription\");var _loadableContext=require(\"./loadable-context\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}/**\n@copyright (c) 2017-present James Kyle <me@thejameskyle.com>\n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/ // https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\nconst ALL_INITIALIZERS=[];const READY_INITIALIZERS=[];let initialized=false;function load(loader){let promise=loader();let state={loading:true,loaded:null,error:null};state.promise=promise.then(loaded=>{state.loading=false;state.loaded=loaded;return loaded;}).catch(err=>{state.loading=false;state.error=err;throw err;});return state;}function resolve(obj){return obj&&obj.__esModule?obj.default:obj;}function createLoadableComponent(loadFn,options){let opts=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},options);let subscription=null;function init(){if(!subscription){const sub=new LoadableSubscription(loadFn,opts);subscription={getCurrentValue:sub.getCurrentValue.bind(sub),subscribe:sub.subscribe.bind(sub),retry:sub.retry.bind(sub),promise:sub.promise.bind(sub)};}return subscription.promise();}// Server only\nif(typeof window==='undefined'){ALL_INITIALIZERS.push(init);}// Client only\nif(!initialized&&typeof window!=='undefined'&&typeof opts.webpack==='function'){const moduleIds=opts.webpack();READY_INITIALIZERS.push(ids=>{for(const moduleId of moduleIds){if(ids.indexOf(moduleId)!==-1){return init();}}});}const LoadableComponent=(props,ref)=>{init();const context=_react.default.useContext(_loadableContext.LoadableContext);const state=(0,_useSubscription.useSubscription)(subscription);_react.default.useImperativeHandle(ref,()=>({retry:subscription.retry}),[]);if(context&&Array.isArray(opts.modules)){opts.modules.forEach(moduleName=>{context(moduleName);});}return _react.default.useMemo(()=>{if(state.loading||state.error){return/*#__PURE__*/_react.default.createElement(opts.loading,{isLoading:state.loading,pastDelay:state.pastDelay,timedOut:state.timedOut,error:state.error,retry:subscription.retry});}else if(state.loaded){return/*#__PURE__*/_react.default.createElement(resolve(state.loaded),props);}else{return null;}},[props,state]);};LoadableComponent.preload=()=>init();LoadableComponent.displayName='LoadableComponent';return/*#__PURE__*/_react.default.forwardRef(LoadableComponent);}class LoadableSubscription{constructor(loadFn,opts){this._loadFn=loadFn;this._opts=opts;this._callbacks=new Set();this._delay=null;this._timeout=null;this.retry();}promise(){return this._res.promise;}retry(){this._clearTimeouts();this._res=this._loadFn(this._opts.loader);this._state={pastDelay:false,timedOut:false};const{_res:res,_opts:opts}=this;if(res.loading){if(typeof opts.delay==='number'){if(opts.delay===0){this._state.pastDelay=true;}else{this._delay=setTimeout(()=>{this._update({pastDelay:true});},opts.delay);}}if(typeof opts.timeout==='number'){this._timeout=setTimeout(()=>{this._update({timedOut:true});},opts.timeout);}}this._res.promise.then(()=>{this._update({});this._clearTimeouts();}).catch(_err=>{this._update({});this._clearTimeouts();});this._update({});}_update(partial){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...partial};this._callbacks.forEach(callback=>callback());}_clearTimeouts(){clearTimeout(this._delay);clearTimeout(this._timeout);}getCurrentValue(){return this._state;}subscribe(callback){this._callbacks.add(callback);return()=>{this._callbacks.delete(callback);};}}function Loadable(opts){return createLoadableComponent(load,opts);}function flushInitializers(initializers,ids){let promises=[];while(initializers.length){let init=initializers.pop();promises.push(init(ids));}return Promise.all(promises).then(()=>{if(initializers.length){return flushInitializers(initializers,ids);}});}Loadable.preloadAll=()=>{return new Promise((resolveInitializers,reject)=>{flushInitializers(ALL_INITIALIZERS).then(resolveInitializers,reject);});};Loadable.preloadReady=(ids=[])=>{return new Promise(resolvePreload=>{const res=()=>{initialized=true;return resolvePreload();};// We always will resolve, errors should be handled within loading UIs.\nflushInitializers(READY_INITIALIZERS,ids).then(res,res);});};if(typeof window!=='undefined'){window.__NEXT_PRELOADREADY=Loadable.preloadReady;}var _default=Loadable;exports.default=_default;\n//# sourceMappingURL=loadable.js.map","\"use strict\";exports.__esModule=true;exports.default=void 0;var _react=require(\"react\");const isServer=typeof window==='undefined';class _default extends _react.Component{constructor(props){super(props);this._hasHeadManager=void 0;this.emitChange=()=>{if(this._hasHeadManager){this.props.headManager.updateHead(this.props.reduceComponentsToState([...this.props.headManager.mountedInstances],this.props));}};this._hasHeadManager=this.props.headManager&&this.props.headManager.mountedInstances;if(isServer&&this._hasHeadManager){this.props.headManager.mountedInstances.add(this);this.emitChange();}}componentDidMount(){if(this._hasHeadManager){this.props.headManager.mountedInstances.add(this);}this.emitChange();}componentDidUpdate(){this.emitChange();}componentWillUnmount(){if(this._hasHeadManager){this.props.headManager.mountedInstances.delete(this);}this.emitChange();}render(){return null;}}exports.default=_default;\n//# sourceMappingURL=side-effect.js.map","\"use strict\";var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");exports.__esModule=true;exports.default=void 0;var _react=_interopRequireDefault(require(\"react\"));var _utils=require(\"../next-server/lib/utils\");exports.AppInitialProps=_utils.AppInitialProps;exports.NextWebVitalsMetric=_utils.NextWebVitalsMetric;/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */async function appGetInitialProps({Component,ctx}){const pageProps=await(0,_utils.loadGetInitialProps)(Component,ctx);return{pageProps};}class App extends _react.default.Component{render(){const{Component,pageProps}=this.props;return/*#__PURE__*/_react.default.createElement(Component,pageProps);}}exports.default=App;App.origGetInitialProps=appGetInitialProps;App.getInitialProps=appGetInitialProps;\n//# sourceMappingURL=_app.js.map","import React from 'react'\nimport getTCCConfig from 'lib/get-tcc-config'\nimport { logger } from 'lib/slardar-utils'\nimport Script from 'next/script'\ntype TIntercept = string | { method: 'GET' | 'POST'; url: string }\nconst APIIntercept: React.FC = () => {\n const handleOnload = async () => {\n try {\n const config = await getTCCConfig()\n const intercept = JSON.parse(config.api_intercept || '[]') as TIntercept[]\n const path: Record<'GET' | 'POST', RegExp[]> = {\n GET: [],\n POST: [],\n }\n intercept.forEach((api) => {\n if (typeof api === 'string') {\n path.POST.push(new RegExp(api))\n } else {\n path[api.method].push(new RegExp(api.url))\n }\n })\n ; (window as any)?.secsdk?.csrf?.setProtectedHost?.({\n 'www.dongchedi.com': path,\n })\n } catch (error) {\n logger.error(\n `[/motor/api/intercept/convert onError] error message: ${(error as Error).message\n }]`\n )\n }\n }\n return (\n <Script\n src=\"https://lf3-static.bytednsdoc.com/obj/eden-cn/fapybjlz_lm_zlp/ljhwZthlaukjlkulzlp/security/secsdk.umd.js\"\n onLoad={handleOnload}\n />\n )\n}\n\nexport default APIIntercept\n","import * as React from 'react'\nimport get from 'lodash/get'\nimport fetch from 'lib/decorated-fetch'\nimport Router from 'next/router'\nimport classnames from 'classnames'\nimport { isNewVersion } from 'Components/hooks/use-version'\nimport getUrl from 'lib/url'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\ninterface IResult {\n keyword: string\n}\ninterface IListProps {\n data: IResult[]\n curIndex: number\n}\ninterface IState {\n data: IResult[]\n show: boolean\n}\n\nconst handler = (keyword: string, searchMode = 'common') => {\n sendTeaCommEvent('click_top_search', {\n search_content: keyword,\n search_mode: searchMode,\n })\n sessionStorage.setItem('search_content', keyword)\n sessionStorage.setItem('search_mode', searchMode)\n\n Router.push(\n isNewVersion() ? '/new_search' : '`/search/home',\n `/search?keyword=${keyword}`\n )\n}\n\nfunction ResultList({ data, curIndex }: IListProps) {\n return (\n <ul className=\"result\">\n {data.map((item: IResult, index: number) => (\n <li\n key={item.keyword}\n className={classnames({\n active: index === curIndex,\n })}\n onClick={(e: React.MouseEvent<HTMLLIElement, MouseEvent>) => {\n e.stopPropagation()\n handler(item.keyword)\n // setValue(item.keyword)\n }}\n >\n {item.keyword}\n </li>\n ))}\n <style jsx>\n {`\n .result {\n position: absolute;\n top: 36px;\n left: -2px;\n z-index: 1000;\n width: 320px;\n color: #333333;\n background: #fff;\n margin-top: 4px;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\n }\n .result li {\n line-height: 32px;\n margin: 0 10px;\n font-size: 14px;\n border-bottom: 1px dotted #e6e6e6;\n cursor: pointer;\n }\n .result li:last-child {\n border-bottom: 0;\n }\n ul.result .active {\n color: #ff9100;\n }\n `}\n </style>\n </ul>\n )\n}\n\nexport default function Search() {\n const [focus, setFocus] = React.useState(false)\n const [value, setValue] = React.useState('')\n /* 列表当前选中项索引 */\n const [curIndex, setCurIndex] = React.useState(0)\n /* 列表数据 */\n const [list, setList] = React.useState<IState>({ show: false, data: [] })\n\n const searchDivRef = React.useRef<HTMLDivElement>(null)\n const buttonRef = React.useRef<HTMLButtonElement>(null)\n\n React.useEffect(() => {\n const searchDivDom = searchDivRef.current\n const searchButtonDom = buttonRef.current\n const onMouseEnter = () => {\n if (searchDivDom) searchDivDom.classList.add('button-hover')\n }\n const onMouseLeave = () => {\n if (searchDivDom) searchDivDom.classList.remove('button-hover')\n }\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.addEventListener('mouseenter', onMouseEnter)\n searchButtonDom.addEventListener('mouseleave', onMouseLeave)\n }\n\n return () => {\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.removeEventListener('mouseenter', onMouseEnter)\n searchButtonDom.removeEventListener('mouseleave', onMouseLeave)\n }\n }\n }, [searchDivRef.current, buttonRef.current])\n\n React.useEffect(() => {\n if (!value) {\n return\n }\n fetch(getUrl(`/motor/searchacl/complete?keyword=${value}`))\n .then(json => {\n setList({ show: true, data: json.data })\n })\n .catch(e => {\n // no-op\n })\n }, [value])\n\n return (\n <div className=\"fl clearfix search\" ref={searchDivRef}>\n <span className=\"search-icon fl\" />\n <input\n type=\"search\"\n className=\"fl search-form\"\n placeholder=\"请输入你要搜索的内容\"\n onChange={e => {\n setCurIndex(0)\n setValue(e.target.value)\n }}\n onBlur={() => {\n setFocus(false)\n setTimeout(() => {\n setList({ ...list, show: false })\n }, 200)\n }}\n onFocus={() => {\n setList({ ...list, show: true })\n setFocus(true)\n }}\n onKeyDownCapture={e => {\n if (e.keyCode === 40) {\n const index = curIndex + 1 === list.data.length ? 0 : curIndex + 1\n setCurIndex(index)\n // setValue(list.data[index].keyword)\n }\n if (e.keyCode === 38) {\n const index =\n curIndex - 1 === -1 ? list.data.length - 1 : curIndex - 1\n setCurIndex(index)\n // setValue(list.data[index].keyword)\n }\n if (e.keyCode === 13) {\n console.log(list.data, curIndex)\n handler(get(list, `data[${curIndex}].keyword`) || value, 'sug')\n }\n }}\n />\n <button\n ref={buttonRef}\n type=\"submit\"\n className=\"fl search-btn\"\n onClick={e => {\n e.stopPropagation()\n handler(value)\n }}\n >\n 搜索\n </button>\n {list.show && <ResultList data={list.data} curIndex={curIndex} />}\n <style jsx>\n {`\n .search {\n margin-left: 40px;\n border-radius: 2px;\n position: relative;\n background-color: #ffffff;\n width: 400px;\n margin-top: 0;\n border: solid 2px #ffcc32;\n }\n .search.button-hover {\n border: solid 2px #e5b72c;\n }\n .search-icon {\n display: inline-block;\n font-size: 16px;\n width: 16px;\n height: 16px;\n margin: 10px 0 10px 12px;\n color: #cccccc;\n background-image: url(${require('../public/static/search-ic@3x.png')});\n background-position: center;\n background-size: 100%;\n }\n .search-form {\n width: 284px;\n height: 36px;\n line-height: 12px;\n padding: 0 10px 0 10px;\n outline: 0;\n border: 0;\n font-size: 12px;\n box-sizing: border-box;\n -webkit-appearance: none;\n }\n .search-btn {\n line-height: 36px;\n font-size: 14px;\n border: 0;\n background-color: #ffcc32;\n cursor: pointer;\n outline: none;\n float: right;\n width: 80px;\n border-radius: 0;\n }\n .search-btn:hover {\n background-color: #e5b72c;\n }\n .search-btn:active {\n background-color: #e5b72c;\n }\n `}\n </style>\n </div>\n )\n}\n","import React, { useCallback } from 'react'\nimport classnames from 'classnames'\nimport Link from 'next/link'\nimport Router from 'next/router'\n\nimport getLocation, {\n setLocation2storage,\n setSelectedCity2storage,\n sendTeaLocationEvent,\n} from 'lib/get-location'\nimport getLinkHref from 'lib/get-link-href'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { GlobalStoreContext } from 'Components/store'\n\nimport { isNewVersion } from 'lib/version'\nimport City from './city'\nimport Search from './search'\nimport User from './user'\n\nimport TopTips from './top-tops-dynamic'\nimport useHasTips from 'Components/hooks/use-top-tips'\n\ninterface IProps {\n router: {\n asPath: string\n pathname: string\n }\n}\n\nconst live_white = require('static/live-white.gif')\nconst live_yellow = require('static/live-yellow.gif')\n\nconst routes = [\n {\n href: '/home',\n as: getLinkHref('/'),\n newVersionLink: '/new_home',\n text: '首页',\n },\n {\n href: '/auto/home',\n as: getLinkHref('/auto/library/x-x-x-x-x-x-x-x-x-x-x'),\n newVersionLink: '/auto/library/x-x-x-x-x-x-x-x-x-x-x',\n text: '车型库',\n },\n {\n href: '/car_fans_community/home',\n as: getLinkHref('/car_fans_community'),\n text: '车友圈',\n },\n {\n href: '/feed/home',\n as: getLinkHref('/feed'),\n newVersionLink: '/new_feed/home',\n text: '资讯',\n },\n {\n href: '/live/home',\n as: getLinkHref('/live'),\n text: '直播',\n icon: live_white,\n },\n {\n href: '/picture/home',\n as: getLinkHref('/picture'),\n text: '图片',\n },\n {\n href: '/video/home',\n as: getLinkHref('/video'),\n newVersionLink: '/new_video',\n text: '视频',\n },\n]\n\nfunction Header() {\n const isHasTips = useHasTips()\n // 当前激活的tab\n const [active, updateActive] = React.useState<string>()\n const [showCity, setCityPopup] = React.useState(false)\n // 防止ssr与前端渲染的html不一致的问题,在服务端不渲染城市\n const { state, dispatch } = React.useContext(GlobalStoreContext)\n const { cityName } = state\n // 搜索页要隐藏搜索框\n const [hideSearch, setSearch] = React.useState(true)\n const asPath = (Router && Router.router && Router.router.asPath) || ''\n React.useEffect(() => {\n const pathname = asPath.split('?')[0]\n updateActive(pathname)\n setSearch(asPath.includes('/search'))\n }, [asPath])\n React.useEffect(() => {\n if (typeof state.cityName === 'undefined') {\n try {\n const cityName = window.localStorage.getItem('cityName')\n // 优先从本地存储中获取城市\n if (cityName) {\n dispatch({\n type: 'setCityName',\n payload: cityName || '',\n })\n sendTeaLocationEvent('init_top_location')\n } else {\n // 获取不到时,调用location获取\n getLocation().then((location) => {\n setLocation2storage(location)\n dispatch({\n type: 'setCityName',\n payload: location.cityName || '',\n })\n sendTeaLocationEvent('init_top_location')\n })\n }\n } catch (err) {}\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.cityName])\n const getLink = useCallback(\n (link: string | undefined, newVersionLink: string | undefined) => {\n if (isNewVersion() && newVersionLink) {\n return newVersionLink\n }\n\n return link || '#!'\n },\n []\n )\n\n return (\n <>\n {isHasTips ? <TopTips /> : ''}\n <header className=\"header\">\n <Link href=\"/home\" as=\"/\">\n <a target=\"_blank\" className=\"fl logo\" />\n </Link>\n <div className=\"inner search-row clearfix\">\n {!hideSearch && <Search />}\n <User />\n <a\n className=\"dcdmp\"\n target=\"_blank\"\n rel=\"nofollow\"\n href=\"https://mp.dcdapp.com/?link_source=pc\"\n onClick={() => {\n sendTeaCommEvent('click_dcar_manage_btn')\n }}\n >\n 进入懂车号\n </a>\n <a\n onClick={() => {\n sendTeaCommEvent('click_top_download_app')\n }}\n target=\"_blank\"\n rel=\"nofollow\"\n href=\"https://www.dcdapp.com/download/\"\n className=\"download\"\n >\n <span className=\"code-icon\" />\n 下载APP\n <div className=\"vrcode-container\">\n <h3>扫码下载懂车帝APP</h3>\n <img\n src={require('static/dcd-code@3x.png')}\n alt=\"\"\n className=\"vrcode\"\n />\n </div>\n </a>\n <div\n className=\"city\"\n onMouseEnter={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n sendTeaCommEvent('mouseenter_top_location', {\n location_city: cityName,\n })\n setCityPopup(true)\n }}\n onMouseLeave={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n setCityPopup(false)\n }}\n >\n <span className=\"city-icon\" />\n {cityName}\n {showCity && (\n <City\n onChange={(name) => {\n setSelectedCity2storage(name!)\n sendTeaLocationEvent('switch_top_location', name)\n setCityPopup(false)\n }}\n />\n )}\n <span className=\"icon-arrow-ic-r arrow-down\" />\n </div>\n </div>\n <div className=\"inner nav-row clearfix\">\n {routes.map((item, index) => (\n <Link\n key={item.text}\n href={getLink(item.href, item.newVersionLink)}\n as={item.as}\n >\n <a\n //target=\"_blank\"\n key={`header-key-${index}`}\n className={classnames('fl nav', {\n active: active === item.as,\n hasicon: !!item.icon,\n })}\n onClick={() => {\n sendTeaCommEvent('click_top_guide', {\n obj_text: item.text,\n })\n }}\n >\n {item.icon && <img src={item.icon} className=\"nav-icon\" />}\n {item.text}\n </a>\n </Link>\n ))}\n {/* <Link href=\"/download\">\n <a className=\"download\">客户端</a>\n </Link> */}\n </div>\n <style jsx>\n {`\n .header {\n width: 1196px;\n height: 100px;\n margin: 0 auto;\n margin-top: ${isHasTips ? '72px' : '20px'};\n color: #1f2129;\n font-size: 18px;\n position: relative;\n }\n .inner {\n width: 1196px;\n padding-left: 100px;\n }\n .logo {\n width: 246px;\n height: 100px;\n background: url(${require('static/newLogo.png')}) no-repeat 0 0 /\n cover;\n }\n .search-row {\n height: 52px;\n line-height: 36px;\n font-size: 14px;\n }\n .nav-row {\n background: #1f2129;\n height: 48px;\n line-height: 48px;\n border-radius: 4px;\n background-image: linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.6),\n rgba(0, 0, 0, 0)\n );\n }\n .nav {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-left: 56px;\n color: #fff;\n transition: all 0.1s ease-in-out;\n position: relative;\n }\n .hasicon {\n margin-left: 80px;\n }\n .nav:first-child {\n margin-left: 40px;\n }\n .nav:hover {\n color: #ffcd32;\n }\n .nav:hover .nav-icon {\n content: url('${live_yellow}');\n }\n .nav:after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: transparent;\n }\n .active {\n color: #ffcd32;\n }\n .active .nav-icon {\n content: url('${live_yellow}');\n }\n .nav.active:after {\n background: #ffcd32;\n }\n .nav-icon {\n position: absolute;\n left: -24px;\n width: 24px;\n height: 24px;\n display: inline-block;\n object-fit: cover;\n object-position: center;\n }\n .city {\n position: relative;\n float: right;\n margin-right: 24px;\n font-size: 16px;\n cursor: pointer;\n user-select: none;\n height: 52px;\n }\n .city:hover {\n color: #e65800;\n }\n .city:hover .city-icon {\n background-image: url(${require('static/location-ic-red.png')});\n }\n .city::before:hover {\n color: #e65800;\n }\n .city:hover .arrow-down {\n color: #e65800;\n }\n .arrow-down {\n display: inline-block;\n font-size: 16px;\n color: #1f2129;\n margin-left: 8px;\n margin-top: -3px;\n transform: rotate(90deg);\n vertical-align: middle;\n }\n .city-icon {\n background-image: url(${require('static/location-ic@3x.png')});\n background-position: center;\n background-repeat: no-repeat;\n background-size: 100%;\n display: inline-block;\n width: 16px;\n height: 16px;\n vertical-align: -3px;\n margin-right: 4px;\n }\n .header .city :global(> section) {\n left: 0;\n }\n .dcdmp {\n float: right;\n font-size: 16px;\n margin-left: 24px;\n }\n .dcdmp:hover {\n color: #e65800;\n }\n .download {\n position: relative;\n float: right;\n font-size: 16px;\n height: 52px;\n }\n .download:hover .code-icon {\n background-image: url(${require('static/code-ic-red.png')});\n }\n .download:hover {\n color: #e65800;\n }\n .download:hover .vrcode-container {\n display: block;\n }\n\n .code-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background-image: url(${require('static/code-ic@3x.png')});\n background-position: center;\n background-repeat: no-repeat;\n background-size: 100%;\n vertical-align: -2px;\n margin-right: 4px;\n }\n .vrcode-container {\n display: none;\n position: absolute;\n top: 52px;\n left: 0px;\n width: 200px;\n height: 236px;\n z-index: 2000;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\n text-align: center;\n background-color: #ffffff;\n }\n .vrcode {\n width: 160px;\n height: 160px;\n margin: 20px 0;\n display: inline-block;\n }\n h3 {\n font-size: 14px;\n color: #1f2129;\n font-weight: normal;\n margin-top: 16px;\n line-height: 20px;\n }\n .right {\n margin-right: 0;\n }\n `}\n </style>\n </header>\n </>\n )\n}\n\nexport default Header\n","import * as React from 'react'\nimport get from 'lodash/get'\nimport fetch from 'lib/decorated-fetch'\nimport Router from 'next/router'\nimport classnames from 'classnames'\nimport { isNewVersion } from 'Components/hooks/use-version'\nimport getUrl from 'lib/url'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\ninterface IResult {\n keyword: string\n}\ninterface IListProps {\n data: IResult[]\n curIndex: number\n}\ninterface IState {\n data: IResult[]\n show: boolean\n}\n\nconst handler = (keyword: string, searchMode = 'common') => {\n sendTeaCommEvent('click_top_search', {\n search_content: keyword,\n search_mode: searchMode,\n })\n sessionStorage.setItem('search_content', keyword)\n sessionStorage.setItem('search_mode', searchMode)\n\n Router.push(\n isNewVersion() ? '/new_search' : '`/search/home',\n `/search?keyword=${keyword}`\n )\n}\n\nfunction ResultList({ data, curIndex }: IListProps) {\n return (\n <ul className=\"result\">\n {data.map((item: IResult, index: number) => (\n <li\n key={item.keyword}\n className={classnames({\n active: index === curIndex,\n })}\n onClick={(e: React.MouseEvent<HTMLLIElement, MouseEvent>) => {\n e.stopPropagation()\n handler(item.keyword)\n // setValue(item.keyword)\n }}\n >\n {item.keyword}\n </li>\n ))}\n <style jsx>\n {`\n .result {\n position: absolute;\n top: 36px;\n left: -2px;\n z-index: 1000;\n width: 320px;\n color: #333333;\n background: #fff;\n margin-top: 4px;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\n }\n .result li {\n line-height: 32px;\n margin: 0 10px;\n font-size: 14px;\n border-bottom: 1px dotted #e6e6e6;\n cursor: pointer;\n }\n .result li:last-child {\n border-bottom: 0;\n }\n ul.result .active {\n color: #ff9100;\n }\n `}\n </style>\n </ul>\n )\n}\n\nexport default function Search() {\n const [focus, setFocus] = React.useState(false)\n const [value, setValue] = React.useState('')\n /* 列表当前选中项索引 */\n const [curIndex, setCurIndex] = React.useState(0)\n /* 列表数据 */\n const [list, setList] = React.useState<IState>({ show: false, data: [] })\n\n const searchDivRef = React.useRef<HTMLDivElement>(null)\n const buttonRef = React.useRef<HTMLButtonElement>(null)\n\n React.useEffect(() => {\n const searchDivDom = searchDivRef.current\n const searchButtonDom = buttonRef.current\n const onMouseEnter = () => {\n if (searchDivDom) searchDivDom.classList.add('button-hover')\n }\n const onMouseLeave = () => {\n if (searchDivDom) searchDivDom.classList.remove('button-hover')\n }\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.addEventListener('mouseenter', onMouseEnter)\n searchButtonDom.addEventListener('mouseleave', onMouseLeave)\n }\n\n return () => {\n if (searchDivDom && searchButtonDom) {\n searchButtonDom.removeEventListener('mouseenter', onMouseEnter)\n searchButtonDom.removeEventListener('mouseleave', onMouseLeave)\n }\n }\n }, [searchDivRef.current, buttonRef.current])\n\n React.useEffect(() => {\n if (!value) {\n return\n }\n fetch(getUrl(`/motor/searchacl/complete?keyword=${value}`))\n .then(json => {\n setList({ show: true, data: json.data })\n })\n .catch(e => {\n // no-op\n })\n }, [value])\n\n return (\n <div className=\"fl clearfix search\" ref={searchDivRef}>\n <span className=\"search-icon fl\" />\n <input\n type=\"search\"\n className=\"fl search-form\"\n placeholder=\"请输入你要搜索的内容\"\n onChange={e => {\n setCurIndex(0)\n setValue(e.target.value)\n }}\n onBlur={() => {\n setFocus(false)\n setTimeout(() => {\n setList({ ...list, show: false })\n }, 200)\n }}\n onFocus={() => {\n setList({ ...list, show: true })\n setFocus(true)\n }}\n onKeyDownCapture={e => {\n if (e.keyCode === 40) {\n const index = curIndex + 1 === list.data.length ? 0 : curIndex + 1\n setCurIndex(index)\n // setValue(list.data[index].keyword)\n }\n if (e.keyCode === 38) {\n const index =\n curIndex - 1 === -1 ? list.data.length - 1 : curIndex - 1\n setCurIndex(index)\n // setValue(list.data[index].keyword)\n }\n if (e.keyCode === 13) {\n console.log(list.data, curIndex)\n handler(get(list, `data[${curIndex}].keyword`) || value, 'sug')\n }\n }}\n />\n <button\n ref={buttonRef}\n type=\"submit\"\n className=\"fl search-btn\"\n onClick={e => {\n e.stopPropagation()\n handler(value)\n }}\n >\n 搜索\n </button>\n {list.show && <ResultList data={list.data} curIndex={curIndex} />}\n <style jsx>\n {`\n .search {\n margin-left: 40px;\n border-radius: 2px;\n position: relative;\n background-color: #ffffff;\n width: 516px;\n margin-top: 0;\n border: solid 2px #ffcc32;\n }\n .search.button-hover {\n border: solid 2px #e5b72c;\n }\n .search-icon {\n display: inline-block;\n font-size: 16px;\n width: 16px;\n height: 16px;\n margin: 10px 0 10px 12px;\n color: #cccccc;\n background-image: url(${require('../public/static/new_search_icon.png')});\n background-position: center;\n background-size: 100%;\n }\n .search-form {\n width: 284px;\n height: 36px;\n line-height: 12px;\n padding: 0 10px 0 10px;\n outline: 0;\n border: 0;\n font-size: 12px;\n box-sizing: border-box;\n -webkit-appearance: none;\n }\n .search-btn {\n line-height: 36px;\n font-size: 14px;\n border: 0;\n background-color: #ffcc32;\n cursor: pointer;\n outline: none;\n float: right;\n width: 80px;\n border-radius: 0;\n }\n .search-btn:hover {\n background-color: #e5b72c;\n }\n .search-btn:active {\n background-color: #e5b72c;\n }\n `}\n </style>\n </div>\n )\n}\n","import * as React from 'react'\nimport classnames from 'classnames'\n\nimport Link from 'next/link'\nimport Router from 'next/router'\n\nimport getLocation, {\n setLocation2storage,\n setSelectedCity2storage,\n sendTeaLocationEvent,\n} from 'lib/get-location'\nimport getLinkHref from 'lib/get-link-href'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { GlobalStoreContext } from 'Components/store'\n\nimport City from './city'\nimport Search from './search2'\nimport User from './user'\n\nimport TopTips from './top-tops-dynamic'\nimport useHasTips from 'Components/hooks/use-top-tips'\n\ninterface IProps {\n router: {\n asPath: string\n pathname: string\n }\n}\n\nconst live_white = require('static/live-white.gif')\nconst live_yellow = require('static/live-yellow.gif')\n\nconst routes = [\n {\n href: '/home',\n as: getLinkHref('/'),\n text: '首页',\n },\n {\n href: '/auto/library/x-x-x-x-x-x-x-x-x-x-x',\n as: getLinkHref('/auto/library/x-x-x-x-x-x-x-x-x-x-x'),\n text: '车型库',\n },\n {\n href: '/car_fans_community/home',\n as: getLinkHref('/car_fans_community'),\n text: '车友圈',\n },\n {\n href: '/feed/home',\n as: getLinkHref('/feed'),\n text: '资讯',\n },\n {\n href: '/live/home',\n as: getLinkHref('/live'),\n text: '直播',\n icon: live_white,\n },\n {\n href: '/picture/home',\n as: getLinkHref('/picture'),\n text: '图片',\n },\n {\n href: '/video/home',\n as: getLinkHref('/video'),\n text: '视频',\n },\n]\n\nfunction Header() {\n const isHasTips = useHasTips()\n // 当前激活的tab\n const [active, updateActive] = React.useState<string>()\n const [showCity, setCityPopup] = React.useState(false)\n // 防止ssr与前端渲染的html不一致的问题,在服务端不渲染城市\n const { state, dispatch } = React.useContext(GlobalStoreContext)\n const { cityName } = state\n // 搜索页要隐藏搜索框\n const [hideSearch, setSearch] = React.useState(true)\n const asPath = (Router && Router.router && Router.router.asPath) || ''\n React.useEffect(() => {\n const pathname = asPath.split('?')[0]\n updateActive(pathname)\n setSearch(asPath.includes('/search'))\n }, [asPath])\n React.useEffect(() => {\n if (typeof state.cityName === 'undefined') {\n try {\n const cityName = window.localStorage.getItem('cityName')\n // 优先从本地存储中获取城市\n if (cityName) {\n dispatch({\n type: 'setCityName',\n payload: cityName || '',\n })\n sendTeaLocationEvent('init_top_location')\n } else {\n // 获取不到时,调用location获取\n getLocation().then((location) => {\n setLocation2storage(location)\n dispatch({\n type: 'setCityName',\n payload: location.cityName || '',\n })\n sendTeaLocationEvent('init_top_location')\n })\n }\n } catch (err) {}\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.cityName])\n return (\n <>\n {isHasTips ? <TopTips /> : ''}\n <header className=\"header\">\n <div className=\"inner search-row clearfix\">\n <Link href=\"/home\" as=\"/\">\n <a target=\"_blank\" className=\"fl logo\" />\n </Link>\n <div className=\"wrapper\">\n {!hideSearch && <Search />}\n <User className=\"small\" />\n <a\n className=\"dcdmp\"\n target=\"_blank\"\n rel=\"nofollow\"\n href=\"https://mp.dcdapp.com/?link_source=pc\"\n onClick={() => {\n sendTeaCommEvent('click_dcar_manage_btn')\n }}\n >\n 进入懂车号\n </a>\n <a\n onClick={() => {\n sendTeaCommEvent('click_top_download_app')\n }}\n target=\"_blank\"\n rel=\"nofollow\"\n href=\"https://www.dcdapp.com/download/\"\n className=\"download\"\n >\n <span className=\"code-icon\" />\n 下载APP\n <div className=\"vrcode-container\">\n <h3>扫码下载懂车帝APP</h3>\n <img\n src={require('static/dcd-code@3x.png')}\n alt=\"\"\n className=\"vrcode\"\n />\n </div>\n </a>\n <div\n className=\"city\"\n onMouseEnter={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n sendTeaCommEvent('mouseenter_top_location', {\n location_city: cityName,\n })\n setCityPopup(true)\n }}\n onMouseLeave={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopImmediatePropagation()\n setCityPopup(false)\n }}\n >\n <span className=\"city-icon\" />\n {cityName}\n {showCity && (\n <City\n onChange={(name) => {\n setSelectedCity2storage(name!)\n sendTeaLocationEvent('switch_top_location', name)\n setCityPopup(false)\n }}\n />\n )}\n {/* {\n <City\n onChange={name => {\n sendTeaCommEvent('switch_top_location', {\n location_city: name,\n });\n setCityPopup(false);\n }}\n />\n } */}\n <span className=\"icon-arrow-ic-r arrow-down\" />\n </div>\n </div>\n </div>\n\n <style jsx>\n {`\n .wrapper {\n padding-top: 5px;\n }\n .header {\n width: 1196px;\n margin: 0 auto;\n margin-top: ${isHasTips ? '84px' : '32px'};\n color: #1f2129;\n font-size: 18px;\n position: relative;\n height: 52px;\n }\n .inner {\n width: 1196px;\n }\n .logo {\n width: 146px;\n height: 49px;\n background: url(${require('static/new_logo.png')}) no-repeat 0 0 /\n cover;\n }\n .search-row {\n line-height: 36px;\n font-size: 14px;\n }\n .nav-row {\n background: #1f2129;\n height: 48px;\n line-height: 48px;\n border-radius: 4px;\n background-image: linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.6),\n rgba(0, 0, 0, 0)\n );\n }\n .nav {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-left: 56px;\n color: #fff;\n transition: all 0.1s ease-in-out;\n position: relative;\n }\n .hasicon {\n margin-left: 80px;\n }\n .nav:first-child {\n margin-left: 40px;\n }\n .nav:hover {\n color: #ffcd32;\n }\n .nav:hover .nav-icon {\n content: url('${live_yellow}');\n }\n .nav:after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 4px;\n background: transparent;\n }\n .active {\n color: #ffcd32;\n }\n .active .nav-icon {\n content: url('${live_yellow}');\n }\n .nav.active:after {\n background: #ffcd32;\n }\n .nav-icon {\n position: absolute;\n left: -24px;\n width: 24px;\n height: 24px;\n display: inline-block;\n object-fit: cover;\n object-position: center;\n }\n .city {\n position: relative;\n float: right;\n margin-right: 32px;\n font-size: 14px;\n cursor: pointer;\n user-select: none;\n height: 52px;\n }\n .city:hover {\n color: #e65800;\n }\n .city:hover .city-icon {\n background-image: url(${require('static/location-ic-red.png')});\n }\n .city::before:hover {\n color: #e65800;\n }\n .city:hover .arrow-down {\n color: #e65800;\n }\n .arrow-down {\n display: inline-block;\n font-size: 14px;\n color: #1f2129;\n margin-left: 8px;\n margin-top: -3px;\n transform: rotate(90deg);\n vertical-align: middle;\n }\n .city-icon {\n background-image: url(${require('static/location-ic@3x.png')});\n background-position: center;\n background-repeat: no-repeat;\n background-size: 100%;\n display: inline-block;\n width: 16px;\n height: 16px;\n vertical-align: -3px;\n margin-right: 4px;\n }\n :global(.header .city > section) {\n left: 0;\n }\n .dcdmp {\n float: right;\n font-size: 14px;\n margin-left: 32px;\n }\n .dcdmp:hover {\n color: #e65800;\n }\n .download {\n position: relative;\n float: right;\n font-size: 14px;\n height: 52px;\n }\n .download:hover .code-icon {\n background-image: url(${require('static/code-ic-red.png')});\n }\n .download:hover {\n color: #e65800;\n }\n .download:hover .vrcode-container {\n display: block;\n }\n\n .code-icon {\n display: inline-block;\n width: 16px;\n height: 16px;\n background-image: url(${require('static/code-ic@3x.png')});\n background-position: center;\n background-repeat: no-repeat;\n background-size: 100%;\n vertical-align: -2px;\n margin-right: 4px;\n }\n .vrcode-container {\n display: none;\n position: absolute;\n top: 52px;\n left: 0px;\n width: 200px;\n height: 236px;\n z-index: 2000;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\n text-align: center;\n background-color: #ffffff;\n }\n .vrcode {\n width: 160px;\n height: 160px;\n margin: 20px 0;\n display: inline-block;\n }\n h3 {\n font-size: 14px;\n color: #1f2129;\n font-weight: normal;\n margin-top: 16px;\n line-height: 20px;\n }\n .right {\n margin-right: 0;\n }\n :global(div > .small) {\n font-size: 14px !important;\n }\n `}\n </style>\n </header>\n </>\n )\n}\n\nexport default Header\n","import { sendTeaCommEvent } from 'lib/tea-analyze'\nimport * as React from 'react'\n\nexport default function UsedcarLink() {\n return (\n <a\n target=\"_blank\"\n href=\"/usedcar/sale\"\n className=\"link-wrapper tw-text-color-gray-500 hover:tw-text-white\"\n onClick={() => {\n sendTeaCommEvent('clk_event', {\n page_id: 'page_used_car_source_list',\n event_id: 'used_car_high_sell_car',\n button_name: '高价卖车',\n })\n }}\n >\n <i className=\"DCD_Icon icon_car_24\" />\n <span className=\"tw-ml-4\">高价卖车</span>\n <style jsx>\n {`\n .link-wrapper {\n display: block;\n padding: 12px 16px;\n margin-bottom: 4px;\n background: url(${require('./static/usedcar-sale-link-bg.png')}) 0 0 /\n 100% 100% no-repeat;\n }\n `}\n </style>\n </a>\n )\n}\n","import * as React from 'react'\nimport { on, off } from '@arsenal/arsenal/modules/event'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { Router } from 'next/router'\n\nimport UsedcarLink from './car/usedcar-link'\nimport scrollSmoothly from 'lib/scroll-smoothly'\n\nconst jumpTopIcon = require('static/jump-top.png')\n\ninterface IProps {\n bottom?: number\n style?: React.CSSProperties\n}\n\nexport default function BackToTop({ bottom = 0, style }: IProps) {\n const [show, updateShow] = React.useState(false)\n const [url, setUrl] = React.useState('')\n\n const routeChangeComplete = React.useCallback((url: string) => {\n if (url === '') {\n setUrl('/')\n return\n }\n setUrl(url)\n }, [])\n\n React.useEffect(() => {\n setUrl(window?.location?.pathname || '/')\n Router.events.on('routeChangeComplete', routeChangeComplete)\n return () => {\n Router.events.off('routeChangeComplete', routeChangeComplete)\n }\n }, [])\n\n const isUsedcar = React.useCallback(() => {\n return /\\/usedcar\\/(\\d|has_related_video|car_source_types|x|,|-)+/g.test(\n url\n )\n }, [url])\n\n React.useEffect(() => {\n function handleScroll() {\n const scrollElement =\n document.scrollingElement || document.documentElement\n if (scrollElement.scrollTop > 100) {\n updateShow(true)\n } else {\n updateShow(false)\n }\n }\n on(document, 'scroll', handleScroll)\n return () => {\n off(document, 'scroll', handleScroll)\n }\n }, [])\n const handleButtonClick = () => {\n sendTeaCommEvent('clk_event', {\n event_id: 'right_float_nav',\n button_name: '返回顶部',\n })\n const scrollElement = document.scrollingElement || document.documentElement\n const top = scrollElement.scrollTop\n sendTeaCommEvent('return_to_top')\n scrollSmoothly(-top, { element: scrollElement })()\n }\n\n let bottomSize = 29\n // 如果有自定义的优先级更高\n if (bottom) {\n bottomSize = bottom\n }\n\n function renderTopButton() {\n return (\n <div\n className={`tw-fixed tw-bottom-${bottomSize} tw-z-100 tw-right-8`}\n style={style}\n >\n {isUsedcar() ? <UsedcarLink /> : null}\n <div\n onClick={handleButtonClick}\n className={`tw-rounded-2 tw-cursor-pointer tw-bg-white tw-pt-16 tw-pb-16 tw-pl-12 tw-pr-12 tw-flex tw-items-center`}\n >\n <img\n src={jumpTopIcon}\n className={`tw-mr-4 tw-h-24 tw-w-24 tw-object-cover tw-object-center`}\n />\n <p className={`tw-text-common-black tw-text-14`}>返回顶部</p>\n </div>\n </div>\n )\n }\n\n if (!show) {\n return null\n }\n return <>{renderTopButton()}</>\n}\n","interface IOptions {\n // 滚动容器\n element?: Element\n // 是否是绝对位移\n absolute?: boolean\n}\nexport default function scrollSmoothly(dis: number, options: IOptions = {}) {\n const scrollElement =\n options.element || document.scrollingElement || document.documentElement\n const initTop = scrollElement.scrollTop\n const delta = options.absolute ? dis - initTop : dis\n let moved = 0\n\n return function scroll() {\n if (Math.abs(moved) < Math.abs(delta)) {\n /**\n * 200ms内移动delta的距离\n * 200 / 16 得出一共要多少帧\n * delta / (200 / 16)得出每一帧移动的距离\n */\n moved = moved + delta / (200 / 16)\n if (delta > 0) {\n moved = Math.min(moved, delta)\n } else {\n moved = Math.max(moved, delta)\n }\n scrollElement.scrollTop = initTop + moved\n\n requestAnimationFrame(scroll)\n }\n }\n}\n","import { useRouter } from 'next/router'\n\n// 入口开放的route\nconst pathConfig = ['/home', '/new_home']\n\nexport default function useShouldShowEntrance() {\n const router = useRouter()\n // 只展示首页 /new_home\n return pathConfig.indexOf(router?.route) >= 0\n}\n","import * as React from 'react'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { parse, stringify } from 'querystring'\nimport { NEW_VERSION, OLD_VERSION, VERSION_COOKIE_KEY } from 'lib/version'\nimport Link from 'next/link'\nimport Cookies from '@arsenal/arsenal/modules/Cookies'\nimport { GlobalStoreContext } from 'Components/store'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport useShouldShowEntrance from './hooks/use-should-show-entrance'\n\n// 入口开发开关\nconst onOff = true\n\n// 新老版本切换\nexport const switchNewOrOld = (version = NEW_VERSION) => {\n const isNew = version === NEW_VERSION\n const versionKey = isNew ? NEW_VERSION : OLD_VERSION\n sendTeaCommEvent('clk_event', {\n event_id: 'right_float_nav',\n button_name: isNew ? '体验新版首页' : '返回旧版',\n })\n if (window?.location?.search) {\n try {\n const param = parse(window?.location?.search?.slice(1))\n param[VERSION_COOKIE_KEY] = versionKey\n\n window.location.href = `${window.location.origin}?${stringify(param)}`\n return\n } catch (error) {\n console.error(error)\n }\n }\n\n window.location.href = `${window.location.origin}?${VERSION_COOKIE_KEY}=${versionKey}`\n}\n\nexport default function SwitchButton({ new_home = true }) {\n const shouldShowEntrance = useShouldShowEntrance()\n\n if (!onOff) {\n return null\n }\n\n if (!shouldShowEntrance) {\n return null\n }\n\n const switchToNewClick = () => {\n switchNewOrOld(new_home ? 'old' : 'new')\n }\n function renderSwith() {\n return (\n <div\n onClick={switchToNewClick}\n className={`switch-button ${\n new_home ? 'button-to-old' : 'button-to-new'\n }`}\n >\n <span className={new_home ? 'icon-to-old' : 'icon-to-new'} />\n {new_home ? '返回旧版' : '体验新版首页'}\n <style jsx>\n {`\n .switch-button {\n position: fixed;\n bottom: 8px;\n right: 8px;\n width: ${new_home ? 108 : 136}px;\n height: 44px;\n border: 0;\n outline: 0;\n text-align: left;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n z-index: 9999;\n color: #fff;\n line-height: 44px;\n font-size: 14px;\n font-weight: 500;\n }\n .button-to-new {\n background-image: linear-gradient(252deg, #ff893f, #ee6512 1%);\n }\n .button-to-new:hover {\n background-image: linear-gradient(252deg, #e9732a, #d35910 1%);\n }\n .button-to-old {\n background-color: #c9cbd6;\n }\n .button-to-old:hover {\n background-color: #979aa8;\n }\n .icon-to-old {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin: 0 4px 0 12px;\n background: url(${require('static/switch-to-new-white.png')})\n no-repeat center / 24px 24px;\n }\n .icon-to-new {\n display: inline-block;\n width: 36px;\n height: 44px;\n margin: 0 4px 0 0;\n background: url(${require('static/jiantou.gif')}) no-repeat center /\n 36px 42px;\n }\n .switch-button:hover .icon-to-new {\n background: url(${require('static/jiantou-hover.gif')}) no-repeat\n center / 36px 42px;\n }\n p {\n color: #1a1a1a;\n }\n `}\n </style>\n </div>\n )\n }\n return <>{renderSwith()}</>\n}\n","import * as React from 'react'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport SwitchButton from './new-switch-button'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { useRouter } from 'next/router'\n\nconst menu_top_img = require('../public/static/menu-top@3x.png')\nconst menu_bottom_img = require('../public/static/menu-bottom@3x.png')\n\nexport default function RightSideNavigation() {\n const router = useRouter()\n const [show, updateShow] = React.useState(false)\n const [activeNow, setActiveNow] = React.useState('')\n\n const withinView = React.useCallback((domID: string) => {\n const dom = document.getElementById(domID)\n if (!dom) {\n return false\n }\n return dom.getBoundingClientRect().top + dom.clientHeight > 0\n }, [])\n const handleScroll = React.useCallback(() => {\n const scrollElement = document.documentElement\n const start_dom = document.getElementById('original_column')\n if (\n start_dom &&\n scrollElement.scrollTop >\n start_dom.getBoundingClientRect().top + window.pageYOffset\n ) {\n updateShow(true)\n } else {\n updateShow(false)\n }\n\n const domIDs = [\n // 'hot_news',\n 'original_column',\n 'dong_che_fen',\n 'friend_circle',\n 'featured_videos',\n 'featured_images',\n 'local_market',\n 'home_feed',\n ]\n const elements = domIDs.map((e) => {\n return {\n id: e,\n withinView: withinView(e),\n }\n })\n\n for (const element of elements) {\n if (element.withinView) {\n setActiveNow(element.id)\n break\n }\n }\n }, [])\n React.useEffect(() => {\n handleScroll()\n on(document, 'scroll', handleScroll)\n return () => {\n off(document, 'scroll', handleScroll)\n }\n }, [])\n\n const handleItemClick = React.useCallback((e: React.SyntheticEvent) => {\n const target = e.target as HTMLElement\n const type = target.dataset.type || ''\n sendTeaCommEvent('click_home_right_nav', {\n button_name: target.textContent,\n })\n const dom = document.getElementById(type) || document.body\n if (dom) {\n const to = dom?.offsetTop\n try {\n window.scrollTo({\n top: to,\n behavior: 'smooth',\n })\n } catch (e) {\n // 兼容性降级,不需要降级\n }\n }\n }, [])\n\n if (!show) {\n return <SwitchButton new_home={false} />\n }\n return (\n <>\n <div className=\"navigation-menu\">\n <img className=\"menu-top-img\" src={menu_top_img} />\n <div className=\"item-wrapper\" onClick={handleItemClick}>\n {/* <span\n className={`item ${activeNow === 'hot_news' ? 'active' : ''}`}\n data-type=\"hot_news\"\n >\n 直播\n </span> */}\n <span\n className={`item ${\n activeNow === 'original_column' ? 'active' : ''\n }`}\n data-type=\"original_column\"\n >\n 原创\n </span>\n <span\n className={`item ${activeNow === 'dong_che_fen' ? 'active' : ''}`}\n data-type=\"dong_che_fen\"\n >\n 懂车分\n </span>\n {/* <span\n className={`item ${activeNow === 'friend_circle' ? 'active' : ''}`}\n data-type=\"friend_circle\"\n >\n 车友圈\n </span> */}\n <span\n className={`item ${\n activeNow === 'featured_videos' ? 'active' : ''\n }`}\n data-type=\"featured_videos\"\n >\n 视频\n </span>\n <span\n className={`item ${\n activeNow === 'featured_images' ? 'active' : ''\n }`}\n data-type=\"featured_images\"\n >\n 图片\n </span>\n {/* <span\n className={`item ${activeNow === 'local_market' ? 'active' : ''}`}\n data-type=\"local_market\"\n >\n 本地车市\n </span> */}\n <span\n className={`item ${activeNow === 'home_feed' ? 'active' : ''}`}\n data-type=\"home_feed\"\n >\n 资讯\n </span>\n <span className=\"back-to-top\">返回顶部</span>\n </div>\n <style jsx>\n {`\n @media screen and (max-width: 1439px) {\n .navigation-menu {\n display: none;\n }\n }\n @media screen and (min-width: 1440px) {\n .back-to-top {\n color: #c9cbd6;\n width: 100%;\n height: 48px;\n line-height: 48px;\n white-space: nowrap;\n background: url('${menu_bottom_img}') no-repeat center center /\n 100% 100%;\n cursor: pointer;\n }\n .back-to-top:hover {\n color: #ffcd32;\n }\n .item {\n width: 100%;\n height: 48px;\n line-height: 48px;\n white-space: nowrap;\n cursor: pointer;\n }\n .item:hover {\n background-color: rgba(255, 255, 255, 0.24);\n }\n .active {\n background-color: #ffcd32;\n color: #1f2129;\n }\n .active:hover {\n background-color: #ffcd32;\n }\n .item-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: stretch;\n }\n .menu-top-img {\n width: 100%;\n height: 28px;\n object-fit: fill;\n object-position: center;\n background: white;\n }\n .navigation-menu {\n position: fixed;\n left: 50%;\n top: 40px;\n margin-left: calc(1196px / 2 + 16px);\n width: 88px;\n height: auto;\n font-size: 16px;\n text-align: center;\n border-radius: 2px;\n -webkit-backdrop-filter: blur(5.8px);\n backdrop-filter: blur(5.8px);\n background-color: #1f2129;\n color: #ffffff;\n }\n }\n `}\n </style>\n </div>\n <SwitchButton new_home={false} />\n </>\n )\n}\n","// 默认 页面 加载完成后会主动 window.scrollTo(0, 0) 配置一些不需要处理的pageId\n\nconst notScrollPageIdMap = new Map([\n ['page_car_series_pc', true], // 车型库\n ['page_series_picture_detail', true], // 图片详情\n ['page_feed_article_mix_static', true], // 资讯静态化\n ['page_ugc_detail', true], // ugc详情\n ['page_reputation_detail', true], // 口碑详情页\n ['page_topic_talk_details', true], // 话题\n ['page_series_article_list', true], // 车系文章\n ['page_series_video_list', true], // 车系视频\n ['page_car_series_dcd_score_home', true], // 车系懂车分\n])\n\nconst isScroll = (pageId: string) => {\n return !pageId || !notScrollPageIdMap.get(pageId)\n}\n\nexport default isScroll\n","// 默认 页面 加载完成后会主动 发送 pageEnter 配置一些页面需要自定义处理\nconst NOT_AUTO_TO_LIST = [\n 'page_pgc_article_detail', // 资讯详情\n 'page_search_result_new', // 搜索\n 'page_my_collection', // 收藏页面\n 'page_personal_homepage', // 个人主页\n 'page_car_model_comparison', // 车型对比\n 'page_car_zonghe_comparison', // 综合对比\n 'page_feed_article_mix_static', // 资讯静态化\n 'page_ugc_detail', // ugc详情页\n 'page_answer_detail', // ugc详情页\n 'page_reputation_detail', // 口碑详情页\n 'page_car_series_dcd_score_home', // 懂车分主页\n 'page_ugc_forum_home', //车友圈详情\n 'page_topic_talk_details', // 话题详情\n 'page_car_style_home', // 车型页\n 'page_price_calculator', // 价格计算器\n 'page_dcd_list', // 排行榜\n 'page_video_combine_pc', // 视频频道\n]\n\nconst cusPageEnter = (pageId: string) => {\n if (!pageId) {\n return false\n }\n return NOT_AUTO_TO_LIST?.includes(pageId)\n}\n\nexport default cusPageEnter\n","class EventShim {\n constructor(type) {\n this.type = `${type}`;\n }\n\n}\n\nconst listenersMap = new WeakMap();\n\nclass EventTagerShim {\n constructor() {\n listenersMap.set(this, new Map());\n }\n\n addEventListener(eventName, listener) {\n if (listener == null) {\n return;\n }\n\n if (typeof listener !== \"function\") {\n throw new TypeError(\"'listener' should be a function or an object.\");\n }\n\n const listeners = listenersMap.get(this);\n\n if (!listeners) {\n return new Error(\"listenersMap has not this\");\n }\n\n let stacks = listeners.get(eventName);\n\n if (stacks === undefined) {\n stacks = [];\n }\n\n if (stacks.indexOf(listener) === -1) {\n stacks.push(listener);\n }\n\n listeners.set(eventName, stacks);\n return;\n }\n\n removeEventListener(eventName, listener) {\n if (listener == null) {\n return;\n }\n\n const listeners = listenersMap.get(this);\n\n if (!listeners) {\n return new Error(\"listenersMap has not this\");\n }\n\n let stacks = listeners.get(eventName);\n\n if (stacks === undefined) {\n stacks = [];\n }\n\n const index = stacks.indexOf(listener);\n\n if (index !== -1) {\n stacks.splice(index, 1);\n }\n\n listeners.set(eventName, stacks);\n return;\n }\n\n dispatchEvent(event) {\n if (event == null || typeof event.type !== \"string\") {\n throw new TypeError('\"event.type\" should be a string.');\n }\n\n const listeners = listenersMap.get(this);\n\n if (!listeners) {\n return new Error(\"listenersMap has not this\");\n }\n\n const eventName = event.type;\n let stacks = listeners.get(eventName);\n\n if (stacks === undefined) {\n return true;\n }\n\n stacks.forEach(fn => {\n fn(event);\n });\n return true;\n }\n\n}\n\nexport { EventShim, EventTagerShim };","export default function WilMutationObserver(fn, option) {\n const target = document.body || document;\n const defaultOption = {\n attributes: !0,\n childList: !0,\n subtree: !0\n };\n const callBacks = [fn];\n\n const observerHandle = function (mutationRecords) {\n mutationRecords.forEach(mutationRecord => {\n callBacks.forEach(fn => {\n fn(mutationRecord);\n });\n });\n };\n\n const observer = new MutationObserver(observerHandle);\n observer.observe(target, Object.assign({}, defaultOption, option));\n return observer;\n}","export function isObject(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nexport function deepFindLog(element, baseAttribute, extraAttribute) {\n let findBaselog = true;\n let logs = [];\n let p = element;\n\n while (!!p && p !== document) {\n if (!(p instanceof HTMLElement || p instanceof SVGElement)) {\n p = p.parentNode;\n continue;\n }\n\n const attributeValue = p.getAttribute(findBaselog ? baseAttribute : extraAttribute) || \"\";\n let obj;\n\n try {\n obj = JSON.parse(attributeValue);\n\n if (isObject(obj)) {\n logs.push(obj);\n\n if (findBaselog) {\n findBaselog = false;\n continue;\n }\n }\n } catch (error) {}\n\n p = p.parentNode;\n }\n\n if (logs.length > 0) {\n return logs;\n }\n\n return null;\n}\nexport function isIntersecting(e) {\n return e.isIntersecting || e.intersectionRatio > 0;\n}\nexport function now() {\n const n = window.performance && performance.now && performance.now();\n return n || Date.now();\n}\nexport function noop() {}\nexport function fixIosClick() {\n for (let i = 0, nodes = document.body.childNodes; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && node.nodeType === 1 && !node[\"onclick\"]) {\n node[\"onclick\"] = noop;\n }\n }\n}\nexport function getAttrFrom(e, key) {\n return e.target && e.target.getAttribute(key);\n}\nexport function isBrowser() {\n return typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n}\nexport function findExtraLog(element, extraAttribute = \"data-log-extra\") {\n const logs = [];\n let p = element;\n\n while (!!p && p !== document) {\n if (!(p instanceof HTMLElement || p instanceof SVGElement)) {\n p = p.parentNode;\n continue;\n }\n\n const attributeValue = p.getAttribute(extraAttribute) || \"\";\n\n try {\n if (attributeValue) {\n const extraLog = JSON.parse(attributeValue);\n logs.unshift(extraLog);\n }\n } catch (error) {\n console.warn(\"parse json in data-log-extra\");\n console.error(error);\n }\n\n p = p.parentNode;\n }\n\n return logs.reduce((acc, curr) => Object.assign(Object.assign({}, acc), curr), {});\n}\nexport function getPathByEle(element) {\n if (!element) {\n return \"\";\n }\n\n if (element.id !== \"\") return `#${element.id}`;\n if (element === document.body) return \"body\";\n let ix = 0;\n\n if (!element.parentNode) {\n return \"html\";\n }\n\n const siblings = element.parentNode.childNodes;\n\n for (let i = 0, l = siblings.length; i < l; i++) {\n let sibling = siblings[i];\n if (sibling === element) return `${getPathByEle(element.parentNode)}/${element.tagName.toLowerCase()}${ix > 0 ? `[${ix + 1}]` : ``}`;\n\n if (sibling.nodeType === 1 && sibling.tagName === element.tagName) {\n ix++;\n }\n }\n\n return element.tagName.toLowerCase();\n}\nexport function isHtmlOrSvg(node) {\n if (node === null) {\n return false;\n }\n\n return node.nodeType === 1 && (node instanceof HTMLElement || node instanceof SVGAElement);\n}\nexport function getClickPositionParams(e, logs = []) {\n const tgt = e.target;\n\n if (!window || !isHtmlOrSvg(tgt) || e.type !== \"click\") {\n return;\n }\n\n try {\n const {\n x,\n y\n } = e;\n const {\n left,\n top\n } = tgt.getBoundingClientRect();\n const path = getPathByEle(tgt);\n return {\n ele_x: ~~(x - left),\n ele_y: ~~(y - top),\n ele_path: path,\n dw: window.innerWidth,\n dh: window.innerHeight\n };\n } catch (err) {\n const error_type = \"get_click_position_error\";\n const info = Object.assign({}, ...[...logs].reverse());\n const tags = {\n error_type\n };\n console.error(err);\n\n try {\n if (window.Slardar) {\n window.Slardar(\"Sentry\", Sentry => {\n Sentry.withScope(scope => {\n scope.setTags(tags);\n scope.setExtras(info);\n Sentry.captureException(err);\n });\n });\n }\n } catch (innerErr) {\n console.error(\"Sentry Error!\");\n }\n }\n\n return null;\n}\nexport function isUndefined(a) {\n return typeof a === 'undefined';\n}\nexport function debounce(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n\n ;\n\n var debounced = function () {\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n return debounced;\n}\n;","import { isUndefined } from \"../utils/index\";\nexport class IntersectionHelper {\n constructor(range = []) {\n this.range = range;\n\n this.handleIntersect = entrys => {\n entrys.forEach(entry => {\n const {\n target,\n isIntersecting\n } = entry;\n if (!isIntersecting) return;\n const currentY = entry.boundingClientRect.top;\n const currentRatio = entry.intersectionRatio;\n const info = this.stayWeakMap.get(target) || {};\n let {\n previousY = -1,\n previousRatio = 0,\n currentT = this.getNow(),\n stay\n } = info;\n let currentStayRangeMap = stay;\n\n if (isUndefined(stay)) {\n currentStayRangeMap = new Map();\n }\n\n let currInterest = 0;\n\n if (previousY === -1 || currentY < previousY) {\n if (currentRatio > previousRatio && isIntersecting) {\n currInterest = currInterest | IntersectionHelper.SCROLL_DOWN_ENTER;\n } else {\n currInterest = currInterest | IntersectionHelper.SCROLL_DOWN_LEAVE;\n }\n } else if (currentY > previousY && isIntersecting) {\n if (currentRatio < previousRatio) {\n currInterest = currInterest | IntersectionHelper.SCROLL_UP_ENTER;\n } else {\n currInterest = currInterest | IntersectionHelper.SCROLL_UP_LEAVE;\n }\n }\n\n const now = this.getNow();\n const currentTick = {\n previousY: currentY,\n previousRatio: currentRatio,\n previousT: currentT,\n currentT: now,\n stay: currentStayRangeMap\n };\n const elapsedTime = now - currentT;\n const previousIndex = this.getNextIndex(previousRatio);\n const timeInPerSlot = elapsedTime;\n this.addStayTimeToSlot(currentStayRangeMap, timeInPerSlot, currInterest, this.range[previousIndex]);\n this.stayWeakMap.set(target, currentTick);\n\n for (const [key, cb] of Object.entries(this.interests)) {\n const index = +key;\n\n if (this.has(index, currInterest)) {\n cb && cb(entry, currentTick, {\n interests: currInterest,\n range: this.range\n });\n }\n }\n });\n };\n\n this.stayWeakMap = new WeakMap();\n this.interests = {};\n }\n\n has(k1, k2) {\n return (k1 & k2) !== 0;\n }\n\n cleanRangeStayTime(target) {\n const info = this.stayWeakMap.get(target);\n\n if (isUndefined(info === null || info === void 0 ? void 0 : info.stay)) {\n return;\n }\n\n this.stayWeakMap.delete(target);\n }\n\n getNow() {\n const n = window.performance && performance.now && performance.now();\n return n || Date.now();\n }\n\n register(interest, cb) {\n this.interests[interest] = cb;\n return this;\n }\n\n getNextIndex(point) {\n const r = this.range;\n let idx = 0;\n\n for (; idx < r.length; idx++) {\n if (point <= r[idx]) {\n break;\n }\n }\n\n return idx;\n }\n\n toFixed(s_num) {\n return Number(s_num).toFixed(2);\n }\n\n iteratorInRange(start, end, cb) {\n for (let idx = start; idx < end; idx++) {\n cb && cb(idx);\n }\n }\n\n addStayTimeToSlot(rangeStayTime, totalTime, scrollStatus, currentTriggerPoint) {\n if (typeof currentTriggerPoint === 'undefined') {\n return;\n }\n\n const rangeMap = rangeStayTime.get(scrollStatus) || new Map();\n const {\n times = 0\n } = rangeMap.get(currentTriggerPoint) || {};\n rangeMap.set(currentTriggerPoint, {\n times: totalTime + times\n });\n rangeStayTime.set(scrollStatus, rangeMap);\n }\n\n isNullOrUndefined(target, key) {\n return target[key] === null || typeof target[key] === 'undefined';\n }\n\n initEnhancedIntersectionObserver() {\n return args => {\n try {\n this.handleIntersect(args);\n } catch (e) {}\n };\n }\n\n enhancedViewStay(target) {\n var _a;\n\n var collected = {};\n\n try {\n const {\n SCROLL_DOWN_ENTER,\n SCROLL_UP_LEAVE\n } = IntersectionHelper;\n const stayMap = (_a = this.stayWeakMap.get(target)) === null || _a === void 0 ? void 0 : _a.stay;\n\n if (isUndefined(stayMap)) {\n return;\n }\n\n for (const [k, v] of stayMap.entries()) {\n let direction = 'bottom';\n\n if (k === SCROLL_DOWN_ENTER || k === SCROLL_UP_LEAVE) {\n direction = 'top';\n }\n\n v.forEach(({\n times\n }, threshHold) => {\n let prev;\n collected[`${threshHold}_${direction}`] = prev = collected[`${threshHold}_${direction}`] || 0;\n collected[`${threshHold}_${direction}`] += prev + times;\n });\n }\n\n this.cleanRangeStayTime(target);\n return collected;\n } finally {\n return collected;\n }\n }\n\n}\nIntersectionHelper.SCROLL_DOWN_ENTER = 1 << 0;\nIntersectionHelper.SCROLL_DOWN_LEAVE = 1 << 1;\nIntersectionHelper.SCROLL_UP_ENTER = 1 << 2;\nIntersectionHelper.SCROLL_UP_LEAVE = 1 << 3;","export default function WilIntersectionObserver(fn, option) {\n if (!window.IntersectionObserver) {\n return undefined;\n }\n\n const defaultOption = {\n root: null,\n rootMargin: \"0px\",\n threshold: [0]\n };\n let callBacks = fn;\n\n const observerHandle = function (intersectionObserverEntrys) {\n intersectionObserverEntrys.forEach(intersectionObserverEntry => {\n callBacks.forEach(fn => {\n fn(intersectionObserverEntry);\n });\n });\n };\n\n const observer = new IntersectionObserver(observerHandle, Object.assign({}, defaultOption, option));\n return observer;\n}\nexport * from './helper';","import { isBrowser } from \"../utils/index\";\nconst needHoldEvents = [\"click\"];\nconst fns = [];\n\nconst eventHandle = function (e) {\n fns.forEach(fn => fn(e));\n};\n\nneedHoldEvents.forEach(function (eventName) {\n if (isBrowser()) {\n document.addEventListener(eventName, eventHandle, true);\n }\n});\nexport default function eventCatch(fn) {\n fns.push(fn);\n}","import { LogEvent } from \"../index\";\nimport { deepFindLog, getClickPositionParams, isHtmlOrSvg } from \"../utils/index\";\nconst MESSAGE_EVENT_TYPE = \"heatmap_inner_message\";\nconst DEFAULT_CLICK_NAME = \"search_heatmap_click\";\nconst DEFAULT_ERROR_TYPE = \"heatmap_inner_error\";\nconst DEFAULT_ERROR_CLICK_TYPE = \"heatmap_inner_click_error\";\nconst DEFAULT_VERSION = \"-1\";\nconst DEFAULT_OPTIONS = {\n version: DEFAULT_VERSION,\n event: {\n click_name: DEFAULT_CLICK_NAME\n }\n};\n\nconst catchSyncErrors = (fn, errType = DEFAULT_ERROR_TYPE) => {\n return (...args) => {\n try {\n return fn(...args);\n } catch (err) {\n const tags = {\n error_type: errType\n };\n console.error(err);\n\n try {\n if (window.Slardar) {\n window.Slardar(\"Sentry\", Sentry => {\n Sentry.withScope(scope => {\n scope.setTags(tags);\n Sentry.captureException(err);\n });\n });\n }\n } catch (innerErr) {\n console.error(\"Sentry Error!\");\n }\n }\n };\n};\n\nexport class Heatmap {\n constructor(sendLog, options = DEFAULT_OPTIONS, wil) {\n this.cusEvent = document.createDocumentFragment();\n\n this.init = sendLog => {\n this.cusEvent.addEventListener(MESSAGE_EVENT_TYPE, catchSyncErrors(e => {\n const {\n detail\n } = e;\n this.onMessage(detail, sendLog, this.options);\n }));\n this.onClick();\n };\n\n this.onClick = () => {\n const {\n event\n } = this.options;\n const eventName = event && event.click_name || DEFAULT_CLICK_NAME;\n window.document.addEventListener(\"click\", catchSyncErrors(e => {\n const tgt = e.target;\n\n if (!isHtmlOrSvg(tgt)) {\n return;\n }\n\n const params = getClickPositionParams(e);\n\n if (params) {\n const area = this.findShowArea(tgt);\n this.cusEvent.dispatchEvent(new CustomEvent(MESSAGE_EVENT_TYPE, {\n detail: {\n tgt,\n logPath: [Object.assign(Object.assign({\n event: eventName\n }, params), area && {\n module_name: area\n })],\n info: {\n type: \"heatmap_click\"\n }\n }\n }));\n }\n }, DEFAULT_ERROR_CLICK_TYPE), true);\n };\n\n this.findShowArea = target => {\n if (!this.wil) {\n return undefined;\n }\n\n const attributeName = this.wil.config[\"data-log-view\"];\n const attributeExtraName = this.wil.config[\"data-log-extra\"];\n const log = deepFindLog(target, attributeName, attributeExtraName);\n\n if (log && log.length > 0) {\n let l = log.length;\n\n for (let i = 0; i < l; i++) {\n const {\n module_name\n } = log[i] || {};\n\n if (module_name) {\n return module_name;\n }\n }\n }\n\n return undefined;\n };\n\n this.onMessage = (data, sendLog, options) => {\n const {\n origin,\n pathname,\n search\n } = window.location;\n const {\n version = DEFAULT_VERSION\n } = options;\n const {\n tgt,\n logPath,\n info\n } = data;\n const log = {\n page_origin: origin,\n page_version: version,\n page_pathname: pathname,\n page_search: search\n };\n logPath.push(log);\n sendLog(new LogEvent(tgt, logPath, info));\n };\n\n this.adaptConfig = options => {\n return Object.assign(Object.assign(Object.assign({}, DEFAULT_OPTIONS), options), {\n event: Object.assign(Object.assign({}, DEFAULT_OPTIONS.event), options.event)\n });\n };\n\n this.options = this.adaptConfig(options);\n this.init(sendLog);\n this.wil = wil;\n }\n\n}","import { EventShim, EventTagerShim } from \"../EventTaget/index\";\nimport mutationObserver from \"../mutationObserver/index\";\nimport intersectionObserver, { IntersectionHelper } from \"../intersectionObserver/index\";\nimport eventCatch from \"../eventCatch/index\";\nimport { deepFindLog, isIntersecting, now, fixIosClick, getAttrFrom, findExtraLog, getClickPositionParams, debounce, isUndefined } from \"../utils/index\";\nimport { Heatmap } from \"../heatmap/index\";\nconst logAttributeMap = {\n \"data-log-view\": \"data-log-view\",\n \"data-log-click\": \"data-log-click\",\n \"data-log-extra\": \"data-log-extra\",\n \"data-log-render\": \"data-log-render\",\n \"data-log-outview\": \"data-log-outview\",\n \"data-log-view-stay\": \"data-log-view-stay\"\n};\nexport class LogEvent {\n constructor(target, logPath, info, wil) {\n this.type = info.type;\n Object.assign(this, info);\n this.log = Object.assign({}, ...[...logPath].reverse());\n this.path = logPath;\n this.target = target;\n this.time = now();\n this.wil = wil;\n }\n\n}\n\nclass WilIntersectionObserverEvent extends EventShim {\n constructor(type, event) {\n super(type);\n this.from = event;\n }\n\n}\n\nclass WilMutationObserverEvent extends EventShim {\n constructor(type, event) {\n super(type);\n this.from = event;\n }\n\n}\n\nclass WilClickEventEvent extends EventShim {\n constructor(type, event) {\n super(type);\n this.from = event;\n }\n\n}\n\nclass WilLogEvent extends EventShim {\n constructor(type, event) {\n super(type);\n this.from = event;\n }\n\n}\n\nclass WilEventTaget extends EventTagerShim {\n constructor(fn, option = {}) {\n super();\n\n this.focusCallBack = () => {\n this.updateStayTime();\n };\n\n this.blurCallBack = () => {\n this.dispatchStayLog();\n };\n\n this.options = option;\n const {\n intersectionOptions = {}\n } = option;\n this.observedElements = [];\n this.inViewElement = new Set();\n this.stayWeakMap = new WeakMap();\n this.viewOutWeakSet = new WeakSet();\n this.viewWeakSet = new WeakSet();\n this.outViewWeakSet = new WeakSet();\n this.config = Object.assign({}, logAttributeMap, option.attribute);\n\n if (!option.disableView) {\n const prev = e => {\n this.dispatchEvent(new WilIntersectionObserverEvent(\"intersectionObserver\", e));\n };\n\n const intersectionObserverCallbacks = [prev];\n this.intersectionObserver = intersectionObserver(intersectionObserverCallbacks, intersectionOptions);\n this.mutationObserver = mutationObserver(e => {\n this.dispatchEvent(new WilMutationObserverEvent(\"mutationObserver\", e));\n });\n }\n\n const intersectionObserverDebounced = this.options.intersectionObserverDebounced;\n\n if (!isUndefined(intersectionObserverDebounced)) {\n const {\n wait = 0,\n immediate = false\n } = intersectionObserverDebounced;\n this.intersectionObserveElements = debounce(observer => this._intersectionObserveElements(observer), wait, immediate);\n }\n\n this.init(fn);\n\n if (option.heatmapConfig) {\n new Heatmap(fn, option.heatmapConfig, this);\n }\n }\n\n init(fn) {\n eventCatch(event => {\n this.dispatchEvent(new WilClickEventEvent(\"clickEvent\", event));\n });\n this.addEventListener(\"intersectionObserver\", event => {\n this.handleIntersectionObserver(event);\n });\n this.addEventListener(\"mutationObserver\", event => {\n this.handleMutationObserver(event);\n });\n this.addEventListener(\"clickEvent\", event => {\n this.handleClickEvent(event);\n });\n this.listenLogEvent(fn);\n this.intersectionObserveElements(this.intersectionObserver);\n this.fixIOSSafari();\n }\n\n genarateDispatchEvent(target, log, params) {\n this.dispatchEvent(new WilLogEvent(\"logEvent\", new LogEvent(target, log, params, this)));\n }\n\n handleIntersectionObserver(event) {\n const e = event.from;\n const {\n target\n } = e;\n\n if (isIntersecting(e) && !this.viewWeakSet.has(target)) {\n if (this.dispatchViewLog(target)) {\n try {\n const config = JSON.parse(getAttrFrom(e, 'data-log-view-config') || '{}');\n\n if (!config['repeated']) {\n this.viewWeakSet.add(target);\n }\n } catch (e) {\n this.viewWeakSet.add(target);\n }\n }\n }\n\n const attributeName = this.config[\"data-log-view-stay\"];\n const attributeExtraName = this.config[\"data-log-extra\"];\n\n if (isIntersecting(e) && target.hasAttribute(attributeName)) {\n this.stayWeakMap.set(target, now());\n this.inViewElement.add(target);\n }\n\n if (!isIntersecting(e) && target.hasAttribute(attributeName)) {\n const startTime = this.stayWeakMap.get(target);\n this.inViewElement.delete(target);\n\n if (startTime) {\n const logJson = deepFindLog(target, attributeName, attributeExtraName);\n\n if (logJson) {\n this.genarateDispatchEvent(target, logJson, {\n type: \"view-stay\",\n duration: now() - startTime,\n startTime,\n endTime: now()\n });\n }\n }\n }\n\n if (true) {\n const attributeName = this.config[\"data-log-outview\"];\n const attributeExtraName = this.config[\"data-log-extra\"];\n\n if (isIntersecting(e) && target.hasAttribute(attributeName)) {\n this.viewOutWeakSet.add(target);\n }\n\n if (!isIntersecting(e) && !this.outViewWeakSet.has(target) && this.viewOutWeakSet.has(target)) {\n const log = deepFindLog(target, attributeName, attributeExtraName);\n\n if (log) {\n this.viewOutWeakSet.delete(target);\n this.outViewWeakSet.add(target);\n this.genarateDispatchEvent(target, log, {\n type: \"outview\"\n });\n }\n }\n }\n }\n\n fixIOSSafari() {\n if (document.body) {\n fixIosClick();\n } else {\n document.addEventListener(\"DOMContentLoaded\", () => {\n fixIosClick();\n });\n }\n }\n\n intersectionObserveElements(intersectionObserver) {\n this._intersectionObserveElements(intersectionObserver);\n }\n\n _intersectionObserveElements(intersectionObserver) {\n console.log('intersectionObserveElements!!!');\n const aboutViewAttributeName = [\"data-log-view\", \"data-log-view-stay\", \"data-log-outview\"];\n aboutViewAttributeName.map(key => this.config[key]).filter(i => !!i).map(attributeName => document.querySelectorAll(`[${attributeName}]`)).forEach(eles => {\n for (let i = 0; i < eles.length; i++) {\n if (intersectionObserver) {\n intersectionObserver.observe(eles[i]);\n }\n }\n });\n }\n\n handleMutationObserver(event) {\n const e = event.from;\n const attributeName = this.config[\"data-log-render\"];\n const extraAttribute = this.config[\"data-log-extra\"];\n\n if (e.type === \"childList\" && e.addedNodes && attributeName) {\n const addedNodes = e.addedNodes;\n\n for (let i = 0; i < addedNodes.length; i++) {\n const currentNode = addedNodes.item ? addedNodes.item(i) : addedNodes[i];\n\n if (currentNode && currentNode.nodeType === 1 && currentNode instanceof Element) {\n const items = currentNode.querySelectorAll(`[${attributeName}]`);\n\n if (currentNode.hasAttribute(attributeName)) {\n const log = deepFindLog(currentNode, attributeName, extraAttribute);\n\n if (log) {\n this.genarateDispatchEvent(currentNode, log, {\n type: \"render\"\n });\n }\n }\n\n for (let i = 0; i < items.length; i++) {\n const log = deepFindLog(items[i], attributeName, extraAttribute);\n\n if (log) {\n this.genarateDispatchEvent(items[i], log, {\n type: \"render\"\n });\n }\n }\n }\n }\n }\n\n this.intersectionObserveElements(this.intersectionObserver);\n this.fixIOSSafari();\n }\n\n handleClickEvent(e) {\n const event = e.from;\n this.handleMouseEvent(event);\n }\n\n handleMouseEvent(e) {\n const targetElement = e.target;\n\n if (targetElement && (targetElement instanceof HTMLElement || targetElement instanceof SVGElement) && targetElement.nodeType === 1 && e.type == \"click\") {\n const attributeName = this.config[\"data-log-click\"];\n const attributeExtraName = this.config[\"data-log-extra\"];\n const log = deepFindLog(targetElement, attributeName, attributeExtraName);\n\n if (log !== null) {\n const params = getClickPositionParams(e, log);\n params ? log.unshift(Object.assign({}, params)) : log;\n this.genarateDispatchEvent(targetElement, log, {\n type: \"click\"\n });\n }\n }\n }\n\n listenLogEvent(fn) {\n this.addEventListener(\"logEvent\", e => {\n const event = e.from;\n fn(event);\n });\n }\n\n updateStayTime() {\n this.inViewElement.forEach(ele => {\n this.stayWeakMap.set(ele, now());\n });\n }\n\n dispatchViewLog(target) {\n const attributeName = this.config[\"data-log-view\"];\n const attributeExtraName = this.config[\"data-log-extra\"];\n const log = deepFindLog(target, attributeName, attributeExtraName);\n\n if (log) {\n this.genarateDispatchEvent(target, log, {\n type: \"view\"\n });\n return true;\n }\n\n return false;\n }\n\n dispatchStayLog() {\n this.inViewElement.forEach(ele => {\n const startTime = this.stayWeakMap.get(ele);\n\n if (startTime) {\n const attributeName = this.config[\"data-log-view-stay\"];\n const attributeExtraName = this.config[\"data-log-extra\"];\n const logJson = deepFindLog(ele, attributeName, attributeExtraName);\n\n if (logJson) {\n this.genarateDispatchEvent(ele, logJson, {\n type: \"view-stay\",\n duration: now() - startTime,\n startTime,\n endTime: now()\n });\n }\n }\n });\n }\n\n}\n\nexport { WilEventTaget, deepFindLog, IntersectionHelper };\n\nfunction Wil(fn, option = {}) {\n return new WilEventTaget(fn, option);\n}\n\nWil.utils = {\n findExtraLog\n};\nexport default Wil;","import { EventShim, EventTagerShim } from \"../EventTaget/index\";\nimport { deepFindLog, now, noop } from \"../utils/index\";\nimport eventCatch from \"../eventCatch/index\";\nconst logAttributeMap = {\n \"data-log-view\": \"data-log-view\",\n \"data-log-click\": \"data-log-click\",\n \"data-log-extra\": \"data-log-extra\",\n \"data-log-render\": \"data-log-render\",\n \"data-log-outview\": \"data-log-outview\",\n \"data-log-view-stay\": \"data-log-view-stay\"\n};\nexport class LogEvent {\n constructor(target, logPath, info) {\n this.type = info.type;\n Object.assign(this, info);\n this.log = Object.assign({}, ...[...logPath].reverse());\n this.path = logPath;\n this.target = target;\n this.time = now();\n }\n\n}\n\nclass WilClickEventEvent extends EventShim {\n constructor(type, event) {\n super(type);\n this.from = event;\n }\n\n}\n\nclass WilLogEvent extends EventShim {\n constructor(type, event) {\n super(type);\n this.from = event;\n }\n\n}\n\nclass WilClickEventTaget extends EventTagerShim {\n constructor(fn, option = {}) {\n super();\n this.config = Object.assign({}, logAttributeMap, option.attribute);\n this.init(fn);\n }\n\n init(fn) {\n eventCatch(event => {\n this.dispatchEvent(new WilClickEventEvent(\"clickEvent\", event));\n });\n this.addEventListener(\"clickEvent\", event => {\n this.handleClickEvent(event);\n });\n this.listenLogEvent(fn);\n this.fixIOSSafari();\n }\n\n fixIOSSafari() {\n if (document.body) {\n for (let i = 0, nodes = document.body.childNodes; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && node.nodeType === 1) {\n node[\"onclick\"] = noop;\n }\n }\n } else {\n document.addEventListener(\"DOMContentLoaded\", function () {\n for (let i = 0, nodes = document.body.childNodes; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && node.nodeType === 1) {\n node[\"onclick\"] = noop;\n }\n }\n });\n }\n }\n\n handleClickEvent(e) {\n const event = e.from;\n this.handleMouseEvent(event);\n }\n\n handleMouseEvent(e) {\n const targetElement = e.target;\n\n if (targetElement && (targetElement instanceof HTMLElement || targetElement instanceof SVGElement) && targetElement.nodeType === 1 && e.type == \"click\") {\n const attributeName = this.config[\"data-log-click\"];\n const attributeExtraName = this.config[\"data-log-extra\"];\n const log = deepFindLog(targetElement, attributeName, attributeExtraName);\n\n if (log !== null) {\n this.dispatchEvent(new WilLogEvent(\"logEvent\", new LogEvent(targetElement, log, {\n type: \"click\"\n })));\n }\n }\n }\n\n listenLogEvent(fn) {\n this.addEventListener(\"logEvent\", e => {\n const event = e.from;\n fn(event);\n });\n }\n\n}\n\nexport default WilClickEventTaget;","import Wil, { LogEvent, WilEventTaget, IntersectionHelper } from \"./main/index\";\nimport WilClickEventTaget from \"./main/click\";\nexport { LogEvent, WilEventTaget, WilClickEventTaget, IntersectionHelper };\nexport default Wil;","import fetch from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\nimport { imageItem, resType } from '../types'\ninterface IUploadRes {\n message: string\n data: {\n format: string\n height: number\n width: number\n url_list: { url: string }[]\n }\n}\n// 配置开发url\nexport async function uploadImg(img: File): Promise<resType<IUploadRes>> {\n const form = new FormData()\n form.append('image', img)\n form.append('aid', '1839')\n form.append('app_name', 'auto_web_pc')\n\n try {\n const data: IUploadRes = await fetch(\n 'https://i.snssdk.com/feedback/image/v1/upload/',\n {\n method: 'POST',\n body: form,\n }\n )\n return {\n success: true,\n data,\n }\n } catch (err) {\n console.log(err)\n return {\n success: false,\n err,\n }\n }\n}\ninterface ISubmitRes {\n message: string\n feddback_id: number\n err_code: number\n}\n// document.cookie = 'test=' + getCookieProp('tt_webid') + ';domain=https://i-boe.snssdk.com/';\nexport async function submitFeedback(\n tel: string,\n content: string,\n image_list: imageItem[]\n): Promise<resType<ISubmitRes>> {\n const form = new URLSearchParams()\n form.append('aid', '1839')\n form.append('app_name', 'auto_web_pc')\n form.append('appkey', 'auto-web')\n form.append('content', content)\n form.append('contact', tel)\n form.append('iid', '')\n if (image_list.length === 1) {\n form.append('multi_image', '0') //一张图片\n for (const prop in image_list[0]) {\n form.append(prop, `${image_list[0][prop]}`)\n }\n } else if (image_list.length > 1) {\n form.append('multi_image', '1') //多张图片\n form.append('image_list', JSON.stringify(image_list))\n }\n try {\n const tea_cache = localStorage.getItem('__tea_cache_tokens_1839')\n const web_id = tea_cache ? JSON.parse(tea_cache).web_id : ''\n document.cookie = `device_id=${web_id}`\n const data: ISubmitRes = await fetch('/feedback/2/post_message/', {\n // credentials: \"include\",\n mode: 'cors',\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: form,\n })\n document.cookie = 'device_id=; expires=Thu, 01 Jan 1970 00:00:00 GMT' //设置超时时间 自动清除cookie\n return {\n success: true,\n data,\n }\n } catch (err) {\n document.cookie = 'device_id=; expires=Thu, 01 Jan 1970 00:00:00 GMT' //设置超时时间 自动清除cookie\n console.log(err)\n return {\n success: false,\n err,\n }\n }\n}\n","import React, { memo, useState, useMemo, createRef, useEffect } from 'react'\nimport Modal from 'Components/modal'\nimport Button from 'Components/button'\nimport Toast from './custom-toast'\nimport { Image } from 'Components/view-image'\nimport { uploadImg, submitFeedback } from './services'\nimport { imageItem } from './types'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport xss from 'xss'\ninterface Props {\n visible: boolean\n onClose: () => void\n}\n//发送 按钮的 埋点\nfunction sendBtnTea(button_name: string) {\n sendTeaCommEvent('clk_event', {\n event_id: 'common_feedback_window_btn',\n button_name,\n })\n}\nconst FeedbackModal: React.FC<Props> = ({ visible, onClose }) => {\n const [uploading, setUploading] = useState(false)\n const [content, setContent] = useState('')\n const [tel, setTel] = useState('')\n const [waringVisible, setWarnVisible] = useState<{\n empty: boolean\n tel_valid: boolean\n }>({\n empty: false,\n tel_valid: false,\n }) //内容为空警告是否可见\n const [isSubmit, setSubmit] = useState(false)\n\n const [imgList, setList] = useState<imageItem[]>([]) // 测试 数据\n //input 引用\n const inputRef = createRef<HTMLInputElement>()\n\n //内容的长度\n const contentLength = useMemo(() => content.length, [content])\n const telLength = useMemo(() => tel.length, [tel])\n //最大长度\n const maxLength = 300\n const isOutRange = useMemo(() => contentLength > 300, [contentLength])\n\n //窗口 关闭 清楚所有的数据\n function closeHandler() {\n onClose()\n setContent('')\n setTel('')\n setList([])\n setSubmit(false)\n setWarnVisible({\n empty: false,\n tel_valid: false,\n })\n sendBtnTea('取消')\n }\n //提及\n async function submit() {\n sendBtnTea('提交')\n let empty = false\n let tel_valid = false\n contentLength === 0 && (empty = true)\n tel && !/^\\d{11}$/.test(tel) && (tel_valid = true)\n\n if (empty || tel_valid) {\n setWarnVisible({\n empty,\n tel_valid,\n })\n return\n }\n if (isOutRange) return\n const res = await submitFeedback(tel, xss.filterXSS(content), imgList) //添加 xss 防御\n if (res.success && res.data.err_code === 0) {\n closeHandler()\n setSubmit(true)\n } else {\n Toast.error(\n {\n title: '反馈失败',\n isModal: false,\n getContainer: () => document.body,\n },\n 1000\n )\n }\n }\n //保证 modal 关闭 并且成功提及 成功 才显示弹框\n useEffect(() => {\n if (!visible && isSubmit) {\n Toast.success(\n {\n title: '反馈成功',\n isModal: false,\n getContainer: () => document.body,\n },\n 1500\n )\n }\n }, [isSubmit])\n //图片选择\n async function imgChoose(files: FileList | null) {\n if (inputRef.current) {\n // 切换修改一下type 否则 不能提交同一个图片\n inputRef.current.type = 'text'\n inputRef.current.type = 'file'\n }\n if (!files || files.length === 0) {\n return\n }\n\n // 最大不能超过5M\n if (files[0]?.size > 1024 * 1024 * 5) {\n Toast.error(\n {\n title: '图片不能超过5Mb',\n isModal: false,\n getContainer: () => document.body,\n },\n 1000\n )\n return\n }\n try {\n setUploading(true)\n const res = await uploadImg(files[0])\n setUploading(false)\n if (res.success) {\n const { height, width, url_list } = res.data.data\n setList([\n ...imgList,\n {\n image_height: height,\n image_width: width,\n image_uri: url_list[0].url,\n },\n ])\n return\n }\n } catch (error) {\n console.error(error)\n }\n setUploading(false)\n Toast.error(\n {\n title: '上传图片异常请重试',\n isModal: false,\n getContainer: () => document.body,\n },\n 1000\n )\n }\n const footer = (\n <section className=\"footer\">\n <Button\n style={{\n border: 'solid 0.5px #c9cbd6',\n }}\n className=\"btn cancel\"\n onClick={() => closeHandler()}\n >\n 取消\n </Button>\n <Button type=\"new_primary\" className=\"btn submit\" onClick={submit}>\n 提交\n </Button>\n </section>\n )\n // 模态框 展示就 出发埋点\n useEffect(() => {\n if (visible) {\n // 埋点 触发\n sendTeaCommEvent('show_event', {\n event_id: 'common_feedback_window',\n })\n }\n }, [visible])\n\n return (\n <div className=\"feedback-modal-wapper\">\n <Modal\n visible={visible}\n timeout={{\n appear: 100,\n enter: 100,\n exit: 0,\n }}\n closable={true}\n onClose={() => {\n closeHandler()\n }}\n title=\"用户反馈\"\n height={685}\n width={528}\n getContainer={() =>\n document.querySelector('.feedback-modal-wapper') as HTMLElement\n }\n className=\"feedback-modal\"\n footer={footer}\n >\n <section className=\"feedback-form\">\n <div className=\"form-item\">\n <div className=\"title\">\n <div className=\"text\">\n <span className=\"required-icon\">*</span> 问题描述\n </div>\n </div>\n <div\n className={[\n 'input',\n 'textarea-wapper',\n isOutRange || waringVisible.empty ? 'input warning-box' : '',\n ].join(' ')}\n >\n <textarea\n rows={2}\n placeholder=\"请描述您反馈的内容或遇到的问题\"\n autoFocus={true}\n spellCheck={false}\n maxLength={maxLength}\n onChange={(e) => {\n setContent(e.target.value)\n if (e.target.value.length > 0 && waringVisible) {\n setWarnVisible({\n ...waringVisible,\n empty: false,\n })\n }\n }}\n />\n {/* 字数统计和 超限提示 */}\n <div\n className={['count-wapper', isOutRange ? 'warning' : ''].join(\n ' '\n )}\n >\n {isOutRange && <span>字数已超限</span>}\n <span className=\"count\">{`${contentLength}/${maxLength}`}</span>\n </div>\n {/* 提交时 内容为空提示 */}\n {waringVisible.empty && (\n <div className=\"empty warning\">还未填写问题描述</div>\n )}\n </div>\n </div>\n <div className=\"form-item\">\n <div className=\"title title-flex\">\n <span className=\"text\">联系方式</span>\n <span className=\"desc\">\n 请留下您的电话号码以便工作人员取得联系\n </span>\n </div>\n <div className=\"input\">\n <input\n type=\"text\"\n className=\"tel\"\n onChange={(e) => setTel(e.target.value)}\n spellCheck={false}\n maxLength={11}\n value={tel}\n placeholder=\"请输入手机号\"\n />\n {telLength > 0 && (\n <div\n className=\"clear-wapper\"\n onClick={() => {\n setTel('')\n setWarnVisible({\n ...waringVisible,\n tel_valid: false,\n })\n }}\n >\n <span className=\"clear-icon\" />\n </div>\n )}\n {waringVisible.tel_valid && (\n <div className=\"tel-valid warning\">电话号码格式不正确</div>\n )}\n </div>\n </div>\n <div className=\"form-item\">\n <div className=\"title title-flex\">\n <span className=\"text\">相关图片</span>\n <span className=\"desc\">\n 可上传 JPG/JPEG/PNG格式,单张图片不超过5Mb,最多传3张图片\n </span>\n </div>\n <div className=\"input img-choose\">\n {imgList.map((item, index) => {\n return (\n <div className=\"img-item\" key={item.image_uri}>\n <Image src={item.image_uri} height={144} width={144} />\n <div\n className=\"remove\"\n onClick={() => {\n imgList.splice(index, 1)\n setList([...imgList])\n }}\n >\n <span className=\"remove-icon\" />\n </div>\n </div>\n )\n })}\n\n {imgList.length < 3 && (\n <section\n className=\"img-add\"\n onClick={() => inputRef.current?.click()}\n >\n <div className={`wapper ${uploading ? 'loading' : ''}`}>\n <div className=\"img-icon\" />\n <div className=\"text\">\n {uploading ? '上传中...' : '添加图片'}\n </div>\n </div>\n <input\n type=\"file\"\n style={{\n display: 'none',\n }}\n accept=\"image/png,image/jpeg,image/jpg\"\n ref={inputRef}\n onChange={(e) => imgChoose(e.target.files)}\n />\n </section>\n )}\n </div>\n </div>\n </section>\n </Modal>\n <style jsx>\n {`\n .feedback-modal-wapper {\n font-family: PingFangSC;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n }\n .feedback-modal-wapper :global(.feedback-modal .modal-title) {\n text-align: left;\n }\n .feedback-modal-wapper :global(.feedback-modal) {\n z-index: 99999;\n }\n :global(.modal-container) {\n border-radius: 4px;\n }\n :global(.feedback-modal .footer) {\n display: flex;\n justify-content: space-between;\n }\n :global(.feedback-modal .modal-container .modal-header) {\n padding: 24px 40px;\n }\n :global(.feedback-modal .modal-container .modal-body) {\n padding: 0 40px;\n }\n :global(.feedback-modal .modal-container .modal-footer) {\n padding: 24px 40px;\n }\n :global(.feedback-modal .modal-container .modal-close:hover) {\n color: #e62021;\n }\n :global(.feedback-modal .footer .btn) {\n width: 220px;\n height: 44px;\n border-radius: 2px;\n line-height: 44px;\n font-size: 16px;\n }\n :global(.feedback-modal .footer .btn.cancel:hover) {\n background-color: #e6e8f2;\n color: #1f2129;\n }\n :global(.feedback-modal .footer .btn.submit:hover) {\n background-color: #f5c530;\n color: #1f2129;\n }\n :global(.feedback-modal .modal-container .modal-close) {\n font-size: 20px;\n width: 20px;\n height: 20px;\n }\n .form-item {\n margin-top: 14px;\n }\n .form-item:first-of-type {\n margin-top: 0;\n }\n .form-item .title {\n margin-bottom: 12px;\n }\n .form-item .text {\n font-size: 14px;\n font-weight: 500;\n }\n .img-item {\n position: relative;\n }\n .img-item .remove {\n position: absolute;\n top: 0;\n right: 0;\n height: 20px;\n width: 20px;\n border-radius: 2px;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n }\n :global(.feedback-modal .img-item img) {\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.06);\n }\n .remove .remove-icon {\n height: 12px;\n width: 12px;\n display: block;\n background: url(${require('./static/remove.png')}) no-repeat 0 0 /\n cover;\n }\n .title-flex {\n display: flex;\n justify-content: start;\n align-items: center;\n }\n .form-item .desc {\n font-size: 12px;\n color: #979aa8;\n margin-left: 16px;\n }\n .required-icon {\n color: #e62021;\n font-size: 14px;\n font-family: PingFangSC;\n }\n textarea {\n width: 100%;\n padding: 12px 16px 8px;\n height: 160px;\n resize: none; /*隐藏右下角的缩放按钮 */\n border-radius: 2px;\n border: solid 1px #f7f8fc;\n background-color: #f7f8fc;\n }\n textarea:focus {\n outline: none;\n }\n .input.textarea-wapper {\n border: 1px solid transparent;\n padding-bottom: 10px;\n }\n .input.warning-box {\n border-color: red;\n }\n textarea::placeholder,\n input::placeholder {\n font-size: 14px;\n line-height: 1.43;\n color: #979aa8;\n }\n .input {\n position: relative;\n background: #f7f8fc;\n border-radius: 2px;\n }\n .count-wapper {\n position: absolute;\n bottom: 1px;\n right: 16px;\n font-size: 12px;\n line-height: 1.43;\n color: #979aa8;\n }\n .count {\n margin-left: 8px;\n font-size: 12px;\n }\n .warning {\n color: #e62021;\n }\n .empty {\n position: absolute;\n left: 16px;\n bottom: 8px;\n font-size: 12px;\n }\n .tel {\n width: 448px;\n height: 54px;\n border-radius: 2px;\n background-color: #f7f8fc;\n padding: 17px 17px 17px 16px;\n }\n .tel:focus {\n outline: none;\n }\n .tel-valid {\n position: absolute;\n right: 40px;\n bottom: 8px;\n font-size: 12px;\n top: 50%;\n transform: translateY(-50%);\n }\n .clear-wapper:hover {\n background-color: #1f2129;\n }\n .clear-wapper {\n position: absolute;\n right: 16px;\n top: 50%;\n transform: translateY(-50%);\n height: 16px;\n width: 16px;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.4);\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .clear-wapper .clear-icon {\n height: 10px;\n width: 10px;\n display: block;\n background: url(${require('./static/remove.png')}) no-repeat 0 0 /\n cover;\n }\n .img-choose {\n display: flex;\n background: none;\n }\n .img-add {\n width: 144px;\n height: 144px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 2px;\n border: dashed 0.5px #c9cbd6;\n cursor: pointer;\n }\n .img-add:hover {\n background-color: #f7f8fc;\n }\n :global(.img-choose > *) {\n margin-left: 8px;\n }\n :global(.img-choose *:first-child) {\n margin-left: 0px;\n }\n\n .img-add .wapper {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n .img-add .img-icon {\n height: 24px;\n width: 24px;\n background: url(${require('./static/img.png')}) no-repeat 0 0 /\n cover;\n margin-bottom: 4px;\n }\n .loading .img-icon {\n height: 24px;\n width: 24px;\n background: url(${require('./static/loading.gif')}) no-repeat 0 0 /\n cover;\n margin-bottom: 4px;\n }\n .img-add .text {\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n color: #979aa8;\n }\n `}\n </style>\n </div>\n )\n}\n\nexport default memo(FeedbackModal)\n","import React, { useCallback, useEffect, useState } from 'react'\nimport PubSub from 'pubsub-js'\nimport FeedbackModal from '../feedback-modal'\nimport Protal from 'Components/portal'\nimport useWindowLoaded from 'Components/hooks/use-window-loaded'\n\nexport default function ProtalModal() {\n // 反馈 窗口 是否打开\n const [feedbackVisible, setVisible] = useState(false)\n function openFeedback() {\n setVisible(true)\n }\n function closeFeedback() {\n setVisible(false)\n }\n\n const handler = useCallback((type, value) => {\n openFeedback()\n }, [])\n\n useEffect(() => {\n const token = PubSub.subscribe('OPEN_FEEDBACK', handler)\n return () => {\n PubSub.unsubscribe(token)\n }\n }, [])\n\n const isLoaded = useWindowLoaded()\n\n return (\n <Protal getContainer={() => document.body}>\n {isLoaded ? (\n <FeedbackModal visible={feedbackVisible} onClose={closeFeedback} />\n ) : null}\n </Protal>\n )\n}\n","/* eslint-disable no-unused-expressions */\nimport { logger, metrics } from './slardar-utils'\nimport { handleAsPath } from 'lib/utils'\nimport getUrl from 'lib/url'\nimport fetch from 'lib/decorated-fetch'\n\nexport default async function (params: any) {\n let seriesIds: any[] = []\n\n switch (params.page_id) {\n case 'page_car_series_home':\n case 'page_series_home':\n case 'page_series_real_picture':\n case 'page_series_picture_detail':\n seriesIds = [params.car_series_id]\n break\n case 'page_series_configuration':\n // 获取url上的车型ids\n try {\n const cardIds = handleAsPath(window?.location?.href)?.carIds\n if (cardIds) {\n seriesIds = await getSeriesIdFromCardsId(cardIds)\n }\n } catch (error) {\n logger.warn(\n `[get seariesId from cardIds] Error, err: ${error?.message}`\n )\n }\n }\n let visitedSeries: any[] = []\n try {\n visitedSeries = JSON.parse(localStorage.getItem('visited_series') || '[]')\n } catch (err) {\n metrics.counter('json.parse.fail', { key: 'visited_series' })\n logger.warn(`[json parse fail] Error parsing json, err: ${err?.message}`)\n }\n\n if (seriesIds?.length) {\n let storedSeries: any[] = []\n // eslint-disable-next-line no-unused-expressions\n seriesIds?.forEach((seriesId: any) => {\n // 以浏览时间 顺序\n storedSeries = Array.from(new Set(visitedSeries).add(String(seriesId)))\n // 如果之前已经浏览过该车系,则需要更新其浏览顺序到最新\n storedSeries.splice(\n storedSeries.findIndex((e) => String(e) === String(seriesId)),\n 1\n )\n storedSeries.push(String(seriesId))\n })\n\n try {\n // 最多保存 50条\n if (storedSeries?.length > 50) {\n storedSeries = storedSeries.slice(storedSeries?.length - 50)\n }\n localStorage.setItem('visited_series', JSON.stringify(storedSeries))\n } catch (err) {\n metrics.counter('localStorage.setItem', { key: 'visited_series' })\n logger.warn(\n `[localstorage setitem error] Error setting localstorage, err: ${err?.message}`\n )\n }\n }\n}\n\n// 通过车型id匹配对应的车系id\nasync function getSeriesIdFromCardsId(carIds: string): Promise<any[]> {\n const result: any[] = []\n try {\n const json = await fetch(\n getUrl(`/cloud/api/invoke/get_info_by_carIds?car_ids=${carIds}`)\n )\n Object.values(json)?.forEach((item: any) => {\n if (item?.series_id && !result?.includes(item?.series_id)) {\n result?.push(item?.series_id)\n }\n })\n } catch (err) {\n logger.warn(`[get seriresId from cardsId] Error, err: ${err?.message}`)\n }\n console.log('result', result)\n return result\n}\n","/* eslint-disable no-unused-expressions */\nif (typeof window !== 'undefined') {\n require('../client/polyfills')\n}\n\nimport React, { createContext } from 'react'\nimport cookie from 'cookie'\nimport App from 'next/app'\nimport Head from 'next/head'\nimport { withRouter } from 'next/router'\nimport NProgress from 'nprogress'\nimport 'styles/reset.css'\nimport 'styles/font.css'\nimport 'swiper/swiper-bundle.css'\nimport 'static/iconfont/iconfont.css'\nimport 'static/din-font/iconfont.css'\nimport 'styles/emoji.css'\nimport 'styles/globals.css'\nimport Header2 from 'Components/header2'\nimport Header3 from 'Components/header3'\nimport NewHeader, { headerTop } from 'Components/new-header'\nimport BackToTop from 'Components/back-to-top'\nimport RightSideNavigation from 'Components/right-side-navigation'\nimport { GlobalStoreProvider } from 'Components/store'\nimport { CacheStoreProvider } from 'Components/cache-store'\nimport getPageEnterId, { getPageId } from 'lib/page-enter'\nimport registRealUser, { isRealUser } from 'lib/is-real-user'\nimport { getZT } from 'lib/zt-util'\nimport teaInit, {\n sendTeaEnterEvent,\n sendTeaStayEvent,\n sendTeaCommEvent,\n teaConfig,\n teaStart,\n Tea,\n setPageId,\n} from 'lib/tea-analyze'\nimport { sendTeaLocationEvent } from 'lib/get-location'\nimport { logger, metrics } from 'lib/slardar-utils'\nimport SideNav from 'New/side-nav'\nimport isScroll from 'lib/routeChangeScroll'\nimport isCusPageEnter from 'lib/cusPageEnter'\nimport LoginStoreProvider from 'New/login/login-store'\nimport { isNewVersion } from 'lib/version'\nimport Wil from '@fe/wil'\nimport FeadbackProtalModal from 'New/side-nav/components/protal-modal'\nimport setVisitedSeries from 'lib/set-visited-series'\nimport { setPageType } from 'Components/hooks/use-side-nav-status'\nimport InnerLink from 'Components/new/inner-link'\nimport OuterLink from 'Components/new/outer-link'\nimport APIIntercept from './_app.api.intercept'\nimport { createRootObserver, setReferrer } from 'lib/referrer'\nimport * as FingerPrint from '@byted-ucenter/ttwid-finger-print'\n\nNProgress.configure({\n template: `<div class=\"bar ${headerTop}\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>`,\n})\n\nconst acrawler = require('@byted/acrawler')\n\n// const LiveStreamWindow = dynamic(\n// () => import('Components/live-stream-window'),\n// {\n// ssr: false,\n// }\n// )\n// 直播小窗加载时机延后\n// const LiveStreamWindowCtrl = () => {\n// const isLoaded = useWindowLoaded()\n// return isLoaded ? <LiveStreamWindow /> : null\n// }\n\nexport const SpiderContext = createContext(\n {} as {\n isSpider: boolean\n }\n)\n\nclass MyApp extends App {\n mainRef: React.RefObject<HTMLDivElement>\n\n paddingStyle: string\n\n rootObserver: MutationObserver | null\n\n unbindRealUser: () => any\n\n constructor(props: any) {\n super(props)\n this.rootObserver = null\n this.mainRef = React.createRef()\n this.paddingStyle = '0'\n this.unbindRealUser = null!\n setPageType(props.pageProps?._pageType)\n if (typeof window !== 'undefined') {\n try {\n if (\n JSON.parse(window.localStorage.getItem('pipSelected') || 'null') ===\n null\n ) {\n window.localStorage.setItem('pipSelected', JSON.stringify(true))\n }\n } catch (e) {\n metrics.counter(\n `[read_pip_error] Failed to read pipSelected from localstorage. Error message = ${\n (e as any).message\n }`\n )\n }\n }\n }\n\n initSlardar(url = '') {\n const cookies = cookie.parse(document.cookie)\n const extraArr: string[] = []\n const pageId = getPageId(url) || url\n\n window.Slardar('config', {\n sampleRate: 1,\n bid: 'motor_pc',\n pid: pageId,\n ignoreAjax: ['mcs.snssdk.com'],\n hookFetch: true,\n ignoreStatic: [],\n context: {\n tt_web_version: cookies?.tt_web_version || 'old',\n domain: window?.location?.host || 'unknow',\n extra: extraArr.join('_'),\n web_id: cookies?.tt_webid || '',\n },\n })\n }\n\n /* eslint-disable complexity */\n componentDidMount() {\n // 设置referrer相关\n setReferrer()\n this.rootObserver = createRootObserver()\n\n // global_id指纹收集\n FingerPrint.reportFingerprintInfo({ aid: 1839 })\n\n if (this.props?.pageProps?._pageType === 'error') {\n return\n }\n\n const cookies = cookie.parse(document.cookie)\n const webIdCookie = cookies?.tt_webid\n\n if (window.history.scrollRestoration) {\n window.history.scrollRestoration = 'manual'\n }\n\n let pageId = ''\n const { router } = this.props\n const routerPath = router.asPath || ''\n\n /** 当打开新tab时,浏览器可能复制当前sessionStorage到新的标签\n * 更多参考https://blog.techbridge.cc/2020/09/05/session-storage-and-html-spec/\n * 而pre_page_id的更新仅在当前页面切换时触发\n * url: A->(当前窗口切换) B->(新tab)-> C.\n * pre_page_id: '' -> A ->A, (所以c页面上报了pre_page_id=A 不符合预期, 需要新开页面时清掉pre_page_id)\n **/\n sessionStorage?.setItem('pre_page_id', '')\n\n const params = getPageEnterId(routerPath)\n pageId = params?.page_id ?? ''\n if (params.page_id === '') {\n metrics.counter('empty_page_id', {\n routerPath,\n })\n }\n // 首次渲染时初始化slardar\n this.initSlardar(routerPath)\n\n teaInit({\n appId: 1839,\n zt: getZT(),\n enable_stay_duration: true,\n maxDuration: 24 * 60 * 60 * 1000,\n })\n teaConfig({\n evtParams: {\n page_id: params?.page_id,\n },\n user_unique_id: webIdCookie || '',\n pc_real_user: isRealUser() ? true : false,\n })\n\n // 全局城市埋点\n sendTeaLocationEvent('init_top_location')\n\n if (params.page_id === 'page_pgc_video_detail') {\n teaConfig({\n evtParams: {\n content_type: 'pgc_video',\n group_id: (this.props.pageProps as any).gid,\n author_id: (this.props.pageProps as any).info?.media_user?.id,\n },\n })\n }\n let userData\n try {\n userData = JSON.parse(cookies.user_data)\n } catch (error) {\n metrics.counter('user_data.parse.exception', {\n userData: cookies.user_data,\n })\n logger.warn(\n `[user_data parsing failed] userData = ${cookies.user_data} error = ${\n (error as any).message\n }`\n )\n }\n let is_dev\n let is_boe\n try {\n is_dev = JSON.parse(cookies.is_dev || 'null')\n is_boe = JSON.parse(cookies.is_boe || 'null')\n } catch (error) {\n metrics.counter('env.parse.exception')\n logger.warn(`[env parsing failed] error = ${(error as any).message}`)\n }\n if (userData) {\n teaConfig({\n user_id: userData?.user_id,\n user_is_login: true,\n })\n } else {\n teaConfig({\n user_is_login: false,\n })\n }\n if (is_dev || is_boe) {\n teaConfig({\n _staging_flag: 1,\n })\n }\n teaConfig({\n tt_web_version: cookies?.tt_web_version || 'old',\n })\n\n if (cookies?._ttwidexp === '1') {\n metrics.counter('ttwid.exp')\n logger.error(`[ttwid_exp] webIdCookie=${webIdCookie}`)\n }\n if (webIdCookie) {\n teaStart()\n }\n\n if (isNewVersion() && isCusPageEnter(params?.page_id)) {\n setPageId(params.page_id)\n //do nothing 页面自定义处理 sendTeaEnterEvent\n } else {\n sendTeaEnterEvent(params)\n }\n setVisitedSeries(params)\n router.events.on('routeChangeStart', (url) => {\n // 前端路由变化时初始化slardar\n this.initSlardar(url)\n requestAnimationFrame(() => {\n NProgress.start()\n NProgress.set(0.5)\n })\n\n teaConfig({\n zt: getZT(),\n })\n sendTeaStayEvent()\n // 如果左侧有唤起浮层侧边栏则跳转需要隐藏\n // PubSub.publish('OPEN_FIX_NAV', false)\n })\n\n // 首页因为雷达图性能问题不加埋点\n Wil(\n function (logEvent) {\n const {\n event: teaEvent,\n params,\n ...extra\n } = logEvent.log as {\n event: string\n params: any\n }\n\n const teaParams = { ...extra, ...params }\n\n if (logEvent.type === 'view-stay') {\n teaParams.stay_time = (logEvent as any).duration\n }\n console.log('==wil tea:', teaEvent, teaParams)\n sendTeaCommEvent(teaEvent, teaParams)\n },\n {\n intersectionObserverDebounced: {\n wait: 200,\n immediate: false,\n },\n }\n )\n\n router.events.on('routeChangeComplete', (url: string) => {\n teaConfig({\n pc_real_user: isRealUser() ? true : false,\n })\n const params = getPageEnterId(url)\n setVisitedSeries(params)\n if ((Tea as any)?.resetStayDuration) {\n ;(Tea as any).resetStayDuration(router?.asPath, document?.title, url)\n }\n\n teaConfig({\n evtParams: {\n page_id: params?.page_id,\n },\n })\n\n pageId = params?.page_id ?? ''\n\n // console.log('routeChangeComplete', url)\n requestAnimationFrame(() => {\n NProgress.done()\n })\n if (isScroll(params.page_id)) {\n try {\n window.scrollTo(0, 0)\n } catch (e) {\n // 兼容性降级,不需要监控\n }\n }\n\n if (isNewVersion() && isCusPageEnter(params?.page_id)) {\n //do nothing 页面自定义处理 sendTeaEnterEvent\n return\n }\n if (params.page_id === 'page_pgc_video_detail') {\n teaConfig({\n evtParams: {\n content_type: 'pgc_video',\n group_id: (this.props.pageProps as any).gid,\n author_id: (this.props.pageProps as any).info?.media_user?.id,\n },\n })\n } else {\n teaConfig({\n evtParams: {\n content_type: undefined,\n group_id: undefined,\n author_id: undefined,\n },\n })\n }\n sendTeaEnterEvent(params)\n })\n router.events.on('routeChangeError', (url) => {\n requestAnimationFrame(() => {\n NProgress.done()\n })\n })\n router.beforePopState(({ as }) => {\n // ie9不支持history\n if (!window.history || !window.history.pushState) {\n window.open(as)\n // window.location.href = as\n return false\n }\n return true\n })\n\n // const scrollBarWidth =\n // window.innerWidth -\n // (document.documentElement || document.body).clientWidth\n // if (scrollBarWidth > 0) {\n // const node = this.mainRef.current\n // if (node && !/(theater|full)/.test(this.props.pageProps?._pageType)) {\n // node.style.paddingRight = `calc(4% - ${scrollBarWidth}px)`\n // }\n // }\n\n // PubSub.subscribe('modify-padding', (eventName: string, signal: 0 | 1) => {\n // if (!this.mainRef.current) {\n // return\n // }\n // if (signal === 0) {\n // this.mainRef.current.style.padding = '0'\n // } else {\n // this.mainRef.current.style.padding = `0 calc(4% - ${scrollBarWidth}px) 0 4%`\n // }\n // })\n\n this.unbindRealUser = registRealUser()\n }\n\n componentWillUnmount() {\n if (this.unbindRealUser) {\n this.unbindRealUser()\n }\n this.rootObserver?.disconnect()\n }\n\n renderHeader = (_pageType: string | undefined) => {\n if (_pageType) {\n return <NewHeader pageType={_pageType} />\n }\n const { router } = this.props\n const routerPath = router.asPath || ''\n const params = getPageEnterId(routerPath)\n if (\n [\n 'page_series_home',\n 'page_series_video_list',\n 'page_series_article_list',\n 'page_series_qa_list',\n ].includes(params?.page_id || '')\n ) {\n return <Header3 />\n }\n return <Header2 />\n }\n\n renderContent = (props: any) => {\n const { Component, pageProps } = props\n if (!pageProps?._pageType) {\n return (\n <main>\n <Component {...pageProps} />\n </main>\n )\n }\n\n return (\n <div\n className=\"tw-flex\"\n style={{\n maxWidth: 1920,\n minWidth: 1024,\n margin: '0 auto',\n ...pageProps?._rootStyle,\n }}\n >\n {pageProps?._pageType?.indexOf('no-nav') > -1 ? null : <SideNav />}\n <div\n className={`new-main ${pageProps?._pageClassName || ''} ${\n pageProps?._pageType || ''\n }`}\n ref={this.mainRef}\n >\n <Component {...pageProps} />\n {!!pageProps?.innerList?.length && (\n <InnerLink linkList={pageProps?.innerList} />\n )}\n {!!pageProps?.outerList?.length && (\n <OuterLink linkList={pageProps?.outerList} />\n )}\n </div>\n </div>\n )\n }\n\n render() {\n const { pageProps, router, Component } = this.props\n if (\n router?.asPath?.indexOf('/404') === 0 ||\n router?.route?.indexOf('/404') === 0\n ) {\n if (typeof window !== 'undefined') {\n pageProps._pageType = isNewVersion() ? 'new' : ''\n pageProps._pageClassName = 'page-404'\n } else {\n return null!\n }\n }\n\n // 如果是错误页,什么额外组件都不要,避免进入死循环\n if (pageProps?._pageType === 'error') {\n return <Component {...pageProps} />\n }\n\n return (\n <>\n <Head>\n <title key=\"title\">懂车帝 - 说真的还得懂车帝\n \n \n \n \n {/* csrf 防护 */}\n \n \n \n \n \n {this.renderHeader(pageProps?._pageType)}\n {this.renderContent(this.props)}\n {pageProps?._pageType ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n )\n }\n}\n\nMyApp.getInitialProps = async (appContext) => {\n const appProps = await App.getInitialProps(appContext)\n if (appProps.pageProps) {\n const { asPath } = appContext.ctx\n const hasUrlCity =\n asPath?.indexOf('city_name') !== -1 || asPath?.indexOf('cityName') !== -1\n appProps.pageProps.__hasUrlCity = hasUrlCity\n appProps.pageProps.isSpider = (appContext.ctx.req as any)?.isSpider\n }\n return { ...appProps }\n}\n\nexport default withRouter(MyApp)\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./ttwid\"), exports);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar axios_1 = tslib_1.__importDefault(require(\"axios\"));\n\nvar BFP = tslib_1.__importStar(require(\"@douyin-web/browser-finger-print\"));\n\nvar timeout = 3000;\nvar config = {\n timeout: timeout,\n withCredentials: true,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n};\n/**\n * s收集浏览器特征值\n * @returns { Promise }\n */\n\nexports.collectFingerprintInfo = function () {\n return tslib_1.__awaiter(void 0, void 0, void 0, function () {\n var components, values, hash;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , BFP.get()];\n\n case 1:\n components = _a.sent();\n values = {};\n hash = BFP.hashComponents(components);\n Object.keys(components).forEach(function (key) {\n values[key] = components[key].value || '';\n });\n return [2\n /*return*/\n , {\n info: values,\n id: hash\n }];\n }\n });\n });\n};\n\nvar reportInfo = function (option) {\n return tslib_1.__awaiter(void 0, void 0, void 0, function () {\n var aid, _a, host, _b, info, id, res, error_1;\n\n return tslib_1.__generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n aid = option.aid, _a = option.host, host = _a === void 0 ? '' : _a;\n _c.label = 1;\n\n case 1:\n _c.trys.push([1, 5,, 6]);\n\n return [4\n /*yield*/\n , exports.collectFingerprintInfo()];\n\n case 2:\n _b = _c.sent(), info = _b.info, id = _b.id;\n if (!(id && info)) return [3\n /*break*/\n , 4];\n return [4\n /*yield*/\n , axios_1.default.post(host + \"/ttwid/report_fingerprint/\", {\n aid: aid,\n fingerprint_values: info,\n fingerprint_id: id\n }, config)];\n\n case 3:\n res = _c.sent();\n\n if (res.data.status_code !== 0) {\n throw new Error(res.data.message);\n }\n\n return [2\n /*return*/\n , res.data || res];\n\n case 4:\n throw new Error('获取指纹信息失败');\n\n case 5:\n error_1 = _c.sent();\n console.error(error_1);\n throw error_1;\n\n case 6:\n return [2\n /*return*/\n ];\n }\n });\n });\n};\n\nvar requestIdleCallback = function (func) {\n if (typeof window !== 'undefined' && window.requestIdleCallback) {\n window.requestIdleCallback(func);\n } else {\n setTimeout(func, 50);\n }\n};\n\nexports.reportFingerprintInfo = function (option) {\n requestIdleCallback(function () {\n reportInfo(option);\n });\n};","\"use strict\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.get = void 0;\n\nconst fingerprintjs_1 = __importDefault(require(\"@fingerprintjs/fingerprintjs\"));\n\nconst externalComponents_1 = require(\"../utils/externalComponents\");\n\nconst hashCanvasValue_1 = require(\"../utils/hashCanvasValue\");\n\nconst parseValueToString_1 = require(\"../utils/parseValueToString\");\n\nconst get = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n\n let components = {};\n\n try {\n const fp = yield fingerprintjs_1.default.load({\n debug: false,\n monitoring: false\n });\n const result = yield fp.get(); // 处理canvas\n\n if ((_b = (_a = result === null || result === void 0 ? void 0 : result.components) === null || _a === void 0 ? void 0 : _a.canvas) === null || _b === void 0 ? void 0 : _b.value) {\n result.components.canvas.value = (0, hashCanvasValue_1.hashCanvasValue)(result.components.canvas.value);\n } // 拓展的指纹信息\n\n\n const externalComponents = (yield (0, externalComponents_1.getExternalComponents)()) || {};\n const combine = Object.assign(Object.assign({}, (result === null || result === void 0 ? void 0 : result.components) || {}), externalComponents);\n components = (0, parseValueToString_1.stringifyComponents)(combine);\n } finally {\n return components;\n }\n});\n\nexports.get = get;","\"use strict\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomComponent = void 0;\n\nconst utils_1 = require(\"../utils\");\n\nclass CustomComponent {\n getValue() {\n return undefined;\n }\n\n getComponent() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise(resolve => {\n setTimeout(() => {\n const durationUtil = new utils_1.DurationUtil();\n const value = this.getValue();\n const duration = durationUtil.stop();\n const component = {\n value,\n duration\n };\n resolve(component);\n }, 0);\n });\n });\n }\n\n}\n\nexports.CustomComponent = CustomComponent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UAComponent = void 0;\n\nconst base_1 = require(\"./base\");\n\nclass UAComponent extends base_1.CustomComponent {\n getValue() {\n let value = '';\n\n if (typeof navigator !== 'undefined' && (navigator === null || navigator === void 0 ? void 0 : navigator.userAgent)) {\n value = navigator.userAgent;\n }\n\n return value;\n }\n\n}\n\nexports.UAComponent = UAComponent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLImageHashComponent = void 0;\n\nconst hash_1 = require(\"../utils/hash\");\n\nconst webgl_1 = require(\"../utils/webgl\");\n\nconst base_1 = require(\"./base\");\n\nclass WebGLImageHashComponent extends base_1.CustomComponent {\n getValue() {\n var _a, _b, _c, _d;\n\n const webgl = (0, webgl_1.getWebGLContext)();\n const buff = (_a = webgl === null || webgl === void 0 ? void 0 : webgl.createBuffer) === null || _a === void 0 ? void 0 : _a.call(webgl);\n const program = (_b = webgl === null || webgl === void 0 ? void 0 : webgl.createProgram) === null || _b === void 0 ? void 0 : _b.call(webgl);\n const vertex = (_c = webgl === null || webgl === void 0 ? void 0 : webgl.createShader) === null || _c === void 0 ? void 0 : _c.call(webgl, webgl.VERTEX_SHADER);\n const fragment = (_d = webgl === null || webgl === void 0 ? void 0 : webgl.createShader) === null || _d === void 0 ? void 0 : _d.call(webgl, webgl.FRAGMENT_SHADER);\n\n if (!webgl || !buff || !program || !vertex || !fragment || typeof Uint8Array === 'undefined') {\n return '';\n }\n\n let hash = '';\n\n try {\n webgl.bindBuffer(webgl.ARRAY_BUFFER, buff);\n webgl.bufferData(webgl.ARRAY_BUFFER, new Float32Array([-0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.7321, 0]), webgl.STATIC_DRAW);\n const itemSize = 3;\n const numItems = 3;\n webgl.shaderSource(vertex, 'attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}');\n webgl.compileShader(vertex);\n webgl.shaderSource(fragment, 'precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}');\n webgl.compileShader(fragment);\n webgl.attachShader(program, vertex);\n webgl.attachShader(program, fragment);\n webgl.linkProgram(program);\n webgl.useProgram(program);\n const vertexPosAttrib = webgl.getAttribLocation(program, 'attrVertex');\n const offsetUniform = webgl.getUniformLocation(program, 'uniformOffset');\n webgl.enableVertexAttribArray(vertexPosAttrib);\n webgl.vertexAttribPointer(vertexPosAttrib, itemSize, webgl.FLOAT, !1, 0, 0);\n webgl.uniform2f(offsetUniform, 1, 1);\n webgl.drawArrays(webgl.TRIANGLE_STRIP, 0, numItems);\n const arr = new Uint8Array(131072);\n webgl.readPixels(0, 0, 256, 128, webgl.RGBA, webgl.UNSIGNED_BYTE, arr);\n const str = JSON.stringify(arr).replace(/,?\"[0-9]+\":/g, '').replace(/^{[0]+}$/g, '');\n hash = (0, hash_1.x64Hash128)(str);\n } finally {\n return hash;\n }\n }\n\n}\n\nexports.WebGLImageHashComponent = WebGLImageHashComponent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLUnmaskedRendererComponent = void 0;\n\nconst webgl_1 = require(\"../utils/webgl\");\n\nconst base_1 = require(\"./base\");\n\nclass WebGLUnmaskedRendererComponent extends base_1.CustomComponent {\n getValue() {\n var _a, _b;\n\n const webgl = (0, webgl_1.getWebGLContext)();\n const debugInfo = (_a = webgl === null || webgl === void 0 ? void 0 : webgl.getExtension) === null || _a === void 0 ? void 0 : _a.call(webgl, 'WEBGL_debug_renderer_info');\n let value = '';\n\n if (webgl && debugInfo) {\n value = (_b = webgl.getParameter) === null || _b === void 0 ? void 0 : _b.call(webgl, debugInfo.UNMASKED_RENDERER_WEBGL);\n }\n\n return value;\n }\n\n}\n\nexports.WebGLUnmaskedRendererComponent = WebGLUnmaskedRendererComponent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.WebGLUnmaskedVendorComponent = void 0;\n\nconst webgl_1 = require(\"../utils/webgl\");\n\nconst base_1 = require(\"./base\");\n\nclass WebGLUnmaskedVendorComponent extends base_1.CustomComponent {\n getValue() {\n var _a, _b;\n\n const webgl = (0, webgl_1.getWebGLContext)();\n const debugInfo = (_a = webgl === null || webgl === void 0 ? void 0 : webgl.getExtension) === null || _a === void 0 ? void 0 : _a.call(webgl, 'WEBGL_debug_renderer_info');\n let value = '';\n\n if (webgl && debugInfo) {\n value = (_b = webgl.getParameter) === null || _b === void 0 ? void 0 : _b.call(webgl, debugInfo.UNMASKED_VENDOR_WEBGL);\n }\n\n return value;\n }\n\n}\n\nexports.WebGLUnmaskedVendorComponent = WebGLUnmaskedVendorComponent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hashComponents = exports.get = void 0;\n\nconst get_1 = require(\"./api/get\");\n\nObject.defineProperty(exports, \"get\", {\n enumerable: true,\n get: function () {\n return get_1.get;\n }\n});\n\nconst fingerprintjs_1 = require(\"@fingerprintjs/fingerprintjs\");\n\nObject.defineProperty(exports, \"hashComponents\", {\n enumerable: true,\n get: function () {\n return fingerprintjs_1.hashComponents;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Duration = void 0;\n\nclass Duration {\n constructor() {\n this.time = Date.now();\n }\n\n stop() {\n return Date.now() - this.time;\n }\n\n}\n\nexports.Duration = Duration;","\"use strict\";\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getExternalComponents = void 0;\n\nconst ua_1 = require(\"../components/ua\");\n\nconst webglImageHash_1 = require(\"../components/webglImageHash\");\n\nconst webglUnmaskedRenderer_1 = require(\"../components/webglUnmaskedRenderer\");\n\nconst webglUnmaskedVendor_1 = require(\"../components/webglUnmaskedVendor\");\n\nconst getExternalComponents = () => __awaiter(void 0, void 0, void 0, function* () {\n return {\n userAgent: yield new ua_1.UAComponent().getComponent(),\n webglUnmaskedVendor: yield new webglUnmaskedVendor_1.WebGLUnmaskedVendorComponent().getComponent(),\n webglUnmaskedRenderer: yield new webglUnmaskedRenderer_1.WebGLUnmaskedRendererComponent().getComponent(),\n webglImageHash: yield new webglImageHash_1.WebGLImageHashComponent().getComponent()\n };\n});\n\nexports.getExternalComponents = getExternalComponents;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.x64Hash128 = void 0;\n\nconst fingerprintjs_1 = require(\"@fingerprintjs/fingerprintjs\");\n\nexports.x64Hash128 = fingerprintjs_1.murmurX64Hash128;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hashCanvasValue = void 0;\n\nconst hash_1 = require(\"./hash\");\n\nfunction hashCanvasValue(value) {\n if (!(value === null || value === void 0 ? void 0 : value.geometry) || !(value === null || value === void 0 ? void 0 : value.text)) {\n return value;\n }\n\n const geometry = (0, hash_1.x64Hash128)(value.geometry);\n const text = (0, hash_1.x64Hash128)(value.text);\n return Object.assign(Object.assign({}, value), {\n text,\n geometry\n });\n}\n\nexports.hashCanvasValue = hashCanvasValue;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DurationUtil = void 0;\n\nvar duration_1 = require(\"./duration\");\n\nObject.defineProperty(exports, \"DurationUtil\", {\n enumerable: true,\n get: function () {\n return duration_1.Duration;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stringifyComponents = exports.stringifyComponentValue = void 0;\n\nfunction stringifyComponentValue(component) {\n if ((component === null || component === void 0 ? void 0 : component.value) === undefined) {\n return '';\n }\n\n if (typeof (component === null || component === void 0 ? void 0 : component.value) === 'string') {\n return component.value;\n }\n\n return JSON.stringify(component === null || component === void 0 ? void 0 : component.value);\n}\n\nexports.stringifyComponentValue = stringifyComponentValue;\n\nfunction stringifyComponents(components) {\n const result = {};\n Object.keys(components).forEach(key => {\n result[key] = Object.assign(Object.assign({}, components[key] || {}), {\n value: ''\n });\n result[key].value = stringifyComponentValue(components[key]);\n });\n return result;\n}\n\nexports.stringifyComponents = stringifyComponents;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getWebGLContext = void 0;\n\nfunction getWebGLContext() {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const canvas = document.createElement('canvas');\n canvas.width = 256;\n canvas.height = 128;\n const webgl = canvas.getContext('webgl', {\n preserveDrawingBuffer: true\n });\n return webgl;\n}\n\nexports.getWebGLContext = getWebGLContext;","\"use strict\";/* globals self */var fetch=self.fetch.bind(self);module.exports=fetch;module.exports.default=module.exports;\n//# sourceMappingURL=index.js.map","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n ","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar-img\":\"avatar_avatar-img__170Bh\",\"author-v\":\"avatar_author-v__2Xocb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"button_root__3V6Iu\",\"loading\":\"button_loading__37BUQ\",\"disabled\":\"button_disabled__1TVYP\",\"new_primary\":\"button_new_primary__2mZuy\",\"primary\":\"button_primary__gJWPG\",\"default\":\"button_default__1PLhz\",\"highlight\":\"button_highlight__PD0Ss\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"side-nav-switch\":\"new-header-switch_side-nav-switch__CxJdS\",\"arrow\":\"new-header-switch_arrow__21Sjl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"new-header_header__3tGeH\",\"header-fix\":\"new-header_header-fix__vhXpa\",\"fire-fox\":\"new-header_fire-fox__3rwO8\",\"dch-link\":\"new-header_dch-link__2kTG_\",\"vrcode-container\":\"new-header_vrcode-container__Pmnxw\",\"vrcode\":\"new-header_vrcode__1qN8R\",\"switch-wrap\":\"new-header_switch-wrap__ZoEdX\",\"logo\":\"new-header_logo__2DW7x\",\"city\":\"new-header_city__2HpkN\",\"add-icon\":\"new-header_add-icon__3sO6L\",\"dch-icon\":\"new-header_dch-icon__2_ts7\",\"dch-text\":\"new-header_dch-text__2rdBv\",\"publish-item\":\"new-header_publish-item__1tqSz\",\"leave\":\"new-header_leave__3WICN\",\"leave-frames\":\"new-header_leave-frames__37SzY\",\"enter\":\"new-header_enter__nrILg\",\"enter-frames\":\"new-header_enter-frames__1_W-U\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdown-item\":\"new-user_dropdown-item__1m2eX\",\"user-wrapper\":\"new-user_user-wrapper__1DR2z\",\"username-wrapper\":\"new-user_username-wrapper__3xMYa\",\"ic-logout\":\"new-user_ic-logout__RFG3_\",\"login-btn\":\"new-user_login-btn__UneJM\",\"login-link\":\"new-user_login-link__19Evc\",\"vertical-line\":\"new-user_vertical-line__2jpmf\",\"dropdown-panel\":\"new-user_dropdown-panel__3x_mw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"info-mode-switcher_root__3ShMA\",\"current\":\"info-mode-switcher_current__3WHT-\",\"model-item\":\"info-mode-switcher_model-item__g-E1h\",\"is-active\":\"info-mode-switcher_is-active__1BxZD\",\"tips-content\":\"info-mode-switcher_tips-content__123g4\",\"tips-login\":\"info-mode-switcher_tips-login__3n8GD\",\"trigger\":\"info-mode-switcher_trigger__1I0qd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link-item\":\"styles_link-item__CB-HK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"arrow\":\"tool-tip_arrow__2t2cd\",\"wrapper\":\"tool-tip_wrapper__1lKlz\",\"content\":\"tool-tip_content__iv3CO\",\"enter\":\"tool-tip_enter__1fYzW\",\"leave\":\"tool-tip_leave__2XcSg\",\"in\":\"tool-tip_in__1ULix\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"rank-publish-flag_root__1mARe\",\"text\":\"rank-publish-flag_text__8bFAk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"side-nav_root__vlqkQ\",\"fixed-wrapper\":\"side-nav_fixed-wrapper__3F5uE\",\"scroll-wrapper\":\"side-nav_scroll-wrapper__1hLQY\",\"list\":\"side-nav_list__12HKw\",\"list-item\":\"side-nav_list-item__2QC4V\",\"item-link\":\"side-nav_item-link__22GUG\",\"is-active\":\"side-nav_is-active__cgc4y\",\"has-children\":\"side-nav_has-children__3ljqa\",\"link-icon\":\"side-nav_link-icon__q33ly\",\"link-arrow\":\"side-nav_link-arrow__2zin1\",\"link-name\":\"side-nav_link-name__3Mb7a\",\"rank-flag\":\"side-nav_rank-flag__1NEcj\",\"child-list\":\"side-nav_child-list__wRUXz\",\"child-link\":\"side-nav_child-link__1fz5U\",\"child-link-icon\":\"side-nav_child-link-icon__14ptk\",\"is-off\":\"side-nav_is-off__3v-Va\",\"md-off\":\"side-nav_md-off__1L3sa\",\"lg-off\":\"side-nav_lg-off__26UU8\",\"offset\":\"side-nav_offset__2HvJ_\",\"none\":\"side-nav_none__2AW4i\",\"md-none\":\"side-nav_md-none__1qfZN\",\"fixed\":\"side-nav_fixed__36DSM\"};","module.exports = require('./dist/next-server/lib/dynamic')\n","module.exports = require('./dist/next-server/lib/head')\n","module.exports = require('./dist/client/link')\n","module.exports = require('./dist/client/router')\n","module.exports = require('./dist/client/script')\n","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '
'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' ? Symbol.prototype.toString : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean') {\n throw new TypeError('option \"customInspect\", if provided, must be `true` or `false`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = symToString.call(obj);\n return typeof obj === 'object' ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n if (ys.length === 0) { return '{}'; }\n if (indent) {\n return '{' + indentedJoin(ys, indent) + '}';\n }\n return '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]'; }\nfunction isDate(obj) { return toStr(obj) === '[object Date]'; }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]'; }\nfunction isError(obj) { return toStr(obj) === '[object Error]'; }\nfunction isSymbol(obj) { return toStr(obj) === '[object Symbol]'; }\nfunction isString(obj) { return toStr(obj) === '[object String]'; }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]'; }\nfunction isBigInt(obj) { return toStr(obj) === '[object BigInt]'; }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]'; }\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n var syms = gOPS(obj);\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2010,2011,2012,2013,2014 Morgan Roderick http://roderick.dk\n * License: MIT - http://mrgnrdrck.mit-license.org\n *\n * https://github.com/mroderick/PubSubJS\n */\n\n(function (root, factory){\n 'use strict';\n\n var PubSub = {};\n root.PubSub = PubSub;\n factory(PubSub);\n // CommonJS and Node.js module support\n if (typeof exports === 'object'){\n if (module !== undefined && module.exports) {\n exports = module.exports = PubSub; // Node.js specific `module.exports`\n }\n exports.PubSub = PubSub; // CommonJS module 1.1.1 spec\n module.exports = exports = PubSub; // CommonJS\n }\n // AMD support\n /* eslint-disable no-undef */\n else if (typeof define === 'function' && define.amd){\n define(function() { return PubSub; });\n /* eslint-enable no-undef */\n }\n\n}(( typeof window === 'object' && window ) || this, function (PubSub){\n 'use strict';\n\n var messages = {},\n lastUid = -1,\n ALL_SUBSCRIBING_MSG = '*';\n\n function hasKeys(obj){\n var key;\n\n for (key in obj){\n if ( Object.prototype.hasOwnProperty.call(obj, key) ){\n return true;\n }\n }\n return false;\n }\n\n /**\n * Returns a function that throws the passed exception, for use as argument for setTimeout\n * @alias throwException\n * @function\n * @param { Object } ex An Error object\n */\n function throwException( ex ){\n return function reThrowException(){\n throw ex;\n };\n }\n\n function callSubscriberWithDelayedExceptions( subscriber, message, data ){\n try {\n subscriber( message, data );\n } catch( ex ){\n setTimeout( throwException( ex ), 0);\n }\n }\n\n function callSubscriberWithImmediateExceptions( subscriber, message, data ){\n subscriber( message, data );\n }\n\n function deliverMessage( originalMessage, matchedMessage, data, immediateExceptions ){\n var subscribers = messages[matchedMessage],\n callSubscriber = immediateExceptions ? callSubscriberWithImmediateExceptions : callSubscriberWithDelayedExceptions,\n s;\n\n if ( !Object.prototype.hasOwnProperty.call( messages, matchedMessage ) ) {\n return;\n }\n\n for (s in subscribers){\n if ( Object.prototype.hasOwnProperty.call(subscribers, s)){\n callSubscriber( subscribers[s], originalMessage, data );\n }\n }\n }\n\n function createDeliveryFunction( message, data, immediateExceptions ){\n return function deliverNamespaced(){\n var topic = String( message ),\n position = topic.lastIndexOf( '.' );\n\n // deliver the message as it is now\n deliverMessage(message, message, data, immediateExceptions);\n\n // trim the hierarchy and deliver message to each level\n while( position !== -1 ){\n topic = topic.substr( 0, position );\n position = topic.lastIndexOf('.');\n deliverMessage( message, topic, data, immediateExceptions );\n }\n\n deliverMessage(message, ALL_SUBSCRIBING_MSG, data, immediateExceptions);\n };\n }\n\n function hasDirectSubscribersFor( message ) {\n var topic = String( message ),\n found = Boolean(Object.prototype.hasOwnProperty.call( messages, topic ) && hasKeys(messages[topic]));\n\n return found;\n }\n\n function messageHasSubscribers( message ){\n var topic = String( message ),\n found = hasDirectSubscribersFor(topic) || hasDirectSubscribersFor(ALL_SUBSCRIBING_MSG),\n position = topic.lastIndexOf( '.' );\n\n while ( !found && position !== -1 ){\n topic = topic.substr( 0, position );\n position = topic.lastIndexOf( '.' );\n found = hasDirectSubscribersFor(topic);\n }\n\n return found;\n }\n\n function publish( message, data, sync, immediateExceptions ){\n message = (typeof message === 'symbol') ? message.toString() : message;\n\n var deliver = createDeliveryFunction( message, data, immediateExceptions ),\n hasSubscribers = messageHasSubscribers( message );\n\n if ( !hasSubscribers ){\n return false;\n }\n\n if ( sync === true ){\n deliver();\n } else {\n setTimeout( deliver, 0 );\n }\n return true;\n }\n\n /**\n * Publishes the message, passing the data to it's subscribers\n * @function\n * @alias publish\n * @param { String } message The message to publish\n * @param {} data The data to pass to subscribers\n * @return { Boolean }\n */\n PubSub.publish = function( message, data ){\n return publish( message, data, false, PubSub.immediateExceptions );\n };\n\n /**\n * Publishes the message synchronously, passing the data to it's subscribers\n * @function\n * @alias publishSync\n * @param { String } message The message to publish\n * @param {} data The data to pass to subscribers\n * @return { Boolean }\n */\n PubSub.publishSync = function( message, data ){\n return publish( message, data, true, PubSub.immediateExceptions );\n };\n\n /**\n * Subscribes the passed function to the passed message. Every returned token is unique and should be stored if you need to unsubscribe\n * @function\n * @alias subscribe\n * @param { String } message The message to subscribe to\n * @param { Function } func The function to call when a new message is published\n * @return { String }\n */\n PubSub.subscribe = function( message, func ){\n if ( typeof func !== 'function'){\n return false;\n }\n\n message = (typeof message === 'symbol') ? message.toString() : message;\n\n // message is not registered yet\n if ( !Object.prototype.hasOwnProperty.call( messages, message ) ){\n messages[message] = {};\n }\n\n // forcing token as String, to allow for future expansions without breaking usage\n // and allow for easy use as key names for the 'messages' object\n var token = 'uid_' + String(++lastUid);\n messages[message][token] = func;\n\n // return token for unsubscribing\n return token;\n };\n\n PubSub.subscribeAll = function( func ){\n return PubSub.subscribe(ALL_SUBSCRIBING_MSG, func);\n };\n\n /**\n * Subscribes the passed function to the passed message once\n * @function\n * @alias subscribeOnce\n * @param { String } message The message to subscribe to\n * @param { Function } func The function to call when a new message is published\n * @return { PubSub }\n */\n PubSub.subscribeOnce = function( message, func ){\n var token = PubSub.subscribe( message, function(){\n // before func apply, unsubscribe message\n PubSub.unsubscribe( token );\n func.apply( this, arguments );\n });\n return PubSub;\n };\n\n /**\n * Clears all subscriptions\n * @function\n * @public\n * @alias clearAllSubscriptions\n */\n PubSub.clearAllSubscriptions = function clearAllSubscriptions(){\n messages = {};\n };\n\n /**\n * Clear subscriptions by the topic\n * @function\n * @public\n * @alias clearAllSubscriptions\n * @return { int }\n */\n PubSub.clearSubscriptions = function clearSubscriptions(topic){\n var m;\n for (m in messages){\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){\n delete messages[m];\n }\n }\n };\n\n /**\n Count subscriptions by the topic\n * @function\n * @public\n * @alias countSubscriptions\n * @return { Array }\n */\n PubSub.countSubscriptions = function countSubscriptions(topic){\n var m;\n // eslint-disable-next-line no-unused-vars\n var token;\n var count = 0;\n for (m in messages) {\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0) {\n for (token in messages[m]) {\n count++;\n }\n break;\n }\n }\n return count;\n };\n\n\n /**\n Gets subscriptions by the topic\n * @function\n * @public\n * @alias getSubscriptions\n */\n PubSub.getSubscriptions = function getSubscriptions(topic){\n var m;\n var list = [];\n for (m in messages){\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){\n list.push(m);\n }\n }\n return list;\n };\n\n /**\n * Removes subscriptions\n *\n * - When passed a token, removes a specific subscription.\n *\n\t * - When passed a function, removes all subscriptions for that function\n *\n\t * - When passed a topic, removes all subscriptions for that topic (hierarchy)\n * @function\n * @public\n * @alias subscribeOnce\n * @param { String | Function } value A token, function or topic to unsubscribe from\n * @example // Unsubscribing with a token\n * var token = PubSub.subscribe('mytopic', myFunc);\n * PubSub.unsubscribe(token);\n * @example // Unsubscribing with a function\n * PubSub.unsubscribe(myFunc);\n * @example // Unsubscribing from a topic\n * PubSub.unsubscribe('mytopic');\n */\n PubSub.unsubscribe = function(value){\n var descendantTopicExists = function(topic) {\n var m;\n for ( m in messages ){\n if ( Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0 ){\n // a descendant of the topic exists:\n return true;\n }\n }\n\n return false;\n },\n isTopic = typeof value === 'string' && ( Object.prototype.hasOwnProperty.call(messages, value) || descendantTopicExists(value) ),\n isToken = !isTopic && typeof value === 'string',\n isFunction = typeof value === 'function',\n result = false,\n m, message, t;\n\n if (isTopic){\n PubSub.clearSubscriptions(value);\n return;\n }\n\n for ( m in messages ){\n if ( Object.prototype.hasOwnProperty.call( messages, m ) ){\n message = messages[m];\n\n if ( isToken && message[value] ){\n delete message[value];\n result = value;\n // tokens are unique, so we can just stop here\n break;\n }\n\n if (isFunction) {\n for ( t in message ){\n if (Object.prototype.hasOwnProperty.call(message, t) && message[t] === value){\n delete message[t];\n result = true;\n }\n }\n }\n }\n }\n\n return result;\n };\n}));\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","require('./').polyfill()\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport * as PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n var node = ReactDOM.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n // allows for nested Transitions\n return React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, children(status, childProps));\n }\n\n var child = React.Children.only(children);\n return (// allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, React.cloneElement(child, childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\nexport default Transition;","'use strict';\n\n// Load modules\n\n// Delcare internals\n\nvar internals = {\n rfc3986: {}\n};\n\ninternals.generate = function () {\n\n /**\n * elements separated by forward slash (\"/\") are alternatives.\n */\n var or = '|';\n\n /**\n * DIGIT = %x30-39 ; 0-9\n */\n var digit = '0-9';\n var digitOnly = '[' + digit + ']';\n\n /**\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n */\n var alpha = 'a-zA-Z';\n var alphaOnly = '[' + alpha + ']';\n\n /**\n * cidr = DIGIT ; 0-9\n * / %x31-32 DIGIT ; 10-29\n * / \"3\" %x30-32 ; 30-32\n */\n internals.rfc3986.cidr = digitOnly + or + '[1-2]' + digitOnly + or + '3' + '[0-2]';\n\n /**\n * HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n */\n var hexDigit = digit + 'A-Fa-f';\n var hexDigitOnly = '[' + hexDigit + ']';\n\n /**\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n */\n var unreserved = alpha + digit + '-\\\\._~';\n\n /**\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\n var subDelims = '!\\\\$&\\'\\\\(\\\\)\\\\*\\\\+,;=';\n\n /**\n * pct-encoded = \"%\" HEXDIG HEXDIG\n */\n var pctEncoded = '%' + hexDigit;\n\n /**\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\n var pchar = unreserved + pctEncoded + subDelims + ':@';\n var pcharOnly = '[' + pchar + ']';\n\n /**\n * Rule to support zero-padded addresses.\n */\n var zeroPad = '0?';\n\n /**\n * dec-octet = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" 2DIGIT ; 100-199\n * / \"2\" %x30-34 DIGIT ; 200-249\n * / \"25\" %x30-35 ; 250-255\n */\n var decOctect = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + digitOnly + digitOnly + or + '2' + '[0-4]' + digitOnly + or + '25' + '[0-5])';\n\n /**\n * IPv4address = dec-octet \".\" dec-octet \".\" dec-octet \".\" dec-octet\n */\n internals.rfc3986.IPv4address = '(?:' + decOctect + '\\\\.){3}' + decOctect;\n\n /**\n * h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal\n * ls32 = ( h16 \":\" h16 ) / IPv4address ; least-significant 32 bits of address\n * IPv6address = 6( h16 \":\" ) ls32\n * / \"::\" 5( h16 \":\" ) ls32\n * / [ h16 ] \"::\" 4( h16 \":\" ) ls32\n * / [ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n * / [ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n * / [ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n * / [ *4( h16 \":\" ) h16 ] \"::\" ls32\n * / [ *5( h16 \":\" ) h16 ] \"::\" h16\n * / [ *6( h16 \":\" ) h16 ] \"::\"\n */\n var h16 = hexDigitOnly + '{1,4}';\n var ls32 = '(?:' + h16 + ':' + h16 + '|' + internals.rfc3986.IPv4address + ')';\n var IPv6SixHex = '(?:' + h16 + ':){6}' + ls32;\n var IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32;\n var IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32;\n var IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32;\n var IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32;\n var IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32;\n var IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32;\n var IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16;\n var IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::';\n internals.rfc3986.IPv6address = '(?:' + IPv6SixHex + or + IPv6FiveHex + or + IPv6FourHex + or + IPv6ThreeHex + or + IPv6TwoHex + or + IPv6OneHex + or + IPv6NoneHex + or + IPv6NoneHex2 + or + IPv6NoneHex3 + ')';\n\n /**\n * IPvFuture = \"v\" 1*HEXDIG \".\" 1*( unreserved / sub-delims / \":\" )\n */\n internals.rfc3986.IPvFuture = 'v' + hexDigitOnly + '+\\\\.[' + unreserved + subDelims + ':]+';\n\n /**\n * scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n */\n internals.rfc3986.scheme = alphaOnly + '[' + alpha + digit + '+-\\\\.]*';\n\n /**\n * userinfo = *( unreserved / pct-encoded / sub-delims / \":\" )\n */\n var userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*';\n\n /**\n * IP-literal = \"[\" ( IPv6address / IPvFuture ) \"]\"\n */\n internals.rfc3986.IPLiteral = '\\\\[(?:' + internals.rfc3986.IPv6address + or + internals.rfc3986.IPvFuture + ')\\\\]';\n\n /**\n * reg-name = *( unreserved / pct-encoded / sub-delims )\n */\n var regName = '[' + unreserved + pctEncoded + subDelims + ']{0,255}';\n\n /**\n * host = IP-literal / IPv4address / reg-name\n */\n var host = '(?:' + internals.rfc3986.IPLiteral + or + internals.rfc3986.IPv4address + or + regName + ')';\n\n /**\n * port = *DIGIT\n */\n var port = digitOnly + '*';\n\n /**\n * authority = [ userinfo \"@\" ] host [ \":\" port ]\n */\n var authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?';\n\n /**\n * segment = *pchar\n * segment-nz = 1*pchar\n * path = path-abempty ; begins with \"/\" or is empty\n * / path-absolute ; begins with \"/\" but not \"//\"\n * / path-noscheme ; begins with a non-colon segment\n * / path-rootless ; begins with a segment\n * / path-empty ; zero characters\n * path-abempty = *( \"/\" segment )\n * path-absolute = \"/\" [ segment-nz *( \"/\" segment ) ]\n * path-rootless = segment-nz *( \"/\" segment )\n */\n var segment = pcharOnly + '*';\n var segmentNz = pcharOnly + '+';\n var pathAbEmpty = '(?:\\\\/' + segment + ')*';\n var pathAbsolute = '\\\\/(?:' + segmentNz + pathAbEmpty + ')?';\n var pathRootless = segmentNz + pathAbEmpty;\n\n /**\n * hier-part = \"//\" authority path\n */\n internals.rfc3986.hierPart = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathRootless + ')';\n\n /**\n * query = *( pchar / \"/\" / \"?\" )\n */\n internals.rfc3986.query = '[' + pchar + '\\\\/\\\\?]*(?=#|$)'; //Finish matching either at the fragment part or end of the line.\n\n /**\n * fragment = *( pchar / \"/\" / \"?\" )\n */\n internals.rfc3986.fragment = '[' + pchar + '\\\\/\\\\?]*';\n\n /**\n * URI = scheme \":\" hier-part [ \"?\" query ] [ \"#\" fragment ]\n *\n * OR\n *\n * relative-ref = relative-part [ \"?\" query ] [ \"#\" fragment ]\n */\n internals.rfc3986.uri = '^(?:' + internals.rfc3986.scheme + ':' + internals.rfc3986.hierPart + ')(?:\\\\?' + internals.rfc3986.query + ')?' + '(?:#' + internals.rfc3986.fragment + ')?$';\n};\n\ninternals.generate();\n\nmodule.exports = internals.rfc3986;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","\"use strict\";\n\nfunction hash(str) {\n var hash = 5381,\n i = str.length;\n\n while(i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return hash >>> 0;\n}\n\nmodule.exports = hash;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/\nvar isProd = typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'production';\n\nvar isString = function isString(o) {\n return Object.prototype.toString.call(o) === '[object String]';\n};\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'stylesheet' : _ref$name,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? isProd : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n invariant(isString(name), '`name` must be a string');\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant(typeof optimizeForSpeed === 'boolean', '`optimizeForSpeed` must be a boolean');\n this._optimizeForSpeed = optimizeForSpeed;\n this._isBrowser = isBrowser;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = this._isBrowser && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute('content') : null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant(typeof bool === 'boolean', '`setOptimizeForSpeed` accepts a boolean');\n invariant(this._rulesCount === 0, 'optimizeForSpeed cannot be when rules have already been inserted');\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n\n _proto.inject = function inject() {\n var _this = this;\n\n invariant(!this._injected, 'sheet already injected');\n this._injected = true;\n\n if (this._isBrowser && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = 'insertRule' in this.getSheet();\n\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn('StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.');\n }\n\n this.flush();\n this._injected = true;\n }\n\n return;\n }\n\n this._serverSheet = {\n cssRules: [],\n insertRule: function insertRule(rule, index) {\n if (typeof index === 'number') {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n\n return index;\n },\n deleteRule: function deleteRule(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n\n _proto.insertRule = function insertRule(rule, index) {\n invariant(isString(rule), '`insertRule` accepts only strings');\n\n if (!this._isBrowser) {\n if (typeof index !== 'number') {\n index = this._serverSheet.cssRules.length;\n }\n\n this._serverSheet.insertRule(rule, index);\n\n return this._rulesCount++;\n }\n\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n\n if (typeof index !== 'number') {\n index = sheet.cssRules.length;\n } // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n\n return this._rulesCount++;\n };\n\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || !this._isBrowser) {\n var sheet = this._isBrowser ? this.getSheet() : this._serverSheet;\n\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n\n sheet.deleteRule(index);\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n } // In order to preserve the indices we insert a deleteRulePlaceholder\n\n\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n\n return index;\n };\n\n _proto.deleteRule = function deleteRule(index) {\n if (!this._isBrowser) {\n this._serverSheet.deleteRule(index);\n\n return;\n }\n\n if (this._optimizeForSpeed) {\n this.replaceRule(index, '');\n } else {\n var tag = this._tags[index];\n invariant(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n\n if (this._isBrowser) {\n this._tags.forEach(function (tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n\n _proto.cssRules = function cssRules() {\n var _this2 = this;\n\n if (!this._isBrowser) {\n return this._serverSheet.cssRules;\n }\n\n return this._tags.reduce(function (rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this2.getSheetForTag(tag).cssRules, function (rule) {\n return rule.cssText === _this2._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n\n return rules;\n }, []);\n };\n\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant(isString(cssString), 'makeStyleTag acceps only strings as second parameter');\n }\n\n var tag = document.createElement('style');\n if (this._nonce) tag.setAttribute('nonce', this._nonce);\n tag.type = 'text/css';\n tag.setAttribute(\"data-\" + name, '');\n\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n\n return tag;\n };\n\n _createClass(StyleSheet, [{\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }]);\n\n return StyleSheet;\n}();\n\nexports[\"default\"] = StyleSheet;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.flush = flush;\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _stylesheetRegistry = _interopRequireDefault(require(\"./stylesheet-registry\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar styleSheetRegistry = new _stylesheetRegistry[\"default\"]();\n\nvar JSXStyle = /*#__PURE__*/function (_Component) {\n _inheritsLoose(JSXStyle, _Component);\n\n function JSXStyle(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.prevProps = {};\n return _this;\n }\n\n JSXStyle.dynamic = function dynamic(info) {\n return info.map(function (tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return styleSheetRegistry.computeId(baseId, props);\n }).join(' ');\n } // probably faster than PureComponent (shallowEqual)\n ;\n\n var _proto = JSXStyle.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(otherProps) {\n return this.props.id !== otherProps.id || // We do this check because `dynamic` is an array of strings or undefined.\n // These are the computed values for dynamic styles.\n String(this.props.dynamic) !== String(otherProps.dynamic);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n styleSheetRegistry.remove(this.props);\n };\n\n _proto.render = function render() {\n // This is a workaround to make the side effect async safe in the \"render\" phase.\n // See https://github.com/zeit/styled-jsx/pull/484\n if (this.shouldComponentUpdate(this.prevProps)) {\n // Updates\n if (this.prevProps.id) {\n styleSheetRegistry.remove(this.prevProps);\n }\n\n styleSheetRegistry.add(this.props);\n this.prevProps = this.props;\n }\n\n return null;\n };\n\n return JSXStyle;\n}(_react.Component);\n\nexports[\"default\"] = JSXStyle;\n\nfunction flush() {\n var cssRules = styleSheetRegistry.cssRules();\n styleSheetRegistry.flush();\n return cssRules;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _stringHash = _interopRequireDefault(require(\"string-hash\"));\n\nvar _stylesheet = _interopRequireDefault(require(\"./lib/stylesheet\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar sanitize = function sanitize(rule) {\n return rule.replace(/\\/style/gi, '\\\\/style');\n};\n\nvar StyleSheetRegistry = /*#__PURE__*/function () {\n function StyleSheetRegistry(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$styleSheet = _ref.styleSheet,\n styleSheet = _ref$styleSheet === void 0 ? null : _ref$styleSheet,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? false : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n this._sheet = styleSheet || new _stylesheet[\"default\"]({\n name: 'styled-jsx',\n optimizeForSpeed: optimizeForSpeed\n });\n\n this._sheet.inject();\n\n if (styleSheet && typeof optimizeForSpeed === 'boolean') {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n this._isBrowser = isBrowser;\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n this.computeId = this.createComputeId();\n this.computeSelector = this.createComputeSelector();\n }\n\n var _proto = StyleSheetRegistry.prototype;\n\n _proto.add = function add(props) {\n var _this = this;\n\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n if (this._isBrowser && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function (acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n\n var _this$getIdAndRules = this.getIdAndRules(props),\n styleId = _this$getIdAndRules.styleId,\n rules = _this$getIdAndRules.rules; // Deduping: just increase the instances count.\n\n\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n\n var indices = rules.map(function (rule) {\n return _this._sheet.insertRule(rule);\n }) // Filter out invalid rules\n .filter(function (index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n\n _proto.remove = function remove(props) {\n var _this2 = this;\n\n var _this$getIdAndRules2 = this.getIdAndRules(props),\n styleId = _this$getIdAndRules2.styleId;\n\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function (index) {\n return _this2._sheet.deleteRule(index);\n });\n\n delete this._indices[styleId];\n }\n\n delete this._instancesCounts[styleId];\n }\n };\n\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n\n _proto.flush = function flush() {\n this._sheet.flush();\n\n this._sheet.inject();\n\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n this.computeId = this.createComputeId();\n this.computeSelector = this.createComputeSelector();\n };\n\n _proto.cssRules = function cssRules() {\n var _this3 = this;\n\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function (styleId) {\n return [styleId, _this3._fromServer[styleId]];\n }) : [];\n\n var cssRules = this._sheet.cssRules();\n\n return fromServer.concat(Object.keys(this._indices).map(function (styleId) {\n return [styleId, _this3._indices[styleId].map(function (index) {\n return cssRules[index].cssText;\n }).join(_this3._optimizeForSpeed ? '' : '\\n')];\n }) // filter out empty rules\n .filter(function (rule) {\n return Boolean(rule[1]);\n }));\n }\n /**\n * createComputeId\n *\n * Creates a function to compute and memoize a jsx id from a basedId and optionally props.\n */\n ;\n\n _proto.createComputeId = function createComputeId() {\n var cache = {};\n return function (baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n\n var propsToString = String(props);\n var key = baseId + propsToString; // return `jsx-${hashString(`${baseId}-${propsToString}`)}`\n\n if (!cache[key]) {\n cache[key] = \"jsx-\" + (0, _stringHash[\"default\"])(baseId + \"-\" + propsToString);\n }\n\n return cache[key];\n };\n }\n /**\n * createComputeSelector\n *\n * Creates a function to compute and memoize dynamic selectors.\n */\n ;\n\n _proto.createComputeSelector = function createComputeSelector(selectoPlaceholderRegexp) {\n if (selectoPlaceholderRegexp === void 0) {\n selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n }\n\n var cache = {};\n return function (id, css) {\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (!this._isBrowser) {\n css = sanitize(css);\n }\n\n var idcss = id + css;\n\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n\n return cache[idcss];\n };\n };\n\n _proto.getIdAndRules = function getIdAndRules(props) {\n var _this4 = this;\n\n var css = props.children,\n dynamic = props.dynamic,\n id = props.id;\n\n if (dynamic) {\n var styleId = this.computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function (rule) {\n return _this4.computeSelector(styleId, rule);\n }) : [this.computeSelector(styleId, css)]\n };\n }\n\n return {\n styleId: this.computeId(id),\n rules: Array.isArray(css) ? css : [css]\n };\n }\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */\n ;\n\n _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function (acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n\n return StyleSheetRegistry;\n}();\n\nexports[\"default\"] = StyleSheetRegistry;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}","module.exports = require('./dist/style')\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * default settings\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n return {\n a: [\"target\", \"href\", \"title\"],\n abbr: [\"title\"],\n address: [],\n area: [\"shape\", \"coords\", \"href\", \"alt\"],\n article: [],\n aside: [],\n audio: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\"],\n b: [],\n bdi: [\"dir\"],\n bdo: [\"dir\"],\n big: [],\n blockquote: [\"cite\"],\n br: [],\n caption: [],\n center: [],\n cite: [],\n code: [],\n col: [\"align\", \"valign\", \"span\", \"width\"],\n colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n dd: [],\n del: [\"datetime\"],\n details: [\"open\"],\n div: [],\n dl: [],\n dt: [],\n em: [],\n font: [\"color\", \"size\", \"face\"],\n footer: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n header: [],\n hr: [],\n i: [],\n img: [\"src\", \"alt\", \"title\", \"width\", \"height\"],\n ins: [\"datetime\"],\n li: [],\n mark: [],\n nav: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n section: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n table: [\"width\", \"border\", \"align\", \"valign\"],\n tbody: [\"align\", \"valign\"],\n td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n tfoot: [\"align\", \"valign\"],\n th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n thead: [\"align\", \"valign\"],\n tr: [\"rowspan\", \"align\", \"valign\"],\n tt: [],\n u: [],\n ul: [],\n video: [\"autoplay\", \"controls\", \"loop\", \"preload\", \"src\", \"height\", \"width\"]\n };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n return html.replace(REGEXP_LT, \"<\").replace(REGEXP_GT, \">\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n // unescape attribute value firstly\n value = friendlyAttrValue(value);\n\n if (name === \"href\" || name === \"src\") {\n // filter `href` and `src` attribute\n // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n value = _.trim(value);\n if (value === \"#\") return \"#\";\n if (\n !(\n value.substr(0, 7) === \"http://\" ||\n value.substr(0, 8) === \"https://\" ||\n value.substr(0, 7) === \"mailto:\" ||\n value.substr(0, 4) === \"tel:\" ||\n value[0] === \"#\" ||\n value[0] === \"/\"\n )\n ) {\n return \"\";\n }\n } else if (name === \"background\") {\n // filter `background` attribute (maybe no use)\n // `javascript:`\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n } else if (name === \"style\") {\n // `expression()`\n REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n return \"\";\n }\n // `url()`\n REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n return \"\";\n }\n }\n if (cssFilter !== false) {\n cssFilter = cssFilter || defaultCSSFilter;\n value = cssFilter.process(value);\n }\n }\n\n // escape `<>\"` before returns\n value = escapeAttrValue(value);\n return value;\n}\n\n// RegExp list\nvar REGEXP_LT = //g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /"/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /:?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 = /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 = /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape doube quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n return str.replace(REGEXP_QUOTE, \""\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n return code[0] === \"x\" || code[0] === \"X\"\n ? String.fromCharCode(parseInt(code.substr(1), 16))\n : String.fromCharCode(parseInt(code, 10));\n });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n return str\n .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n var str2 = \"\";\n for (var i = 0, len = str.length; i < len; i++) {\n str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n }\n return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n str = unescapeQuote(str);\n str = escapeHtmlEntities(str);\n str = escapeDangerHtml5Entities(str);\n str = clearNonPrintableCharacter(str);\n return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n str = escapeQuote(str);\n str = escapeHtml(str);\n return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n if (typeof next !== \"function\") {\n next = function() {};\n }\n\n var isRemoveAllTag = !Array.isArray(tags);\n function isRemoveTag(tag) {\n if (isRemoveAllTag) return true;\n return _.indexOf(tags, tag) !== -1;\n }\n\n var removeList = [];\n var posStart = false;\n\n return {\n onIgnoreTag: function(tag, html, options) {\n if (isRemoveTag(tag)) {\n if (options.isClosing) {\n var ret = \"[/removed]\";\n var end = options.position + ret.length;\n removeList.push([\n posStart !== false ? posStart : options.position,\n end\n ]);\n posStart = false;\n return ret;\n } else {\n if (!posStart) {\n posStart = options.position;\n }\n return \"[removed]\";\n }\n } else {\n return next(tag, html, options);\n }\n },\n remove: function(html) {\n var rethtml = \"\";\n var lastPos = 0;\n _.forEach(removeList, function(pos) {\n rethtml += html.slice(lastPos, pos[0]);\n lastPos = pos[1];\n });\n rethtml += html.slice(lastPos);\n return rethtml;\n }\n };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n return html.replace(STRIP_COMMENT_TAG_REGEXP, \"\");\n}\nvar STRIP_COMMENT_TAG_REGEXP = //g;\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n var chars = html.split(\"\");\n chars = chars.filter(function(char) {\n var c = char.charCodeAt(0);\n if (c === 127) return false;\n if (c <= 31) {\n if (c === 10 || c === 13) return true;\n return false;\n }\n return true;\n });\n return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n","/**\n * xss\n *\n * @author Zongmin Lei\n */\n\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar FilterXSS = require(\"./xss\");\n\n/**\n * filter xss function\n *\n * @param {String} html\n * @param {Object} options { whiteList, onTag, onTagAttr, onIgnoreTag, onIgnoreTagAttr, safeAttrValue, escapeHtml }\n * @return {String}\n */\nfunction filterXSS(html, options) {\n var xss = new FilterXSS(options);\n return xss.process(html);\n}\n\nexports = module.exports = filterXSS;\nexports.filterXSS = filterXSS;\nexports.FilterXSS = FilterXSS;\nfor (var i in DEFAULT) exports[i] = DEFAULT[i];\nfor (var i in parser) exports[i] = parser[i];\n\n// using `xss` on the browser, output `filterXSS` to the globals\nif (typeof window !== \"undefined\") {\n window.filterXSS = module.exports;\n}\n\n// using `xss` on the WebWorker, output `filterXSS` to the globals\nfunction isWorkerEnv() {\n return typeof self !== 'undefined' && typeof DedicatedWorkerGlobalScope !== 'undefined' && self instanceof DedicatedWorkerGlobalScope;\n}\nif (isWorkerEnv()) {\n self.filterXSS = module.exports;\n}\n","/**\n * Simple HTML Parser\n *\n * @author Zongmin Lei\n */\n\nvar _ = require(\"./util\");\n\n/**\n * get tag name\n *\n * @param {String} html e.g. '
'\n * @return {String}\n */\nfunction getTagName(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n var tagName = html.slice(1, -1);\n } else {\n var tagName = html.slice(1, i + 1);\n }\n tagName = _.trim(tagName).toLowerCase();\n if (tagName.slice(0, 1) === \"/\") tagName = tagName.slice(1);\n if (tagName.slice(-1) === \"/\") tagName = tagName.slice(0, -1);\n return tagName;\n}\n\n/**\n * is close tag?\n *\n * @param {String} html 如:''\n * @return {Boolean}\n */\nfunction isClosing(html) {\n return html.slice(0, 2) === \"\") {\n rethtml += escapeHtml(html.slice(lastPos, tagStart));\n currentHtml = html.slice(tagStart, currentPos + 1);\n currentTagName = getTagName(currentHtml);\n rethtml += onTag(\n tagStart,\n rethtml.length,\n currentTagName,\n currentHtml,\n isClosing(currentHtml)\n );\n lastPos = currentPos + 1;\n tagStart = false;\n continue;\n }\n if ((c === '\"' || c === \"'\") && html.charAt(currentPos - 1) === \"=\") {\n quoteStart = c;\n continue;\n }\n } else {\n if (c === quoteStart) {\n quoteStart = false;\n continue;\n }\n }\n }\n }\n if (lastPos < html.length) {\n rethtml += escapeHtml(html.substr(lastPos));\n }\n\n return rethtml;\n}\n\nvar REGEXP_ILLEGAL_ATTR_NAME = /[^a-zA-Z0-9_:\\.\\-]/gim;\n\n/**\n * parse input attributes and returns processed attributes\n *\n * @param {String} html e.g. `href=\"#\" target=\"_blank\"`\n * @param {Function} onAttr e.g. `function (name, value)`\n * @return {String}\n */\nfunction parseAttr(html, onAttr) {\n \"user strict\";\n\n var lastPos = 0;\n var retAttrs = [];\n var tmpName = false;\n var len = html.length;\n\n function addAttr(name, value) {\n name = _.trim(name);\n name = name.replace(REGEXP_ILLEGAL_ATTR_NAME, \"\").toLowerCase();\n if (name.length < 1) return;\n var ret = onAttr(name, value || \"\");\n if (ret) retAttrs.push(ret);\n }\n\n // 逐个分析字符\n for (var i = 0; i < len; i++) {\n var c = html.charAt(i);\n var v, j;\n if (tmpName === false && c === \"=\") {\n tmpName = html.slice(lastPos, i);\n lastPos = i + 1;\n continue;\n }\n if (tmpName !== false) {\n if (\n i === lastPos &&\n (c === '\"' || c === \"'\") &&\n html.charAt(i - 1) === \"=\"\n ) {\n j = html.indexOf(c, i + 1);\n if (j === -1) {\n break;\n } else {\n v = _.trim(html.slice(lastPos + 1, j));\n addAttr(tmpName, v);\n tmpName = false;\n i = j;\n lastPos = i + 1;\n continue;\n }\n }\n }\n if (/\\s|\\n|\\t/.test(c)) {\n html = html.replace(/\\s|\\n|\\t/g, \" \");\n if (tmpName === false) {\n j = findNextEqual(html, i);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n addAttr(v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n i = j - 1;\n continue;\n }\n } else {\n j = findBeforeEqual(html, i - 1);\n if (j === -1) {\n v = _.trim(html.slice(lastPos, i));\n v = stripQuoteWrap(v);\n addAttr(tmpName, v);\n tmpName = false;\n lastPos = i + 1;\n continue;\n } else {\n continue;\n }\n }\n }\n }\n\n if (lastPos < html.length) {\n if (tmpName === false) {\n addAttr(html.slice(lastPos));\n } else {\n addAttr(tmpName, stripQuoteWrap(_.trim(html.slice(lastPos))));\n }\n }\n\n return _.trim(retAttrs.join(\" \"));\n}\n\nfunction findNextEqual(str, i) {\n for (; i < str.length; i++) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction findBeforeEqual(str, i) {\n for (; i > 0; i--) {\n var c = str[i];\n if (c === \" \") continue;\n if (c === \"=\") return i;\n return -1;\n }\n}\n\nfunction isQuoteWrapString(text) {\n if (\n (text[0] === '\"' && text[text.length - 1] === '\"') ||\n (text[0] === \"'\" && text[text.length - 1] === \"'\")\n ) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction stripQuoteWrap(text) {\n if (isQuoteWrapString(text)) {\n return text.substr(1, text.length - 2);\n } else {\n return text;\n }\n}\n\nexports.parseTag = parseTag;\nexports.parseAttr = parseAttr;\n","module.exports = {\n indexOf: function(arr, item) {\n var i, j;\n if (Array.prototype.indexOf) {\n return arr.indexOf(item);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n },\n forEach: function(arr, fn, scope) {\n var i, j;\n if (Array.prototype.forEach) {\n return arr.forEach(fn, scope);\n }\n for (i = 0, j = arr.length; i < j; i++) {\n fn.call(scope, arr[i], i, arr);\n }\n },\n trim: function(str) {\n if (String.prototype.trim) {\n return str.trim();\n }\n return str.replace(/(^\\s*)|(\\s*$)/g, \"\");\n },\n spaceIndex: function(str) {\n var reg = /\\s|\\n|\\t/;\n var match = reg.exec(str);\n return match ? match.index : -1;\n }\n};\n","/**\n * filter xss\n *\n * @author Zongmin Lei\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar DEFAULT = require(\"./default\");\nvar parser = require(\"./parser\");\nvar parseTag = parser.parseTag;\nvar parseAttr = parser.parseAttr;\nvar _ = require(\"./util\");\n\n/**\n * returns `true` if the input value is `undefined` or `null`\n *\n * @param {Object} obj\n * @return {Boolean}\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * get attributes for a tag\n *\n * @param {String} html\n * @return {Object}\n * - {String} html\n * - {Boolean} closing\n */\nfunction getAttrs(html) {\n var i = _.spaceIndex(html);\n if (i === -1) {\n return {\n html: \"\",\n closing: html[html.length - 2] === \"/\"\n };\n }\n html = _.trim(html.slice(i + 1, -1));\n var isClosing = html[html.length - 1] === \"/\";\n if (isClosing) html = _.trim(html.slice(0, -1));\n return {\n html: html,\n closing: isClosing\n };\n}\n\n/**\n * shallow copy\n *\n * @param {Object} obj\n * @return {Object}\n */\nfunction shallowCopyObject(obj) {\n var ret = {};\n for (var i in obj) {\n ret[i] = obj[i];\n }\n return ret;\n}\n\n/**\n * FilterXSS class\n *\n * @param {Object} options\n * whiteList, onTag, onTagAttr, onIgnoreTag,\n * onIgnoreTagAttr, safeAttrValue, escapeHtml\n * stripIgnoreTagBody, allowCommentTag, stripBlankChar\n * css{whiteList, onAttr, onIgnoreAttr} `css=false` means don't use `cssfilter`\n */\nfunction FilterXSS(options) {\n options = shallowCopyObject(options || {});\n\n if (options.stripIgnoreTag) {\n if (options.onIgnoreTag) {\n console.error(\n 'Notes: cannot use these two options \"stripIgnoreTag\" and \"onIgnoreTag\" at the same time'\n );\n }\n options.onIgnoreTag = DEFAULT.onIgnoreTagStripAll;\n }\n\n options.whiteList = options.whiteList || DEFAULT.whiteList;\n options.onTag = options.onTag || DEFAULT.onTag;\n options.onTagAttr = options.onTagAttr || DEFAULT.onTagAttr;\n options.onIgnoreTag = options.onIgnoreTag || DEFAULT.onIgnoreTag;\n options.onIgnoreTagAttr = options.onIgnoreTagAttr || DEFAULT.onIgnoreTagAttr;\n options.safeAttrValue = options.safeAttrValue || DEFAULT.safeAttrValue;\n options.escapeHtml = options.escapeHtml || DEFAULT.escapeHtml;\n this.options = options;\n\n if (options.css === false) {\n this.cssFilter = false;\n } else {\n options.css = options.css || {};\n this.cssFilter = new FilterCSS(options.css);\n }\n}\n\n/**\n * start process and returns result\n *\n * @param {String} html\n * @return {String}\n */\nFilterXSS.prototype.process = function(html) {\n // compatible with the input\n html = html || \"\";\n html = html.toString();\n if (!html) return \"\";\n\n var me = this;\n var options = me.options;\n var whiteList = options.whiteList;\n var onTag = options.onTag;\n var onIgnoreTag = options.onIgnoreTag;\n var onTagAttr = options.onTagAttr;\n var onIgnoreTagAttr = options.onIgnoreTagAttr;\n var safeAttrValue = options.safeAttrValue;\n var escapeHtml = options.escapeHtml;\n var cssFilter = me.cssFilter;\n\n // remove invisible characters\n if (options.stripBlankChar) {\n html = DEFAULT.stripBlankChar(html);\n }\n\n // remove html comments\n if (!options.allowCommentTag) {\n html = DEFAULT.stripCommentTag(html);\n }\n\n // if enable stripIgnoreTagBody\n var stripIgnoreTagBody = false;\n if (options.stripIgnoreTagBody) {\n var stripIgnoreTagBody = DEFAULT.StripTagBody(\n options.stripIgnoreTagBody,\n onIgnoreTag\n );\n onIgnoreTag = stripIgnoreTagBody.onIgnoreTag;\n }\n\n var retHtml = parseTag(\n html,\n function(sourcePosition, position, tag, html, isClosing) {\n var info = {\n sourcePosition: sourcePosition,\n position: position,\n isClosing: isClosing,\n isWhite: whiteList.hasOwnProperty(tag)\n };\n\n // call `onTag()`\n var ret = onTag(tag, html, info);\n if (!isNull(ret)) return ret;\n\n if (info.isWhite) {\n if (info.isClosing) {\n return \"\";\n }\n\n var attrs = getAttrs(html);\n var whiteAttrList = whiteList[tag];\n var attrsHtml = parseAttr(attrs.html, function(name, value) {\n // call `onTagAttr()`\n var isWhiteAttr = _.indexOf(whiteAttrList, name) !== -1;\n var ret = onTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n\n if (isWhiteAttr) {\n // call `safeAttrValue()`\n value = safeAttrValue(tag, name, value, cssFilter);\n if (value) {\n return name + '=\"' + value + '\"';\n } else {\n return name;\n }\n } else {\n // call `onIgnoreTagAttr()`\n var ret = onIgnoreTagAttr(tag, name, value, isWhiteAttr);\n if (!isNull(ret)) return ret;\n return;\n }\n });\n\n // build new tag html\n var html = \"<\" + tag;\n if (attrsHtml) html += \" \" + attrsHtml;\n if (attrs.closing) html += \" /\";\n html += \">\";\n return html;\n } else {\n // call `onIgnoreTag()`\n var ret = onIgnoreTag(tag, html, info);\n if (!isNull(ret)) return ret;\n return escapeHtml(html);\n }\n },\n escapeHtml\n );\n\n // if enable stripIgnoreTagBody\n if (stripIgnoreTagBody) {\n retHtml = stripIgnoreTagBody.remove(retHtml);\n }\n\n return retHtml;\n};\n\nmodule.exports = FilterXSS;\n"],"sourceRoot":""}