{"version":3,"file":"omega.default.extra.plugins.browser.local.min.js","sources":["node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_a-function.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ctx.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_fails.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_dom-create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-primitive.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_property-desc.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_global.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_core.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-object.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-object.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_descriptors.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ie8-dom-define.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dp.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_hide.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_has.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_export.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.define-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_cof.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_defined.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-iobject.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-integer.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-length.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_uid.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared-key.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys-internal.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/define-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_array-includes.js","node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iobject.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-absolute-index.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-bug-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dps.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.define-properties.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/define-properties.js","node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopn.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gops.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_own-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-pie.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopd.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_create-property.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-sap.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-own-property-descriptors.js","node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-to-string-tag.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks-define.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-object.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.symbol.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_redefine.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_meta.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_wks-ext.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_html.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopn-ext.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-own-property-symbols.js","node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.keys.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/keys.js","node_modules/@babel/runtime-corejs2/core-js/object/keys.js","node_modules/@babel/runtime-corejs2/helpers/defineProperty.js","node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js","node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js","node_modules/@babel/runtime-corejs2/helpers/createClass.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gpo.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.reflect.get.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/reflect/get.js","node_modules/@babel/runtime-corejs2/core-js/reflect/get.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-proto.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/get-prototype-of.js","node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/set-prototype-of.js","node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js","node_modules/@babel/runtime-corejs2/helpers/superPropBase.js","node_modules/@babel/runtime-corejs2/helpers/get.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/create.js","node_modules/@babel/runtime-corejs2/core-js/object/create.js","node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_invoke.js","node_modules/@babel/runtime-corejs2/helpers/inherits.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_bind.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.reflect.construct.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/reflect/construct.js","node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js","node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iterators.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-create.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-define.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-at.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.string.iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-step.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/web.dom.iterable.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/symbol/iterator.js","node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.symbol.observable.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/symbol/index.js","node_modules/@babel/runtime-corejs2/core-js/symbol.js","node_modules/@babel/runtime-corejs2/helpers/typeof.js","node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js","node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js","node_modules/@babel/runtime-corejs2/helpers/createSuper.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/PluginUtils.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_classof.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_species-constructor.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_task.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array-iter.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/core.get-iterator-method.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_for-of.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-call.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_microtask.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_new-promise-capability.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_perform.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_promise-resolve.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_user-agent.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-species.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-detect.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.promise.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-instance.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_redefine-all.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_library.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.promise.finally.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.promise.try.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/promise.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/EventStatus.ts","node_modules/@babel/runtime-corejs2/core-js/promise.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/GlobalUtil.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/reportor/DataQueueSet.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/reportor/AH5EventReportor.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-assign.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.assign.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/assign.js","node_modules/@babel/runtime-corejs2/core-js/object/assign.js","node_modules/@babel/runtime-corejs2/helpers/extends.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/json/stringify.js","node_modules/@babel/runtime-corejs2/core-js/json/stringify.js","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/AEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/FailedEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/TimeoutEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/ReportCallbackUtil.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/EncodeHash.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/reportor/PostEventReportor.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/SequencedEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5ReceivedEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/events/BlockedEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/AReportingStrategyPlugin.ts","src/com/didichuxing/plugins/defaultextra/PositionPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5PageLeaveEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5PageLeavePlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5PageLeavePlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/utils/ViewportUtils.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/utils/ElementUtils.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5ClickEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5ClickPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5ClickPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5ReceivedPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5ReceivedPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5CustomEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5CustomPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5CustomPlugin.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.is-array.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-trim.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/is-array.js","node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5JsErrorEvent.ts","node_modules/@omega-tracker/omg-abstract-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/UUID.ts","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_string-ws.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_parse-int.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.parse-int.js","node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/parse-int.js","node_modules/@babel/runtime-corejs2/core-js/parse-int.js","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/plugin/utils/MD5.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5JsErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5JsErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5PageViewEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5PageViewPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5PageViewPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5ErrorEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5ErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5ErrorPlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5PerformanceEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGH5PerformancePlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGH5PerformancePlugin.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/events/OMGH5SafeTypingEvent.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/AOMGSafeTypingPlugin.ts","src/com/didichuxing/plugins/DefaultExtraH5PluginsPublisher.ts","node_modules/@omega-tracker/omg-h5-default-strategy-plugin/src/com/didichuxing/tracker/h5/plugins/h5/OMGSafeTypingPlugin.ts"],"sourcesContent":["module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\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","// 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","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","// 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 core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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","// 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","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 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 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 hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\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","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 toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\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","// 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.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","// 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","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 shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\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","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","// 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","module.exports = require(\"core-js/library/fn/object/define-property\");","// 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","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","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","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\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","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 $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","require('../../modules/es6.object.define-properties');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperties(T, D) {\n return $Object.defineProperties(T, D);\n};\n","module.exports = require(\"core-js/library/fn/object/define-properties\");","// 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","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","exports.f = {}.propertyIsEnumerable;\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","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\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","// 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","require('../../modules/es7.object.get-own-property-descriptors');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors;\n","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptors\");","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\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 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","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// 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","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n","module.exports = require(\"core-js/library/fn/object/get-own-property-descriptor\");","module.exports = require('./_hide');\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","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","exports.f = require('./_wks');\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\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","require('../../modules/es6.symbol');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertySymbols;\n","module.exports = require(\"core-js/library/fn/object/get-own-property-symbols\");","// 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","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","module.exports = require(\"core-js/library/fn/object/keys\");","var _Object$defineProperty = require(\"../core-js/object/define-property\");\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n _Object$defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var _Object$defineProperty = require(\"../core-js/object/define-property\");\n\nvar _Object$defineProperties = require(\"../core-js/object/define-properties\");\n\nvar _Object$getOwnPropertyDescriptors = require(\"../core-js/object/get-own-property-descriptors\");\n\nvar _Object$getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _Object$getOwnPropertySymbols = require(\"../core-js/object/get-own-property-symbols\");\n\nvar _Object$keys = require(\"../core-js/object/keys\");\n\nvar defineProperty = require(\"./defineProperty\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = _Object$keys(object);\n\n if (_Object$getOwnPropertySymbols) {\n var symbols = _Object$getOwnPropertySymbols(object);\n\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return _Object$getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (_Object$getOwnPropertyDescriptors) {\n _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var _Object$defineProperty = require(\"../core-js/object/define-property\");\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n\n _Object$defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","// 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","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","require('../../modules/es6.reflect.get');\nmodule.exports = require('../../modules/_core').Reflect.get;\n","module.exports = require(\"core-js/library/fn/reflect/get\");","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 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","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/get-prototype-of\");","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","var _Object$getPrototypeOf = require(\"../core-js/object/get-prototype-of\");\n\nvar _Object$setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nfunction _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || _Object$getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _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\nmodule.exports = _superPropBase;","var _Object$getOwnPropertyDescriptor = require(\"../core-js/object/get-own-property-descriptor\");\n\nvar _Reflect$get = require(\"../core-js/reflect/get\");\n\nvar superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && _Reflect$get) {\n module.exports = _get = _Reflect$get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n\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\nmodule.exports = _get;","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","module.exports = require(\"core-js/library/fn/object/create\");","var _Object$setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nfunction _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var _Object$create = require(\"../core-js/object/create\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = _Object$create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","require('../../modules/es6.reflect.construct');\nmodule.exports = require('../../modules/_core').Reflect.construct;\n","module.exports = require(\"core-js/library/fn/reflect/construct\");","var _Reflect$construct = require(\"../core-js/reflect/construct\");\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !_Reflect$construct) return false;\n if (_Reflect$construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(_Reflect$construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","module.exports = {};\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 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","'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","module.exports = function (done, value) {\n return { value: value, done: !!done };\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","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","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = require(\"core-js/library/fn/symbol/iterator\");","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\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","module.exports = require(\"core-js/library/fn/symbol\");","var _Symbol$iterator = require(\"../core-js/symbol/iterator\");\n\nvar _Symbol = require(\"../core-js/symbol\");\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof _Symbol === \"function\" && typeof _Symbol$iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof _Symbol === \"function\" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","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\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","var _Reflect$construct = require(\"../core-js/reflect/construct\");\n\nvar getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = _Reflect$construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of PluginUtils\n */\n\nexport default abstract class PluginUtils {\n\n /**\n * page init上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PAGE_INIT: string = 'OMGH5PageInit-reporting-strategy-plugin';\n\n /**\n * page init上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_OMGLOG: string = 'OMGH5Log-reporting-strategy-plugin';\n\n /**\n * page view上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PAGE_VIEW: string = 'OMGH5PageView-reporting-strategy-plugin';\n\n /**\n * page leave上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PAGE_LEAVE: string = 'OMGH5PageLeave-reporting-strategy-plugin';\n\n /**\n * received上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_RECEIVED: string = 'OMGH5Received-reporting-strategy-plugin';\n\n /**\n * click上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_CLICK: string = 'OMGH5Click-reporting-strategy-plugin';\n\n /**\n * js error上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_JS_ERROR: string = 'OMGH5JsError-reporting-strategy-plugin';\n\n /**\n * 用户自定义上报错误事件插件名\n * @type {string}\n */\n public static PLUGIN_NAME_ERROR: string = 'OMGH5Error-reporting-strategy-plugin';\n\n /**\n * 用户自定义埋点事件插件名\n * @type {string}\n */\n public static PLUGIN_NAME_CUSTOM: string = 'OMGH5Custom-reporting-strategy-plugin';\n\n /**\n * 性能上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_PERFORMANCE: string = 'OMGH5Performance-reporting-strategy-plugin';\n\n /**\n * 安全上报策略插件名称。\n * @type {string}\n */\n public static PLUGIN_NAME_SAFETYPING: string = 'OMGH5SafeTyping-reporting-strategy-plugin';\n\n /**\n * page init event id\n * @type {string}\n */\n public static EVENT_ID_PAGE_INIT: string = 'OMGH5PageInit';\n /**\n * page init event id\n * @type {string}\n */\n public static EVENT_ID_OMG_LOG: string = 'OMGH5Log';\n\n /**\n * page view event id\n * @type {string}\n */\n public static EVENT_ID_PAGE_VIEW: string = 'OMGH5PageView';\n\n /**\n * page leave event id\n * @type {string}\n */\n public static EVENT_ID_PAGE_LEAVE: string = 'OMGH5PageLeave';\n\n /**\n * received event id\n * @type {string}\n */\n public static EVENT_ID_RECEIVED: string = 'OMGH5Received';\n\n /**\n * click event id\n * @type {string}\n */\n public static EVENT_ID_CLICK: string = 'OMGH5Click';\n\n /**\n * js error event id\n * @type {string}\n */\n public static EVENT_ID_JS_ERROR: string = 'OMGH5JsError';\n\n /**\n * 用户自定义上报错误事件id\n * @type {string}\n */\n public static EVENT_ID_ERROR: string = 'OMGH5Error';\n\n /**\n * 性能数据上报 事件id\n * @type {string}\n */\n public static EVENT_ID_PERFORMANCE: string = 'OMGH5Performance';\n /**\n * 安全专项上报 事件id\n * @type {string}\n */\n public static EVENT_ID_SAFETYPING: string = 'OMGSafeTyping';\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","// 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","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\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","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 ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\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","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\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","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = true;\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The enum class of EventStatus\n */\n\nexport enum EventStatus {\n\n /**\n * 正常状态的事件。\n */\n NORMAL = 'normal',\n\n /**\n * 被阻止上报的事件\n * @type {string}\n */\n BLOCKED = 'blocked',\n\n /**\n * 上报失败的事件。\n * @type {string}\n */\n FAILED = 'failed',\n\n /**\n * 上报超时的事件。\n * @type {string}\n */\n TIMEOUT = 'timeout'\n}\n","module.exports = require(\"core-js/library/fn/promise\");","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of GlobalUtil\n */\n\nexport default abstract class GlobalUtil {\n /**\n * 当前页面是否加载完成\n * @returns {boolean}\n */\n public static isLoaded(): boolean {\n if (window.performance && window.performance.timing) { // 现代浏览器\n return !!window.performance.timing.loadEventEnd;\n } else { // 老式浏览器\n return window.document.readyState === 'complete';\n }\n }\n\n /**\n * 是否空字符串\n * @param str{string}\n * @returns {boolean}\n */\n public static isEmptyString(str: string | undefined): boolean {\n if (!str) {\n return false;\n }\n let result = true;\n if (Object.prototype.toString.call(str) !== '[object String]') {\n result = false;\n }\n // \\s 小写的s是,匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \\f\\n\\r\\t\\v]。\n if (str.replace(/(^\\s*)|(\\s*$)/g, '').length === 0) {\n result = false;\n }\n return result;\n }\n\n /**\n * 设置OMG的日志\n * @param str\n */\n public static dispatchOmgLog(str: string): void {\n const mesageEvent: MessageEvent = document.createEvent('MessageEvent');\n mesageEvent.initMessageEvent('omglog', false, false, str, '', '', window);\n window.dispatchEvent(mesageEvent);\n }\n\n /**\n * 判断当前应用的 scheme 是否为桌面环境\n * @returns {boolean}\n */\n public static isDesktop(): boolean {\n return window.location && window.location.protocol === 'file:';\n }\n\n /**\n * 获取当前应使用的 protocol\n * @returns {string}\n */\n public static getProtocol(): string {\n // 20190618 lincal:应安全部要求,全面启用 https 协议\n return 'https://';\n // return GlobalUtil.isDesktop() ? 'https://' : '//';\n }\n}\n","import { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class DataQueueSet {\n private static instance: DataQueueSet;\n private arr: ITrackedEvent[] = [];\n\n private constructor() {\n }\n\n public static getInstance(): DataQueueSet {\n if (!DataQueueSet.instance) {\n DataQueueSet.instance = new DataQueueSet();\n }\n return this.instance;\n }\n\n /**\n * 是否重复\n */\n private uniq(value: ITrackedEvent): boolean {\n let result = true;\n this.arr.forEach((item) => {\n if (value.getData().viewportId === item.getData().viewportId &&\n value.getData().sequence === item.getData().sequence) {\n result = false;\n }\n });\n return result;\n }\n\n /**\n * 添加\n */\n public add(value: ITrackedEvent): void {\n if (this.uniq(value)) {\n this.arr.push(value);\n }\n }\n\n /**\n * 是否为空\n */\n public empty(): boolean {\n return this.arr.length === 0;\n }\n\n /**\n * 删除所有\n */\n public removeAll(): void {\n this.arr = [];\n }\n\n /**\n * 返回数组\n */\n public getData(): ITrackedEvent[] {\n return this.arr;\n }\n\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AH5EventReportor\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport GlobalUtil from 'com/didichuxing/tracker/plugin/utils/GlobalUtil';\nimport DataQueueSet from 'com/didichuxing/tracker/plugin/reportor/DataQueueSet';\n\ninterface IUnreportedItem {\n\n /**\n * 未上报事件\n */\n event: ITrackedEvent;\n\n /**\n * 该事件上报成功后执行的方法。\n * @param {ITrackedEvent} evt\n */\n resolve(evt: ITrackedEvent): void;\n\n /**\n * 该事件上报失败后执行的方法。\n * @param {ITrackedEvent} evt\n */\n reject(evt: ITrackedEvent): void;\n}\n\nexport default abstract class AH5EventReportor implements IEventReportor {\n\n private context: ITrackerContext;\n private event: ITrackedEvent;\n\n /**\n * 待上报事件。\n */\n private unreportedEvents: IUnreportedItem[];\n /**\n * 上报失败事件\n */\n protected readonly errorreportedEvents = DataQueueSet.getInstance();\n\n /**\n * @constructor\n * @param {ITrackerContext} context\n * @param {ITrackedEvent} event\n */\n constructor(context: ITrackerContext, event: ITrackedEvent) {\n this.event = event;\n this.context = context;\n this.unreportedEvents = [];\n this.reportEventsAfterLoad = this.reportEventsAfterLoad.bind(this);\n window.addEventListener('load', this.reportEventsAfterLoad);\n }\n\n /**\n * load之后,将未上报事件集中依次上报。\n */\n private reportEventsAfterLoad(): void {\n window.removeEventListener('load', this.reportEventsAfterLoad);\n while (this.unreportedEvents.length) {\n const unreportedItem: IUnreportedItem | undefined = this.unreportedEvents.shift();\n if (unreportedItem) {\n this.reportEventImmediately(unreportedItem.event).then(unreportedItem.resolve, unreportedItem.reject);\n }\n }\n }\n\n /**\n * 得到context信息\n * @returns {ITrackerContext}\n */\n protected getContext(): ITrackerContext {\n return this.context;\n }\n\n /**\n * 上报路径path\n * @returns {string}\n */\n protected get reportPath(): string {\n return '/api/web/stat';\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {Promise}\n */\n public reportEvent(): Promise {\n if (!GlobalUtil.isEmptyString(this.event.getData().appKey)) {\n GlobalUtil.dispatchOmgLog('[Omega] H5 appKey 参数 不可为空');\n throw new Error('[Omega] H5 appKey 参数 不可为空');\n return Promise.reject();\n }\n\n if (GlobalUtil.isLoaded() || this.event.getType() === PluginUtils.EVENT_ID_PAGE_INIT ||\n this.event.getType() === PluginUtils.EVENT_ID_OMG_LOG) {\n // onload已经执行完或者当前事件为页面初始化事件\n // 如果有上报错误的数据也去上报\n if (!this.errorreportedEvents.empty()) {\n this.errorreportedEvents.getData().forEach((value) => {\n this.reportEventImmediately(value);\n });\n }\n this.errorreportedEvents.removeAll();\n return this.reportEventImmediately(this.event);\n } else {\n // load未完成,将事件聚集,等待集中上报。\n return new Promise((resolve: (evt: ITrackedEvent) => void,\n reject: (evt: ITrackedEvent) => void): void => {\n this.unreportedEvents.push({\n event: this.event,\n resolve: resolve,\n reject: reject\n });\n });\n }\n }\n\n /**\n * 马上直接上报事件。\n * @param {ITrackedEvent} event\n * @returns {Promise}\n */\n protected abstract reportEventImmediately(event: ITrackedEvent): Promise;\n}\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = require(\"core-js/library/fn/object/assign\");","var _Object$assign = require(\"../core-js/object/assign\");\n\nfunction _extends() {\n module.exports = _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","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","module.exports = require(\"core-js/library/fn/json/stringify\");","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AEvent\n */\n\nimport { IPlanObject } from 'com/didichuxing/IPlanObject';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IContextContainer } from 'com/didichuxing/context/IContextContainer';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventData } from 'com/didichuxing/tracker/event/ITrackedEventData';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport GlobalUtil from 'com/didichuxing/tracker/plugin/utils/GlobalUtil';\n\nexport default abstract class AEvent implements ITrackedEvent, IContextContainer {\n\n /**\n * 事件生成的额外信息\n */\n private readonly info?: IAttrs;\n\n /**\n * 上报的上下文环境\n */\n private readonly context: IContext;\n\n /**\n * 事件的额外参数。\n */\n private readonly attrs: IAttrs;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n * @param {IAttrs} info\n */\n constructor(attrs: IAttrs, context: IContext, info?: IAttrs) {\n this.attrs = attrs;\n this.context = context;\n this.info = info;\n }\n\n /**\n * 获取版本号\n */\n private getVersion() {\n return {\n trackerVersion: this.getContext().version\n };\n }\n\n /**\n * @abstract\n * @returns {string}\n */\n public abstract getType(): string;\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackedEventData}\n */\n public getData(): ITrackedEventData {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n let appKey = context.appKey || context.productName;\n /**\n * 当配置appkey可修改的时候,将event生成的信息中的appkey进行填充\n */\n if ( context && context.modifyAppKey && this.info && this.info.appKey) {\n appKey = this.info.appKey;\n }\n return {\n eventId: this.getType(),\n timestamp: new Date().getTime(),\n viewportId: context.viewportId,\n appName: context.appName,\n appVersion: context.appVersion,\n omgId: context.omgId,\n url: context.url || location.href,\n latitude: context.latitude,\n longitude: context.longitude,\n userAgent: context.userAgent,\n osType: context.osType,\n osVersion: context.osVersion,\n appKey: appKey,\n userName: context.userName,\n userId: context.userId,\n cityId: context.cityId,\n telephone: context.telephone,\n bizId: context.bizId,\n locale: context.locale,\n countyId: context.countyId,\n countryCallingCode: context.countryCallingCode,\n utcOffset: context.utcOffset,\n attrs: this.getAttrs(),\n from: this.getFrom()\n };\n }\n\n /**\n * 将事件数据属性映射成上报的字段。\n * @returns {IObjectMap}\n */\n protected getDataKeyMap(): IObjectMap {\n return {\n eventId: 'e',\n timestamp: 'ts',\n viewportId: 'uwid',\n version: 'jv',\n appName: 'an',\n appVersion: 'av',\n omgId: 'oid',\n url: 'v',\n latitude: 'lat',\n longitude: 'lng',\n userAgent: 'ua',\n osType: 'ot',\n osVersion: 'ov',\n appKey: 'ak',\n userName: 'un',\n userId: 'uid',\n cityId: 'cityid',\n telephone: 'tel',\n bizId: 'bizId',\n locale: 'le',\n countyId: 'coi',\n countryCallingCode: 'dcc',\n utcOffset: 'uo',\n from: 'fr'\n };\n }\n\n /**\n * 将attrs属性映射成上报的字段。\n * @returns {IObjectMap}\n */\n protected getAttrsKeyMap(): IObjectMap {\n return {\n _label: 'l',\n trackerVersion: 'jv'\n };\n }\n\n /**\n * 把event data(去除attrs)序列化成json字符串。\n * @returns {string}\n */\n public serialize2JsonStrWithoutAttrs(): string {\n try {\n const eventData: ITrackedEventData = this.getData();\n const obj: IPlanObject = {};\n const dataKeyMap: IObjectMap = this.getDataKeyMap();\n for (const prop in eventData) {\n if (prop !== 'attrs' && !/Null|Undefined/.test(Object.prototype.toString.call(eventData[prop]))) {\n obj[dataKeyMap[prop] || prop] = eventData[prop];\n }\n }\n return JSON.stringify(obj);\n } catch (e) {\n GlobalUtil.dispatchOmgLog('serialize2JsonStrWithoutAttrs Error');\n return '';\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public serialize(): string {\n try {\n const eventData: ITrackedEventData = this.getData();\n // 先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组\n const newkeys = Object.keys(eventData).sort();\n const kvs: string[] = [];\n const dataKeyMap: IObjectMap = this.getDataKeyMap();\n // 要保证顺序 所以attrs也放进了循环\n newkeys.forEach((prop) => {\n if (prop !== 'attrs' && !/Null|Undefined/.test(Object.prototype.toString.call(eventData[prop]))) {\n kvs.push(`${ dataKeyMap[prop] || prop }=${ encodeURIComponent(eventData[prop]) }`);\n } else if (prop === 'attrs') {\n const attrsJsonStr: string = this.serializeAttrs2JsonStr(eventData.attrs || {});\n if (attrsJsonStr !== '{}') {\n kvs.push(`attrs=${ encodeURIComponent(attrsJsonStr) }`);\n }\n }\n });\n return kvs.join('&');\n } catch (e) {\n GlobalUtil.dispatchOmgLog('serialize Error');\n return '';\n }\n }\n\n /**\n * 格式化attrs\n * @param {IAttrs} attrs\n * @returns {string}\n */\n public serializeAttrs2JsonStr(attrs: IAttrs): string {\n try {\n const serializedAttrs: IPlanObject = {};\n const attrsKeyMap: IObjectMap = this.getAttrsKeyMap();\n for (const prop in attrs) {\n if (attrs.hasOwnProperty(prop)) {\n const key: string = attrsKeyMap[prop] || prop;\n if (/Object|Array/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = JSON.stringify(attrs[prop]);\n } else if (/String/.test(Object.prototype.toString.call(attrs[prop])) && attrs[prop]) {\n serializedAttrs[key] = attrs[prop];\n } else if (/Number/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = attrs[prop];\n } else if (/Boolean/.test(Object.prototype.toString.call(attrs[prop]))) {\n serializedAttrs[key] = attrs[prop] | 0;\n }\n }\n }\n return JSON.stringify(serializedAttrs);\n } catch (e) {\n GlobalUtil.dispatchOmgLog('serializeAttrs2JsonStr Error');\n return '';\n }\n\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n public getContext(): IContext {\n return this.context;\n }\n\n /**\n * 该事件的额外参数。\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n const thisAttrs: any = {};\n const context = this.getContext() as ITrackerContext;\n if (context.openId) {\n thisAttrs['_OMGPUID'] = context.openId;\n }\n\n return Object.assign(thisAttrs, context.attrs || {}, this.attrs, this.getVersion());\n }\n\n /**\n * 获取框架来源\n * 由业务方指定\n */\n protected getFrom(): string {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n if (GlobalUtil.isEmptyString(context.from)) {\n return `h5-${ context.from }`;\n } else {\n return 'h5';\n }\n }\n\n /**\n * 事件的状态。\n * {@link com/didichuxing/tracker/h5/plugins/events/EventStatus}\n * @returns {EventStatus}\n */\n public abstract get status(): EventStatus;\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of FailedEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default class FailedEvent extends AEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * error event\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error}\n */\n private readonly error: Error;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(error: Error, eventId: string, attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.error = error;\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.FAILED;\n }\n\n /**\n * 获取出错信息事件。\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error}\n * @returns {ErrorEvent}\n */\n public getError(): Error {\n return this.error;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of TimeoutEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default class TimeoutEvent extends AEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(eventId: string, attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.TIMEOUT;\n }\n}\n","export interface IReportCallbackArg {\n\n /**\n * 上报事件的名单。\n * @readonly\n */\n readonly eventid: IReportableEventList | null;\n}\n\nexport interface IReportableEventList {\n\n /**\n * 上报事件id\n * 0为禁止上报,1为允许上报。\n * @readonly\n */\n readonly [eventid: string]: number;\n}\n\nexport default abstract class ReportCallbackUtil {\n\n /**\n * response回调方法挂载的对象名称。\n * @type {string}\n */\n public static readonly OMG_CALLBACK_OBJ_NAME: string = '__OMG_CBKS__';\n\n /**\n * omega事件黑名单列表对象名称。\n * @type {string}\n */\n public static readonly OMG_EVENT_BLACKLIST_NAME: string = '__OMG_EVENT_BLACKLIST__';\n\n public static reportCallbackName(rawSerialized: string): string {\n const cbObjName: string = ReportCallbackUtil.OMG_CALLBACK_OBJ_NAME;\n const cbkMethodName: string = `_cbk${ new Date().getTime() }`;\n rawSerialized = `${rawSerialized}&cbk=${ cbObjName }.${ cbkMethodName }`;\n const self = this;\n if ((window as any)[cbObjName]) {\n (window as any)[cbObjName][cbkMethodName] = function() {\n delete (window as any)[cbObjName][cbkMethodName];\n self.reportCallback.apply(self, arguments);\n };\n } else {\n (window as any)[cbObjName] = {\n [cbkMethodName]: function() {\n delete (window as any)[cbObjName][cbkMethodName];\n self.reportCallback.apply(self, arguments);\n }\n };\n }\n return rawSerialized;\n }\n /**\n * 上报后的回调。\n * @param {IReportCallbackArg} cbArg\n */\n public static reportCallback(cbArg?: IReportCallbackArg): void {\n const bn: string = ReportCallbackUtil.OMG_EVENT_BLACKLIST_NAME;\n if (cbArg && cbArg.eventid) {\n if (!(window as any)[bn]) {\n (window as any)[bn] = [];\n }\n for (const prop in cbArg.eventid) {\n if (cbArg.eventid[prop] === 0) { // event black list\n if (((window as any)[bn] as string[]).indexOf(prop) < 0) {\n // not existed\n ((window as any)[bn] as string[]).push(prop);\n }\n } else { // event need to be removed from black list\n const index: number = ((window as any)[bn] as string[]).indexOf(prop);\n if (index >= 0) { // existed\n ((window as any)[bn] as string[]).splice(index, 1);\n }\n }\n }\n }\n }\n}\n","export default abstract class EncodeHash {\n /**\n * 对输入字符串进行Hash编码。\n * @param {string} str\n * @returns {number}\n */\n public static encodeHash(str: string): number {\n let hash: number = 1315423911;\n for (let i: number = 0, j: number = str.length; i < j; ++i) {\n hash ^= ((hash << 5) + str.charCodeAt(i) + (hash >> 2));\n }\n return hash & 0x7FFFFFFF;\n }\n\n /**\n * 输出增加tk的URL\n * @param str\n */\n public static encodeHashUrl(str: string): string {\n return `${ str }&tk=${ this.encodeHash(str) }`;\n }\n}\n","import AH5EventReportor from 'com/didichuxing/tracker/plugin/reportor/AH5EventReportor';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport FailedEvent from 'com/didichuxing/tracker/plugin/events/FailedEvent';\nimport TimeoutEvent from 'com/didichuxing/tracker/plugin/events/TimeoutEvent';\nimport ReportCallbackUtil from 'com/didichuxing/tracker/plugin/utils/ReportCallbackUtil';\nimport EncodeHash from 'com/didichuxing/tracker/plugin/utils/EncodeHash';\nimport GlobalUtil from 'com/didichuxing/tracker/plugin/utils/GlobalUtil';\n\n/**\n * 上报超时默认时间,单位毫秒。\n * @type {number}\n */\nconst REPORT_TIMEOUT: number = 1500;\n\nexport default class PostEventReportor extends AH5EventReportor {\n\n /**\n * @override\n * @param {ITrackedEvent} event\n * @returns {Promise}\n */\n protected reportEventImmediately(event: ITrackedEvent): Promise {\n return new Promise((resolve: (evt: ITrackedEvent) => void,\n reject: (evt: ITrackedEvent) => void): void => {\n const URL = `${GlobalUtil.getProtocol()}${this.getContext().uploadHost}${this.reportPath}`;\n const xhr = new XMLHttpRequest();\n const eventData = event.getData();\n xhr.timeout = this.getContext().timeout || REPORT_TIMEOUT;\n xhr.ontimeout = () => {\n reject(new TimeoutEvent(event.getType(), eventData.attrs || {}, this.getContext()));\n };\n xhr.open('POST', URL + `?e=${event.getType()}`);\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');\n xhr.setRequestHeader('oid', eventData.omgId || '');\n xhr.setRequestHeader('seq', eventData.appKey || '');\n // 为请求设置为唯一值\n xhr.setRequestHeader(\n 'msgid',\n `${eventData.viewportId || ''}-${eventData.sequence || ''}-${eventData.timestamp || ''}`\n );\n xhr.send(EncodeHash.encodeHashUrl(event.serialize()));\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n try {\n const response = JSON.parse(xhr.responseText);\n if (response.state && response.state.code !== 200) {\n if (response.state.code === 500) {\n this.errorreportedEvents.add(event);\n }\n GlobalUtil.dispatchOmgLog(`POST 200 上报错误${event.getType()}_\n ${response.state.code || 0}_${response.state.msg || ''}`);\n }\n ReportCallbackUtil.reportCallback(response);\n resolve(event);\n } catch (error) {\n // 解析返回值失败但是不抛异常\n console.error(`上报成功后解析失败:${xhr.responseText}`);\n }\n }\n };\n xhr.onerror = () => {\n if (xhr.status === 500) {\n this.errorreportedEvents.add(event);\n } else {\n console.error('POST上报失败onerror' + xhr.status);\n }\n reject(new FailedEvent(new Error('POST Error'), event.getType(),\n eventData.attrs || {}, this.getContext()));\n };\n });\n }\n}\n","import { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport JsonpEventReportor from 'com/didichuxing/tracker/plugin/reportor/JsonpEventReportor';\nimport BeaconEventReportor from 'com/didichuxing/tracker/plugin/reportor/BeaconEventReportor';\nimport PostEventReportor from 'com/didichuxing/tracker/plugin/reportor/PostEventReportor';\n\nexport default class SendStrategyChoice {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n public static switchSendStrategy(context: ITrackerContext, event: ITrackedEvent) {\n if (navigator.sendBeacon) {\n // 第一优先级sendBeacon\n return new PostEventReportor(context, event);\n // return new BeaconEventReportor(context, event);\n // } else if (event.serialize().length < 1500) {\n // // 第二优先级JSONP 可以阻塞 保证发送成功 但因为长度get请求问题长度限制可能无法成功,所以对长度做了限制\n // return new JsonpEventReportor(context, event);\n } else {\n return new PostEventReportor(context, event);\n }\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of SequencedEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackedEventData } from 'com/didichuxing/tracker/event/ITrackedEventData';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default abstract class SequencedEvent extends AEvent {\n\n /**\n * Omega事件全局序列名称前缀。\n * @type {string}\n */\n public static readonly OMG_SEQUENCE_NAME_PREFIX: string = '__OMG_SEQUENCE_';\n\n /**\n * Omega事件全局序列名称后缀。\n * @type {string}\n */\n public static readonly OMG_SEQUENCE_NAME_SUFFIX: string = '__';\n\n /**\n * 事件的序列号。\n * 默认为-1,表示没有序列号。\n */\n private readonly sequence: number;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n * @param {IAttrs} info 事件生成的时候默认的一些属性信息\n */\n constructor(attrs: IAttrs, context: IContext, info?: IAttrs) {\n super(attrs, context, info);\n const prefix: string = SequencedEvent.OMG_SEQUENCE_NAME_PREFIX;\n const suffix: string = SequencedEvent.OMG_SEQUENCE_NAME_SUFFIX;\n if (!(window as any)[`${ prefix }${ (context as ITrackerContext).viewportId }${ suffix }`]) {\n (window as any)[`${ prefix }${ (context as ITrackerContext).viewportId }${ suffix }`] = 0;\n }\n this.sequence = (window as any)[`${ prefix }${ (context as ITrackerContext).viewportId }${ suffix }`]++;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackedEventData}\n */\n public getData(): ITrackedEventData {\n return {\n ...super.getData(),\n sequence: this.sequence\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap}\n */\n protected getDataKeyMap(): IObjectMap {\n return {\n ...super.getDataKeyMap(),\n sequence: 'seq'\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.NORMAL;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ReceivedEvent\n */\n\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5ReceivedEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_RECEIVED;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n deviceVendor: (this.getContext() as ITrackerContext).deviceVendor,\n ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap}\n */\n protected getAttrsKeyMap(): IObjectMap {\n return {\n ...super.getAttrsKeyMap(),\n deviceVendor: 'm'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of BlockedEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { EventStatus } from 'com/didichuxing/tracker/plugin/events/EventStatus';\nimport AEvent from 'com/didichuxing/tracker/plugin/events/AEvent';\n\nexport default class BlockedEvent extends AEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(eventId: string, attrs: IAttrs, context: IContext) {\n super(attrs, context);\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n protected initSequence(): void {\n /* stop sequence */\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {EventStatus}\n */\n public get status(): EventStatus {\n return EventStatus.BLOCKED;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AReportingStrategyPlugin\n */\n\nimport { IReportingStrategyPlugin, ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IDeviceInfo } from 'com/didichuxing/tracker/context/IDeviceInfo';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport ReportCallbackUtil from 'com/didichuxing/tracker/plugin/utils/ReportCallbackUtil';\nimport BlockedEvent from 'com/didichuxing/tracker/plugin/events/BlockedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n// 上报通道国内域名集合\nconst UPLOAD_DOMAIN_LOCAL: string[] = [\n 'omgup.xiaojukeji.com',\n 'omgup1.xiaojukeji.com',\n 'omgup2.xiaojukeji.com'\n];\n\n// 上报通道国际域名集合\nconst UPLOAD_DOMAIN_GLOBAL: string[] = [\n 'omgup.didiglobal.com'\n];\n\n// 上报通道国际域名集合\nconst UPLOAD_DOMAIN_RU: string[] = [\n 'omgup-ru.didiglobal.com'\n];\n\nconst UA_BROWSER_REGEXPS: IUaRegExpNameItem[] = [{\n uaRegExps: [/(miniProgram)\\/([\\w\\.]+)/i], // WeChatMiniProgram,ios的ua中无miniProgram,但有MicroMessenger(表示是微信浏览器)\n name: 'WeChatMiniProgram'\n }, {\n uaRegExps: [/(micromessenger)\\/([\\w\\.]+)/i], // WeChat\n name: 'WeChat'\n}, {\n uaRegExps: [/(alipayclient)\\/([\\w\\.]+)/i], // Alipay\n name: 'Alipay'\n}, {\n uaRegExps: [/(QQ)\\/([\\d\\.]+)/i], // QQ, aka ShouQ\n name: 'QQ'\n},\n{\n uaRegExps: [/(didi\\.sdk)\\/([\\w\\.]+)/i], // didi.sdk\n name: 'didi.sdk'\n}, {\n name: 'dingding',\n uaRegExps: [/dingtalk/i] // ding ding talk\n}, {\n name: 'didi.passenger',\n uaRegExps: [/didi\\.passenger/i] // didi乘客端\n}, {\n name: 'didi.lite',\n uaRegExps: [/didi\\.lite/i] // uber客户端\n}, {\n name: 'zhuankuai.driver',\n uaRegExps: [\n /didigsui/i, // didi专快司机端安卓版本\n /ddudriver/i // didi专快司机端ios版本\n ] // didi专快司机端\n}, {\n name: 'zhuanche.assistant.driver',\n uaRegExps: [/zhuanche\\.cici/i] // 专车司机助手\n}, {\n name: 'didi.galaxy',\n uaRegExps: [/didi\\.galaxy/i] // 滴滴哈勃效率工具\n}, {\n name: 'daijia.driver',\n uaRegExps: [/daijia\\.driver/i] // 代驾司机端\n}, {\n name: 'didi.driver.tw',\n uaRegExps: [/didi\\.driver\\.tw/i] // didi司机端台湾\n}, {\n name: 'didi.driver.hk',\n uaRegExps: [/didi\\.driver\\.hk/i] // didi司机端台湾\n}, {\n name: 'didi.global',\n uaRegExps: [/global/i] // didi国际化端\n}, {\n name: 'didi.mini',\n uaRegExps: [/mini/i] // didi乘客端极简版\n}, {\n name: 'didies',\n uaRegExps: [/didies/i] // 企业版APP\n},\n{\n name: 'hm',\n uaRegExps: [/hm\\.passenger/i] // 街兔app\n}, {\n name: 'weibo',\n uaRegExps: [/weibo/i] // weibo\n}];\n\nconst UA_OS_REGEXPS: IUaRegExpNameItem[] = [{\n uaRegExps: [/(android)[\\/\\s-]?([\\w\\.]*)/i], // WeChat\n name: 'Android'\n}, {\n uaRegExps: [\n /cfnetwork\\/.+darwin/i,\n /ip[honead]{2,4}(?:.*os\\s([\\w]+)\\slike\\smac|;\\sopera)/i\n ], // iOS\n name: 'iOS'\n}, {\n uaRegExps: [\n /(mac\\sos\\sx)\\s?([\\w\\s\\.]*)/i,\n /(macintosh|mac(?=_powerpc)\\s)/i\n ], // Mac OS\n name: 'Mac OS'\n}, {\n uaRegExps: [\n /microsoft\\s(windows)\\s(vista|xp)/i, // Windows (iTunes)\n /(windows)\\snt\\s6\\.2;\\s(arm)/i // Windows RT\n ], // Windows\n name: 'Windows'\n}];\n\nexport interface IUaRegExpNameItem {\n /**\n * 正则表达式\n */\n readonly uaRegExps: RegExp[];\n\n /**\n * 正则表达式所对应的名称\n */\n readonly name: string;\n}\n\nexport interface INameVersion {\n readonly name: string;\n readonly version: string;\n}\n\nexport default abstract class AReportingStrategyPlugin implements IReportingStrategyPlugin {\n\n /**\n * 安装状态\n */\n private installed: boolean;\n\n /**\n * 插件所在的宿主对象。\n */\n private tracker: ITracker;\n\n /**\n * BreadcrumbList 名称\n */\n public breadcrumbListName: string;\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n this.installed = false;\n this.tracker = tracker;\n // @ts-ignore\n const AppKey: string | undefined = this.tracker.getContext().appKey || this.tracker.getContext().productName;\n this.breadcrumbListName = this.getBreadcrumbListName(AppKey || 'Other');\n Object.assign(tracker.getContext(), this.initialzedContext);\n }\n\n /**\n * 获取BREADCRUMBS列表名称\n * @param appKey\n */\n private getBreadcrumbListName(appKey: string): string {\n appKey = appKey.replace(/\\./g, '_');\n return `____OMG_BREADCRUMBS_${appKey}__`;\n }\n\n private sliceBreadcrumbList(): void {\n const breadcrumbListName = (window as any)[this.breadcrumbListName] || [];\n if (breadcrumbListName.length > 10) {\n (window as any)[this.breadcrumbListName].length = 10;\n }\n }\n\n /**\n * 根据正则匹配UA,获取相应数据。\n * @returns {INameVersion | undefined}\n */\n private getInfo(uaRegExpNameItems: IUaRegExpNameItem[]): INameVersion | undefined {\n const ua: string = navigator.userAgent;\n for (let i: number = 0, j: number = uaRegExpNameItems.length; i < j; ++i) {\n const item: IUaRegExpNameItem = uaRegExpNameItems[i];\n let name: string = item.name;\n const uaRegExps: RegExp[] = item.uaRegExps;\n for (let idx: number = 0, len: number = uaRegExps.length; idx < len; ++idx) {\n const regExpExecArray: RegExpExecArray | null = uaRegExps[idx].exec(ua);\n if (regExpExecArray && regExpExecArray.length) {\n let version: string = regExpExecArray[2];\n if (name === 'iOS') {\n version = regExpExecArray[1].replace(/_/g, '.');\n } else if (name === 'Mac OS') {\n version = version.replace(/_/g, '.');\n // @ts-ignore\n // tslint:disable-next-line:max-line-length\n } else if (name === 'WeChat' && window.wx && wx && wx.miniProgram && wx.miniProgram.getEnv && typeof wx.miniProgram.getEnv === 'function') {\n // ios的ua中无miniProgram,但有MicroMessenger(表示是微信浏览器)\n // @ts-ignore\n wx.miniProgram.getEnv((res: any) => {\n if (res.miniprogram) {\n name = 'WeChatMiniProgram';\n }\n });\n // @ts-ignore\n // tslint:disable-next-line:max-line-length\n } else if (name === 'Alipay' && window.my && my && my.getEnv && typeof my.getEnv === 'function') {\n // @ts-ignore\n my.getEnv((res: any) => {\n if (res.miniprogram) {\n name = 'AlipayMiniProgram';\n }\n });\n }\n return {\n name: name,\n version: version\n };\n }\n }\n }\n return undefined;\n }\n\n /**\n * 获取设备信息。\n * @returns {IDeviceInfo}\n */\n protected getDeviceInfo(): IDeviceInfo {\n let appName: string = 'Others';\n let appVersion: string | undefined;\n let osType: string = 'Others';\n let osVersion: string | undefined;\n const appInfo: INameVersion | undefined = this.getInfo(this.getBrowserRegExpsInUA());\n if (appInfo) {\n appName = appInfo.name;\n appVersion = appInfo.version;\n }\n const osInfo: INameVersion | undefined = this.getInfo(this.getOSRegExpsInUA());\n if (osInfo) {\n osType = osInfo.name;\n osVersion = osInfo.version;\n }\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n return {\n appName: context.appName || appName,\n appVersion: context.appVersion || appVersion,\n osType: context.osType || osType,\n osVersion: context.osVersion || osVersion\n };\n }\n\n /**\n * 浏览器名称正则\n * @returns {IUaRegExpNameItem[]}\n */\n protected getBrowserRegExpsInUA(): IUaRegExpNameItem[] {\n return UA_BROWSER_REGEXPS;\n }\n\n /**\n * 操作系统名称正则\n * @returns {IUaRegExpNameItem[]}\n */\n protected getOSRegExpsInUA(): IUaRegExpNameItem[] {\n return UA_OS_REGEXPS;\n }\n\n /**\n * 获取上报通道域名\n * @returns {string}\n */\n protected getUploadHost(): string {\n let uploadHost: string = (this.getContext() as ITrackerContext).uploadHost || 'omgup.xiaojukeji.com';\n if (/xiaojukeji\\.com/.test(uploadHost)) { // 国内域名\n if (UPLOAD_DOMAIN_LOCAL.indexOf(uploadHost) > -1) {\n uploadHost = UPLOAD_DOMAIN_LOCAL[Math.floor(Math.random() * UPLOAD_DOMAIN_LOCAL.length)];\n }\n } else if (/omgup-ru\\.didiglobal.com\\.com/.test(uploadHost)) { // 俄罗斯域名\n if (UPLOAD_DOMAIN_RU.indexOf(uploadHost) > -1) {\n uploadHost = UPLOAD_DOMAIN_RU[Math.floor(Math.random() * UPLOAD_DOMAIN_RU.length)];\n }\n } else if (/didiglobal\\.com/.test(uploadHost)) { // 国际域名\n if (UPLOAD_DOMAIN_GLOBAL.indexOf(uploadHost) > -1) {\n uploadHost = UPLOAD_DOMAIN_GLOBAL[Math.floor(Math.random() * UPLOAD_DOMAIN_GLOBAL.length)];\n }\n }\n return uploadHost;\n }\n\n /**\n * 初始化设置上下文信息。\n * @returns {IContext}\n */\n protected get initialzedContext(): IContext {\n return {\n ...this.getDeviceInfo(),\n uploadHost: this.getUploadHost()\n } as ITrackerContext;\n }\n\n /**\n * @abstract\n * @returns {string}\n */\n public abstract getName(): string;\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n public getContext(): IContext {\n return this.tracker.getContext();\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITracker}\n */\n public getTracker(): ITracker {\n return this.tracker;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n this.installed = true;\n return this.installed;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public hasInstalled(): boolean {\n return this.installed;\n }\n\n /**\n * @abstract\n */\n public abstract execute(): void;\n\n /**\n * @abstract\n */\n public abstract exit(): void;\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n this.exit();\n this.installed = false;\n delete this.tracker;\n return true;\n }\n\n /**\n * 兼容callback\n * @param {ITrackedEventArgs} eventArgs\n * @param {ITrackedEvent} event\n * @returns {ITrackedEvent}\n */\n private compatibleCallback(eventArgs: ITrackedEventArgs, event: ITrackedEvent): ITrackedEvent {\n if (eventArgs.cb) {\n eventArgs.cb(event);\n }\n return event;\n }\n\n /**\n * 添加TrackerEvent至Breadcrumb\n * @param event\n */\n private addTrackerEventToBreadcrumb(event: ITrackedEvent) {\n if (event.getType() === PluginUtils.EVENT_ID_CLICK) {\n if ((window as any)[this.breadcrumbListName]) {\n (window as any)[this.breadcrumbListName].push(event.serialize());\n } else {\n (window as any)[this.breadcrumbListName] = [];\n (window as any)[this.breadcrumbListName].push(event.serialize());\n }\n if ((window as any)[this.breadcrumbListName].length > 10) {\n (window as any)[this.breadcrumbListName].length = 10;\n }\n }\n\n }\n\n /**\n * 获取事件上报器。\n * @returns {IEventReportor}\n */\n protected abstract getEventReportor(event: ITrackedEvent): IEventReportor;\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {Promise}\n */\n public report(eventArgs: ITrackedEventArgs): Promise {\n this.sliceBreadcrumbList();\n const eventBlacklist: string[] = (window as any)[ReportCallbackUtil.OMG_EVENT_BLACKLIST_NAME] || [];\n if (eventBlacklist.some((eventid: string): boolean => eventid === eventArgs.eventId)) { // 命中黑名单\n const event: ITrackedEvent = new BlockedEvent(eventArgs.eventId, eventArgs.attrs, this.getContext());\n return Promise\n .resolve(this.compatibleCallback(eventArgs, event))\n .then((finalEvent: ITrackedEvent): ITrackedEvent => {\n this.dispatchTrackerEventUnderWindow(finalEvent);\n return finalEvent;\n });\n } else {\n const trackedEvent: ITrackedEvent = this.generateEvent(eventArgs);\n this.dispatchTrackerEventUnderWindow(trackedEvent);\n this.addTrackerEventToBreadcrumb(trackedEvent);\n return this.getEventReportor(trackedEvent).reportEvent()\n .then(\n (event: ITrackedEvent): ITrackedEvent => this.compatibleCallback(eventArgs, event),\n (event: ITrackedEvent): ITrackedEvent => this.compatibleCallback(eventArgs, event)\n );\n }\n }\n\n /**\n * 给window派发tarcker event。\n * 派发给window的事件名为omegatrack\n * @param {ITrackedEvent} event\n */\n protected dispatchTrackerEventUnderWindow(event: ITrackedEvent): void {\n const mesageEvent: MessageEvent = document.createEvent('MessageEvent');\n mesageEvent.initMessageEvent('omegatrack', false, false, event, '', '', window);\n window.dispatchEvent(mesageEvent);\n }\n\n /**\n * 生成当前插件需要上报的事件对象。\n * @abstract\n * @returns {ITrackedEvent}\n */\n protected abstract generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent;\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of PositionPlugin\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport OMGH5ReceivedEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ReceivedEvent';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\ninterface ILocationData {\n /** 纬度,浮点数,范围为-90~90,负数表示南纬 */\n latitude: number;\n /** 经度,浮点数,范围为-180~180,负数表示西经 */\n longitude: number;\n /** 速度,浮点数,单位m/s */\n speed: number;\n /** 位置的精确度 */\n accuracy: number;\n}\n\nexport default class PositionPlugin extends AReportingStrategyPlugin {\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_RECEIVED;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n\n /**\n * 获取地理位置。\n * @param {boolean} positionable\n */\n private fetchPosition(positionable: boolean): void {\n const appName = (this.getContext() as ITrackerContext).appName;\n // @ts-ignore\n if (appName && appName === 'WeChat' && window.wx && wx && wx.getLocation && typeof wx.getLocation === 'function') {\n // @ts-ignore\n wx.getLocation({\n // 同步为浏览器返回标准\n type: 'wgs84',\n success: (locationData: ILocationData): void => {\n this.getTracker().setLocation({\n longitude: locationData.longitude,\n latitude: locationData.latitude\n });\n this.report({\n eventId: PluginUtils.EVENT_ID_RECEIVED,\n attrs: {}\n });\n }\n });\n } else {\n // 乘客端桥接方法,避免WKWebView每次弹出权限框\n const didiLocationBridge = (window as any)['DiDiLocationBridge'];\n if (didiLocationBridge && didiLocationBridge.getLocation) {\n didiLocationBridge.getLocation((response: any) => {\n this.setLocation(response.lng, response.lat);\n });\n } else if (positionable && navigator.geolocation) {\n // 标准浏览器 获取地理坐标。\n navigator.geolocation.getCurrentPosition((position: Position): void => {\n this.setLocation(position.coords.longitude, position.coords.latitude);\n });\n }\n }\n\n }\n\n private setLocation(lng: number, lat: number) {\n this.getTracker().setLocation({\n longitude: lng || 0,\n latitude: lat || 0\n });\n this.report({\n eventId: PluginUtils.EVENT_ID_RECEIVED,\n attrs: {}\n });\n }\n\n /**\n * 对tracker.setConfig进行拦截。\n * @param {ITrackerConfiguration} config\n */\n private adviceSetConfigHandler(config: ITrackerConfiguration): void {\n if (typeof config.autoPosition === 'boolean'\n && config.autoPosition !== (this.getContext() as ITrackerContext).autoPosition) {\n this.fetchPosition(config.autoPosition); // 设置了自动上报地理坐标。\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n return {\n ...super.initialzedContext,\n autoPosition: typeof context.autoPosition === 'boolean' ? context.autoPosition : true\n } as IContext;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n const tracker: ITracker = this.getTracker();\n this.fetchPosition((this.getContext() as ITrackerContext).autoPosition || false);\n const setConfigHandler: (config: ITrackerConfiguration) => void = tracker.setConfig;\n tracker.setConfig = (config: ITrackerConfiguration): void => {\n this.adviceSetConfigHandler(config);\n setConfigHandler.call(tracker, config);\n };\n return super.install();\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ReceivedEvent(eventArgs.attrs, this.getContext());\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n this.adviceSetConfigHandler = (config: ITrackerConfiguration): void => {/* empty method */\n };\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageLeaveEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5PageLeaveEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_PAGE_LEAVE;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5PageLeavePlugin\n */\n\nimport { ITracker } from '@omega-tracker/core/src/com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport OMGH5PageLeaveEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PageLeaveEvent';\nimport { ITrackerAdvancedContext } from 'com/didichuxing/tracker/h5/context/ITrackerAdvancedContext';\n\nexport default abstract class AOMGH5PageLeavePlugin extends AReportingStrategyPlugin {\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.reportLeaveUnderHashChange = this.reportLeaveUnderHashChange.bind(this);\n this.reportLeaveUnderPopstateChange = this.reportLeaveUnderPopstateChange.bind(this);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_PAGE_LEAVE;\n }\n\n /**\n * hash change上报page leave\n */\n protected reportLeaveUnderHashChange(): void {\n this.reportFromLeave();\n this.getTracker().setConfig({\n url: window.location.href\n });\n }\n\n /**\n * popstate change上报page leave\n */\n protected reportLeaveUnderPopstateChange(): void {\n this.reportFromLeave();\n this.getTracker().setConfig({\n url: window.location.href\n });\n }\n\n /**\n * 离开事件上报。\n */\n protected reportFromLeave(): void {\n this.report({\n eventId: PluginUtils.EVENT_ID_PAGE_LEAVE,\n attrs: {}\n });\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.hashRouterEnable) { // 监控hash history change\n window.addEventListener('hashchange', this.reportLeaveUnderHashChange);\n }\n if (context.browserRouterEnable) { // 监控browser popstate change\n window.addEventListener('popstate', this.reportLeaveUnderPopstateChange);\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n this.getTracker().setConfig({\n url: window.location.href\n });\n this.reportFromLeave();\n window.removeEventListener('hashchange', this.reportLeaveUnderHashChange);\n window.removeEventListener('popstate', this.reportLeaveUnderPopstateChange);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5PageLeaveEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageLeavePlugin\n */\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5PageLeavePlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5PageLeavePlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\n\nexport default class OMGH5PageLeavePlugin extends AOMGH5PageLeavePlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of ViewportUtils\n */\n\nimport { IViewportExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IViewportExtraAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\n\nexport default abstract class ViewportUtils {\n\n /**\n * 获取Viewport 盒模型属性。\n * @param {Window} viewport\n * @returns {IViewportExtraAttrs}\n */\n public static getViewportBox(viewport: Window = window): IViewportExtraAttrs {\n const doc: Document = viewport.document;\n return {\n viewportHeight: doc.documentElement.offsetHeight || doc.body.offsetHeight || 0,\n viewportWidth: doc.documentElement.offsetWidth || doc.body.offsetWidth || 0\n };\n }\n\n /**\n * 获取Viewport Box属性映射KV值。\n * @returns {IObjectMap}\n */\n public static getViewportBoxAttrsMap(): IObjectMap {\n return {\n viewportHeight: 'h',\n viewportWidth: 'w'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of ElementUtils\n */\n\nimport { IElementExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IElementExtraAttrs';\nimport { IViewportExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IViewportExtraAttrs';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport ViewportUtils from 'com/didichuxing/tracker/h5/plugins/utils/ViewportUtils';\n\nexport default abstract class ElementUtils {\n\n /**\n * 获取目标对象所在的层级\n * 例如:body->0->1->3\n * @returns {string}\n */\n public static getHierarchy(element: Element): string {\n const hierarchies: Array = [];\n while (element && element.tagName.toLowerCase() !== 'body') {\n const index: number = ElementUtils.getNodeIndexInSiblings(element);\n if (index >= 0) {\n hierarchies.push(index);\n }\n element = element.parentElement as Element;\n }\n if (element) {\n hierarchies.push('body');\n } else {\n hierarchies.push('document');\n }\n return hierarchies.reverse().join('->');\n }\n\n /**\n * 获取当前节点在其兄弟节点中的索引值。\n * @param {Element} element\n * @returns {number}\n */\n private static getNodeIndexInSiblings(element: Element): number {\n const parent: Element = element.parentElement as Element;\n if (parent) {\n const children: HTMLCollection = parent.children;\n for (let i: number = 0, j: number = children.length; i < j; ++i) {\n if (element === children[i]) {\n return i;\n }\n }\n }\n return -1;\n }\n\n /**\n * 获取TargetTagName\n * 在IE下 svg 的tagName可能为空 所以需要判断\n * 对于元素节点来说,tagName属性的值和nodeName属性的值是相同的\n * 所以如果tagName没有就去拿nodeName\n * 都没有就返回空字符串\n * @param element\n * @return string\n */\n private static getTargetTagName(element: Element): string {\n if (!element) {\n return '';\n }\n if (element.tagName && element.tagName.toLocaleUpperCase) {\n return element.tagName.toLocaleUpperCase();\n } else if (element.nodeName && element.nodeName.toLocaleLowerCase) {\n return element.nodeName.toLocaleLowerCase();\n } else {\n return '';\n }\n }\n\n /**\n * 获取Element额外的属性。\n * @param {HTMLElement} element\n * @returns {IElementExtraAttrs}\n */\n public static getElementExtraAttrs(element: HTMLElement): IElementExtraAttrs | IViewportExtraAttrs {\n const targetRect: ClientRect = element.getBoundingClientRect();\n return {\n targetTagName: this.getTargetTagName(element),\n targetId: element.id,\n targetName: element.getAttribute('name') || '',\n targetHref: element.getAttribute('href') || '',\n targetClassName: element.className,\n targetX: Math.round(targetRect.left),\n targetY: Math.round(targetRect.top),\n targetWidth: Math.round(targetRect.width) || element.offsetWidth,\n targetHeight: Math.round(targetRect.height) || element.offsetHeight,\n hierarchy: element.id || element.getAttribute('name') || ElementUtils.getHierarchy(element),\n ...ViewportUtils.getViewportBox()\n };\n }\n\n /**\n * 获取Element额外属性映射KV值。\n * @returns {IObjectMap}\n */\n public static getElementExtraAttrsMap(): IObjectMap {\n return {\n targetTagName: 'l',\n targetId: 'id',\n targetName: 'name',\n targetHref: 'href',\n targetText: 'text',\n targetClassName: 'class',\n targetX: 'ex',\n targetY: 'ey',\n targetWidth: 'ew',\n targetHeight: 'eh',\n hierarchy: 'rn',\n ...ViewportUtils.getViewportBoxAttrsMap()\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ClickEvent\n */\n\nimport { IPlanObject } from 'com/didichuxing/IPlanObject';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport { IAutoClickCover } from 'com/didichuxing/tracker/IAutoClickCover';\nimport { IClickFilter } from 'com/didichuxing/tracker/IClickFilter';\nimport { IElementExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IElementExtraAttrs';\nimport { IViewportExtraAttrs } from 'com/didichuxing/tracker/h5/plugins/utils/IViewportExtraAttrs';\nimport ElementUtils from 'com/didichuxing/tracker/h5/plugins/utils/ElementUtils';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport interface ITargetPosition {\n readonly clientX: number;\n readonly clientY: number;\n readonly pageX: number;\n readonly pageY: number;\n}\n\ninterface IEventInfo {\n\n /**\n * 目标点击元素对象。\n */\n readonly target: Element;\n\n /**\n * @readonly\n * 点击的页面元素坐标。\n */\n readonly targetPosition: ITargetPosition;\n\n /**\n * 元素自己点击属性设置对象。\n * 如果设置了此参数,那么会在这些元素上应用设置在元素节点属性值作为监控数据发送。\n * 设置attr属性,比如{'attr': 'auto-track-click'}如果设置了此属性,那么会自动收集此属性对应的值。\n * 值必须为JSON数据的stringify形式,统计代码会解析json中的e(非必须,根据业务需要设置)字段和attrs(非必须)字段,\n * 自动覆盖默认的OMGH5Click事件标记及自动扩展原有attrs字段。\n */\n clickedCover?: IAutoClickCover;\n /**\n * 是否去遍历当前节点中 clickedCover 的 子元素\n */\n clickedCoverisChild?: boolean;\n\n /**\n * 只监控符合filters规则的元素\n * 如果设置了此参数,那么会在这些元素上应用设置在元素节点属性值作为监控数据发送。\n * 1.设置一个class,比如{'class': 'order-click'},则只会发送那些有class为'order-click'的元素的点击数据。\n * 2.设置一组class,比如{'class': ['order-click', 'cancel-click']}。\n * 3.设置attr属性,与enableClickAutoTrack中使用attr方式一致。\n */\n clickedFilter?: IClickFilter;\n}\n\ninterface ICustomClickedInfo {\n\n /**\n * 自定义事件名\n */\n readonly e?: string;\n\n /**\n * 自定义attrs\n */\n readonly attrs?: IPlanObject;\n}\n\ninterface IClickEventAttrs extends IElementExtraAttrs {\n\n /**\n * @readonly\n * 点击点的X坐标\n */\n readonly pointX: number;\n\n /**\n * @readonly\n * 点击点的Y坐标\n */\n readonly pointY: number;\n\n}\n\nexport default class OMGH5ClickEvent extends SequencedEvent {\n\n /**\n * @readonly\n * 事件作用节点对象。\n */\n protected readonly target: HTMLElement;\n\n /**\n * @readonly\n * 事件信息。\n */\n protected readonly eventInfo: IEventInfo;\n\n /**\n * @readonly\n * 自定义自动点击信息。\n */\n protected readonly customClickedInfo: ICustomClickedInfo | undefined;\n\n /**\n * @readonly\n * 自定义过滤自动点击信息。\n */\n protected readonly customFilterClickedInfo: ICustomClickedInfo | undefined;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(attrs: IAttrs, context: IContext, eventInfo: IEventInfo) {\n super(attrs, context);\n this.target = eventInfo.target as HTMLElement;\n this.eventInfo = eventInfo;\n if (eventInfo.clickedCover\n // && this.target.hasAttribute(eventInfo.clickedCover.attr)\n ) {\n if (eventInfo.clickedCover.attr) {\n const target = this.getRealTarget(this.target, eventInfo.clickedCover.attr);\n if (target) {\n this.target = target;\n }\n this.customClickedInfo = JSON.parse(\n this.target.getAttribute(eventInfo.clickedCover.attr) || '{}'\n ) as ICustomClickedInfo;\n }\n }\n if (eventInfo.clickedCover && eventInfo.clickedCoverisChild) {\n this.getTargetChildAttrs(this.target, eventInfo.clickedCover.attr);\n }\n if (eventInfo.clickedFilter) {\n if (eventInfo.clickedFilter.attr && this.target.hasAttribute(eventInfo.clickedFilter.attr)) {\n this.customFilterClickedInfo = JSON.parse(\n this.target.getAttribute(eventInfo.clickedFilter.attr) || '{}'\n ) as ICustomClickedInfo;\n }\n }\n }\n\n private getRealTarget(target: HTMLElement, attrKey: string): HTMLElement | null {\n if (!attrKey) {\n return target;\n }\n while (target && target !== document.body && target !== document.documentElement) {\n if (target.hasAttribute(attrKey)) {\n return target;\n }\n target = target.parentNode as any;\n }\n return null;\n }\n\n /**\n * 获取子节点中的信息\n * @param target\n * @param attr\n */\n private getTargetChildAttrs(target: Element, attr: string) {\n const childArr = target.children;\n for (let i = 0, len = childArr.length; i < len; i++) {\n if (childArr[i].nodeType === 1) { // nodeType==1 的节点为元素节点。\n const childNodeAttrs = JSON.parse(\n childArr[i].getAttribute(attr) || '{}'\n ) as ICustomClickedInfo;\n Object.assign(this.customClickedInfo || {}, childNodeAttrs);\n this.getTargetChildAttrs(childArr[i], attr);\n }\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n if (this.customFilterClickedInfo && this.customFilterClickedInfo.e) {\n return this.customFilterClickedInfo.e;\n }\n if (this.customClickedInfo && this.customClickedInfo.e) {\n return this.customClickedInfo.e;\n }\n return PluginUtils.EVENT_ID_CLICK;\n }\n\n /**\n * 获取点击事件额外上报的信息数据。\n * @returns {IClickedAttrs}\n */\n private get clickedExtraAttrs(): IClickEventAttrs | IViewportExtraAttrs {\n const targetPostion: ITargetPosition = this.eventInfo.targetPosition;\n return {\n ...ElementUtils.getElementExtraAttrs(this.target),\n pointX: targetPostion.pageX\n || (targetPostion.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft || 0)),\n pointY: targetPostion.pageY\n || (targetPostion.clientY + (document.documentElement.scrollTop || document.body.scrollTop || 0))\n };\n }\n\n /**\n * 检查属性\n */\n private get clickedAttrs(): IAttrs {\n let attrs = super.getAttrs() || {};\n if (this.customClickedInfo && this.customClickedInfo.attrs) {\n Object.assign(attrs, this.customClickedInfo.attrs);\n }\n if (this.customFilterClickedInfo && this.customFilterClickedInfo.attrs) {\n attrs = this.customFilterClickedInfo.attrs;\n }\n return attrs;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ['OMGH5CLICK']: 1,\n ...this.clickedExtraAttrs,\n ...this.clickedAttrs\n // ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap}\n */\n protected getAttrsKeyMap(): IObjectMap {\n return {\n ...super.getAttrsKeyMap(),\n ...ElementUtils.getElementExtraAttrsMap(),\n pointX: 'x',\n pointY: 'y'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The abstract class of AOMGH5ClickPlugin\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IClickFilter } from 'com/didichuxing/tracker/IClickFilter';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5ClickEvent, { ITargetPosition } from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ClickEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\ninterface IAOPHandler {\n\n /**\n * aop句柄,用以移除A该AOP的作用。\n */\n remove(): void;\n}\n\nexport interface IClickedEventArgs extends ITrackedEventArgs {\n\n /**\n * 目标点击元素对象。\n */\n readonly target: Element;\n\n /**\n * @readonly\n * 点击的页面元素坐标。\n */\n readonly targetPosition: ITargetPosition;\n}\n\nexport default abstract class AOMGH5ClickPlugin extends AReportingStrategyPlugin {\n\n /**\n * AOP handler list\n */\n private aopHandlers: IAOPHandler[] = [];\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_CLICK;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n return super.install();\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackerConfiguration}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerContext = this.getContext() as ITrackerContext;\n return {\n ...super.initialzedContext,\n autoClick: typeof context.autoClick === 'boolean' ? context.autoClick : true\n } as IContext;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n if ((this.getContext() as ITrackerContext).autoClick) { // 开启自动上报点击埋点。\n window.document.addEventListener('click', this.handleDocumentClick, true);\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n if ((this.getContext() as ITrackerContext).autoClick) { // 开启自动上报点击埋点。\n window.document.removeEventListener('click', this.handleDocumentClick, true);\n }\n }\n\n /**\n * classes是否有一向存在classList中。\n * @param {DOMTokenList} classList\n * @param {string[]} classes\n * @returns {boolean}\n */\n private containClasses(targetClassList: DOMTokenList, classes: string[]): boolean {\n for (let i: number = 0, j: number = classes.length; i < j; ++i) {\n if (targetClassList.contains(classes[i])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * 文档内所有元素点击事件代理。\n * 该代理采用捕获方式进行。\n * @override\n * @inheritDoc\n */\n protected handleDocumentClick(evt: MouseEvent): void {\n const filter: IClickFilter | undefined = this.getTracker().getClickedFilter();\n const eventTarget: EventTarget = evt.target as EventTarget;\n let target: Element;\n if (eventTarget.hasOwnProperty('correspondingUseElement')) { // SVG Element\n target = (eventTarget as SVGElementInstance).correspondingUseElement;\n } else {\n target = eventTarget as Element;\n }\n // 未命中过滤器则不上报\n if (filter && filter.class && !this.containClasses(target.classList, [].concat(filter.class as any))) {\n return;\n }\n this.report({\n eventId: PluginUtils.EVENT_ID_CLICK,\n attrs: {},\n target: target,\n targetPosition: evt\n } as IClickedEventArgs);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n const tracker: ITracker = this.getTracker();\n return new OMGH5ClickEvent(eventArgs.attrs, this.getContext(), {\n target: (eventArgs as IClickedEventArgs).target,\n targetPosition: (eventArgs as IClickedEventArgs).targetPosition,\n clickedCover: tracker.getClickedCover(),\n clickedCoverisChild: tracker.getClickedCoverChild(),\n clickedFilter: tracker.getClickedFilter()\n });\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n while (this.aopHandlers.length) {\n const aopHandler: IAOPHandler | undefined = this.aopHandlers.pop();\n if (aopHandler) {\n aopHandler.remove();\n }\n }\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ClickPlugin\n */\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5ClickPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5ClickPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\n\nexport default class OMGH5ClickPlugin extends AOMGH5ClickPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5ReceivedPlugin\n */\n\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport OMGH5ReceivedEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ReceivedEvent';\n\nexport default abstract class AOMGH5ReceivedPlugin extends AReportingStrategyPlugin {\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_RECEIVED;\n }\n\n /**\n * 对tracker.setConfig进行拦截。\n * @param {ITrackerConfiguration} config\n */\n private adviceSetConfigHandler(config: ITrackerConfiguration): void {\n if (config.userName || config.userId || config.telephone || config.cityId) { // 只有设置了用户名、uid或者手机号才进行该事件上报。\n this.report( {\n eventId: PluginUtils.EVENT_ID_RECEIVED,\n attrs: {}\n });\n }\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n const tracker: ITracker = this.getTracker();\n const setConfigHandler: (config: ITrackerConfiguration) => void = tracker.setConfig;\n tracker.setConfig = (config: ITrackerConfiguration): void => {\n setConfigHandler.call(tracker, config);\n this.adviceSetConfigHandler(config);\n };\n return super.install();\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ReceivedEvent(eventArgs.attrs, this.getContext());\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n this.adviceSetConfigHandler = (config: ITrackerConfiguration): void => {/* empty method */};\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ReceivedPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5ReceivedPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5ReceivedPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5ReceivedPlugin extends AOMGH5ReceivedPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5CustomEvent\n */\n\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\n\nexport default class OMGH5CustomEvent extends SequencedEvent {\n\n /**\n * custom event id\n */\n private readonly eventId: string;\n\n /**\n * @constructor\n * @param {IAttrs} attrs\n * @param {IContext} context\n */\n constructor(eventId: string, attrs: IAttrs, context: IContext, info?: IAttrs) {\n super(attrs, context, info);\n this.eventId = eventId;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return this.eventId;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5CustomPlugin\n */\n\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5CustomEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5CustomEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default abstract class AOMGH5CustomPlugin extends AReportingStrategyPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_CUSTOM;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5CustomEvent(eventArgs.eventId, eventArgs.attrs, this.getContext(), eventArgs.creatInfo);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5CustomPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5CustomPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5CustomPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5CustomPlugin extends AOMGH5CustomPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\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","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n","module.exports = require(\"core-js/library/fn/array/is-array\");","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5JsErrorEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5JsErrorEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_JS_ERROR;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of UUID\n */\n\nexport default abstract class UUID {\n\n /**\n *\n * @returns {string[]}\n */\n public static getByte2Hex(): string[] {\n const byteToHex: string[] = [];\n for (let i: number = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n }\n return byteToHex;\n }\n\n /**\n * bytes to uuid\n * @param {number[]} buf\n * @param {number} offset\n * @returns {string}\n */\n public static bytesToUuid(buf: number[], offset?: number): string {\n let i: number = offset || 0;\n const bth: string[] = UUID.getByte2Hex();\n // join used to fix memory issue caused by concatenation:\n // https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]]).join('');\n }\n\n /**\n * 生成伪UUID\n * @returns {string}\n */\n public static get v4(): string {\n const rnds: number[] = new Array(16);\n let r: number = 0;\n for (let i: number = 0; i < 16; ++i) {\n if ((i & 0x03) === 0) {\n r = Math.random() * 0x100000000;\n }\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n return UUID.bytesToUuid(rnds);\n }\n}\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","require('../modules/es6.parse-int');\nmodule.exports = require('../modules/_core').parseInt;\n","module.exports = require(\"core-js/library/fn/parse-int\");","export default class Md5 {\n\n // One time hashing functions\n public static hashStr(str: string, raw: boolean = false) {\n return this.onePassHasher\n .start()\n .appendStr(str)\n .end(raw);\n }\n\n public static hashAsciiStr(str: string, raw: boolean = false) {\n return this.onePassHasher\n .start()\n .appendAsciiStr(str)\n .end(raw);\n }\n // Private Static Variables\n private static stateIdentity = new Int32Array([1732584193, -271733879, -1732584194, 271733878]);\n private static buffer32Identity = new Int32Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n private static hexChars = '0123456789abcdef';\n private static hexOut: string[] = [];\n\n // Permanent instance is to use for one-call hashing\n private static onePassHasher = new Md5();\n\n private static _hex(x: any): string {\n const hc = Md5.hexChars;\n const ho = Md5.hexOut;\n let n;\n let offset;\n let j;\n let i;\n\n for (i = 0; i < 4; i += 1) {\n offset = i * 8;\n n = x[i];\n for (j = 0; j < 8; j += 2) {\n ho[offset + 1 + j] = hc.charAt(n & 0x0F);\n n >>>= 4;\n ho[offset + 0 + j] = hc.charAt(n & 0x0F);\n n >>>= 4;\n }\n }\n return ho.join('');\n }\n\n private static _md5cycle(x: Int32Array|Uint32Array, k: Int32Array|Uint32Array) {\n let a = x[0];\n let b = x[1];\n let c = x[2];\n let d = x[3];\n // ff()\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n // gg()\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n // hh()\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n // ii()\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n private privateDataLength: number = 0;\n private privateBufferLength: number = 0;\n\n private privateState: Int32Array = new Int32Array(4);\n private privateBuffer: ArrayBuffer = new ArrayBuffer(68);\n private privateBuffer8: Uint8Array;\n private privateBuffer32: Uint32Array;\n\n constructor() {\n this.privateBuffer8 = new Uint8Array(this.privateBuffer, 0, 68);\n this.privateBuffer32 = new Uint32Array(this.privateBuffer, 0, 17);\n this.start();\n }\n\n public start() {\n this.privateDataLength = 0;\n this.privateBufferLength = 0;\n this.privateState.set(Md5.stateIdentity);\n return this;\n }\n\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_\n // characters_if_their_presence_earlier_in_the_string_is_unknown\n public appendStr(str: string) {\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n let bufLen = this.privateBufferLength;\n let code;\n let i;\n\n for (i = 0; i < str.length; i += 1) {\n code = str.charCodeAt(i);\n if (code < 128) {\n buf8[bufLen++] = code;\n } else if (code < 0x800) {\n buf8[bufLen++] = (code >>> 6) + 0xC0;\n buf8[bufLen++] = code & 0x3F | 0x80;\n } else if (code < 0xD800 || code > 0xDBFF) {\n buf8[bufLen++] = (code >>> 12) + 0xE0;\n buf8[bufLen++] = (code >>> 6 & 0x3F) | 0x80;\n buf8[bufLen++] = (code & 0x3F) | 0x80;\n } else {\n code = ((code - 0xD800) * 0x400) + (str.charCodeAt(++i) - 0xDC00) + 0x10000;\n if (code > 0x10FFFF) {\n throw new Error('Unicode standard supports code points up to U+10FFFF');\n }\n buf8[bufLen++] = (code >>> 18) + 0xF0;\n buf8[bufLen++] = (code >>> 12 & 0x3F) | 0x80;\n buf8[bufLen++] = (code >>> 6 & 0x3F) | 0x80;\n buf8[bufLen++] = (code & 0x3F) | 0x80;\n }\n if (bufLen >= 64) {\n this.privateDataLength += 64;\n Md5._md5cycle(this.privateState, buf32);\n bufLen -= 64;\n buf32[0] = buf32[16];\n }\n }\n this.privateBufferLength = bufLen;\n return this;\n }\n\n public appendAsciiStr(str: string) {\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n let bufLen = this.privateBufferLength;\n let i;\n let j = 0;\n\n for (; ;) {\n i = Math.min(str.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = str.charCodeAt(j++);\n }\n if (bufLen < 64) {\n break;\n }\n this.privateDataLength += 64;\n Md5._md5cycle(this.privateState, buf32);\n bufLen = 0;\n }\n this.privateBufferLength = bufLen;\n return this;\n }\n\n public appendByteArray(input: Uint8Array) {\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n let bufLen = this.privateBufferLength;\n let i;\n let j = 0;\n\n for (; ;) {\n i = Math.min(input.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = input[j++];\n }\n if (bufLen < 64) {\n break;\n }\n this.privateDataLength += 64;\n Md5._md5cycle(this.privateState, buf32);\n bufLen = 0;\n }\n this.privateBufferLength = bufLen;\n return this;\n }\n\n public getState() {\n const self = this;\n const s = self.privateState;\n\n return {\n buffer: String.fromCharCode.apply(null, self.privateBuffer8),\n buflen: self.privateBufferLength,\n length: self.privateDataLength,\n state: [s[0], s[1], s[2], s[3]]\n };\n }\n\n public setState(state: any) {\n const buf = state.buffer;\n const x = state.state;\n const s = this.privateState;\n let i;\n\n this.privateDataLength = state.length;\n this.privateBufferLength = state.buflen;\n s[0] = x[0];\n s[1] = x[1];\n s[2] = x[2];\n s[3] = x[3];\n\n for (i = 0; i < buf.length; i += 1) {\n this.privateBuffer8[i] = buf.charCodeAt(i);\n }\n }\n\n public end(raw: boolean = false) {\n const bufLen = this.privateBufferLength;\n const buf8 = this.privateBuffer8;\n const buf32 = this.privateBuffer32;\n const i = (bufLen >> 2) + 1;\n let dataBitsLen;\n\n this.privateDataLength += bufLen;\n\n buf8[bufLen] = 0x80;\n buf8[bufLen + 1] = buf8[bufLen + 2] = buf8[bufLen + 3] = 0;\n buf32.set(Md5.buffer32Identity.subarray(i), i);\n\n if (bufLen > 55) {\n Md5._md5cycle(this.privateState, buf32);\n buf32.set(Md5.buffer32Identity);\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n dataBitsLen = this.privateDataLength * 8;\n if (dataBitsLen <= 0xFFFFFFFF) {\n buf32[14] = dataBitsLen;\n } else {\n const matches = dataBitsLen.toString(16).match(/(.*?)(.{0,8})$/);\n if (matches === null) {\n return;\n }\n\n const lo = parseInt(matches[2], 16);\n const hi = parseInt(matches[1], 16) || 0;\n\n buf32[14] = lo;\n buf32[15] = hi;\n }\n\n Md5._md5cycle(this.privateState, buf32);\n\n return raw ? this.privateState : Md5._hex(this.privateState);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5JsErrorPlugin\n */\n\nimport { IContext } from '@omega-tracker/core/src/com/didichuxing/context/IContext';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackerAdvancedContext } from 'com/didichuxing/tracker/h5/context/ITrackerAdvancedContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5JsErrorEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5JsErrorEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport UUID from 'com/didichuxing/tracker/plugin/utils/UUID';\nimport Md5 from 'com/didichuxing/tracker/plugin/utils/MD5';\n\nexport default abstract class AOMGH5JsErrorPlugin extends AReportingStrategyPlugin {\n /**\n * 错误类型\n */\n private typeList: string[] = ['global code', 'TypeError',\n 'SyntaxError', 'ReferenceError', 'RangeError', 'URIError', 'EvalError'];\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_JS_ERROR;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public install(): boolean {\n this.handleError = this.handleError.bind(this);\n this.handlePromiseError = this.handlePromiseError.bind(this);\n window.addEventListener('error', this.handleError);\n window.addEventListener('unhandledrejection', this.handlePromiseError);\n this.reportbeforeError();\n return super.install();\n }\n\n /**\n * 发送onloan之前的错误\n */\n public reportbeforeError(): void {\n const beforeErrorList = this.getTracker().beforeErrorList || [];\n beforeErrorList.forEach((event) => {\n this.handleError(event, 'beforeLoad');\n });\n this.getTracker().beforeErrorList = [];\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IContext}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n return {\n ...super.initialzedContext,\n autoError: typeof context.autoError === 'boolean' ? context.autoError : true,\n jsErrorFilters: Array.isArray(context.jsErrorFilters) ? context.jsErrorFilters : []\n } as IContext;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* Nothing to execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * 获取Breadcrumb\n */\n private getBreadcrumbList(): string[] {\n const breadcrumbListName = (window as any)[this.breadcrumbListName] || [];\n if (breadcrumbListName.length > 10) {\n (window as any)[this.breadcrumbListName].length = 10;\n }\n return breadcrumbListName;\n }\n\n /**\n * 获取错误类型\n * @param message\n */\n private getErrorType(message: string): string {\n let result: string = message || 'Empty';\n this.typeList.forEach((type: string): void => {\n if (message && message.indexOf(type) !== -1) {\n result = type;\n }\n });\n return result;\n\n }\n\n /**\n * handle promise error.\n * - 类型promiseRejectionEvent由于typescript的原因改为any\n */\n protected handlePromiseError(promiseRejectionEvent: any, occasion: string = 'afterLoad'): void {\n const event = promiseRejectionEvent.reason || {};\n // 过滤ResizeObserver 错误的上报。在 Chrome 83 无限上报会造成浏览器卡死\n if (event.message && event.message.indexOf('ResizeObserver') !== -1) {\n return;\n }\n // 过滤正则匹配后的错误\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.jsErrorFilters) {\n // 标记是否需要过滤掉\n let isFilter: boolean = false;\n context.jsErrorFilters.forEach(k => {\n const message = k.message;\n if (message instanceof RegExp && message.test(event.message)) {\n isFilter = true;\n }\n });\n if (isFilter) {\n return;\n }\n }\n const type = this.getErrorType(event.message);\n this.report({\n eventId: PluginUtils.EVENT_ID_JS_ERROR,\n attrs: {\n label: event.stack,\n message: 'Uncaught (in promise) ' + event.message,\n stack: event.stack || '',\n breadcrumb: this.getBreadcrumbList(),\n UUID: UUID.v4,\n type: type,\n typeMd5: Md5.hashStr(type),\n occasion: occasion\n }\n });\n }\n\n /**\n * handle js error.\n */\n protected handleError(event: ErrorEvent, occasion: string = 'afterLoad'): void {\n // 过滤ResizeObserver 错误的上报。在 Chrome 83 无限上报会造成浏览器卡死\n if (event.message && event.message.indexOf('ResizeObserver') !== -1) {\n return;\n }\n // 过滤正则匹配后的错误\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.jsErrorFilters) {\n // 标记是否需要过滤掉\n let isFilter: boolean = false;\n context.jsErrorFilters.forEach(k => {\n const message = k.message;\n if (message instanceof RegExp && message.test(event.message)) {\n isFilter = true;\n }\n });\n if (isFilter) {\n return;\n }\n }\n const type = this.getErrorType(event.message);\n this.report({\n eventId: PluginUtils.EVENT_ID_JS_ERROR,\n attrs: {\n label: event.error ? event.error.stack : event.message,\n line: event.lineno,\n url: event.filename,\n col: event.colno,\n message: event.message,\n stack: event.error ? (event.error.stack || '') : '',\n breadcrumb: this.getBreadcrumbList(),\n UUID: UUID.v4,\n type: type,\n typeMd5: Md5.hashStr(type),\n occasion: occasion\n }\n });\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5JsErrorEvent(eventArgs.attrs, this.getContext());\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {boolean}\n */\n public uninstall(): boolean {\n window.removeEventListener('error', this.handleError);\n window.removeEventListener('unhandledrejection', this.handlePromiseError);\n return super.uninstall();\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5JsErrorPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5JsErrorPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5JsErrorPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5JsErrorPlugin extends AOMGH5JsErrorPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of PageViewEvent\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IAttrs } from 'com/didichuxing/tracker/IAttrs';\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport { IPerformanceMemory, IPerformanceTiming } from 'com/didichuxing/tracker/h5/plugins/IPerformance';\nimport { IPlanObject } from 'com/didichuxing/IPlanObject';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\n\ninterface IPVExtraAttrs extends IAttrs {\n\n /**\n * @readonly\n * 载入当前文档的文档的 URL\n */\n readonly referrer: string;\n\n /**\n * @readonly\n * cookie是否开启\n */\n readonly cookieEnabled: boolean;\n\n /**\n * @readonly\n * 当前文档标题\n */\n readonly pageTitle: string;\n\n /**\n * @readonly\n * 当前访问协议\n */\n readonly protocol: string;\n\n /**\n * @readonly\n * 当前访问主机地址。\n */\n readonly host: string;\n\n /**\n * @readonly\n * 当前访问路径\n */\n readonly path: string;\n\n /**\n * @readonly\n * 当前访问hash\n */\n readonly hash: string;\n\n /**\n * @readonly\n * 当前访问search值。\n */\n readonly search: string;\n\n /**\n * @readonly\n * 当前设备屏幕高。\n */\n readonly screenHeight: number;\n\n /**\n * @readonly\n * 当前设备屏幕宽。\n */\n readonly screenWidth: number;\n\n /**\n * @readonly\n * 当前设备颜色深度\n */\n readonly colorDepth: string;\n\n /**\n * @readonly\n * 当前设备供应商。\n */\n readonly deviceVendor: string;\n}\n\nexport default class OMGH5PageViewEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_PAGE_VIEW;\n }\n\n /**\n * 获取全局性能信息。\n * {@link https://github.com/addyosmani/timing.js/issues/9}\n * @returns {Performance}\n */\n private get globalPerformance(): Performance {\n const global: any = window;\n return global.performance || global.webkitPerformance || global.msPerformance || global.mozPerformance;\n }\n\n /**\n * 获取时间方面性能数据。\n * {@link https://www.w3.org/TR/navigation-timing/}\n * @returns {IPerformance}\n */\n protected get performanceTiming(): IPerformanceTiming {\n const timing: PerformanceTiming = this.globalPerformance.timing;\n const FP = performance.getEntriesByName('first-paint')[0];\n const FCP = performance.getEntriesByName('first-contentful-paint')[0];\n const FMP = performance.getEntriesByName('fmp')[0];\n return {\n redirectDuration: timing.fetchStart - timing.navigationStart,\n dnsDuration: timing.domainLookupEnd - timing.domainLookupStart,\n tcpDuration: timing.connectEnd - timing.connectStart,\n ttfbDuration: timing.responseStart - timing.requestStart,\n transDuration: timing.responseEnd - timing.responseStart,\n domParsedDuration: timing.domInteractive - timing.responseEnd,\n resourceLoadDuration: timing.loadEventStart - timing.domContentLoadedEventEnd,\n firstByteTime: timing.responseStart - timing.domainLookupStart,\n htmlLoadCompleteTime: timing.responseEnd - timing.navigationStart,\n firstPaintTime: FP && FP.startTime,\n firstContentfulPaintTime: FCP && FCP.startTime,\n firstMeaningfulPaintTime: FMP && FMP.startTime,\n interactTime: timing.domInteractive - timing.navigationStart,\n domReadyTime: timing.domContentLoadedEventEnd - timing.navigationStart,\n pageLoadTime: timing.loadEventStart - timing.navigationStart,\n domContentLoadedTime: timing.domContentLoadedEventEnd - timing.navigationStart,\n domCompleteTime: timing.domComplete - timing.navigationStart,\n trackerSDKLoadDuration: this.trackerSDKLoadDuration,\n loadEventTime: timing.loadEventEnd - timing.navigationStart\n };\n }\n\n /**\n * 获取内存方面性能数据。\n * @returns {IPerformanceMemory}\n */\n protected get performanceMemory(): IPerformanceMemory {\n const memory: IPlanObject = (this.globalPerformance as any).memory || {};\n return {\n usedJSHeapSize: memory.usedJSHeapSize as number || 0,\n totalJSHeapSize: memory.totalJSHeapSize as number || 0,\n jsHeapSizeLimit: memory.jsHeapSizeLimit as number || 0\n };\n }\n\n /**\n * tracker sdk包加载的时间。\n * @returns {number}\n */\n protected get trackerSDKLoadDuration(): number {\n if (this.globalPerformance && this.globalPerformance.getEntries) {\n const entries: PerformanceEntry[] = this.globalPerformance.getEntries();\n let trackerPerformanceEntry: PerformanceEntry | undefined;\n entries.some((entry: PerformanceEntry): boolean => {\n const initiatorType: string = (entry as PerformanceResourceTiming).initiatorType;\n if (initiatorType && initiatorType === 'script' && /\\/omega[\\.\\w]*\\.min\\.js$/.test(entry.name)) {\n trackerPerformanceEntry = entry;\n return true;\n }\n return false;\n });\n if (trackerPerformanceEntry) {\n return Math.round(trackerPerformanceEntry.duration);\n }\n }\n return 0;\n }\n\n /**\n * 获得pv上报时所带的性能数据。\n * @returns {(IAttrs & IPerformanceTiming & IPerformanceMemory) | IAttrs}\n */\n private get pvPerformanceAttrs(): (IAttrs & IPerformanceTiming & IPerformanceMemory) | IAttrs {\n if (this.globalPerformance) {\n return {\n ...this.performanceTiming,\n ...this.performanceMemory\n };\n }\n return {};\n }\n\n /**\n * 获取PV额外的属性数据。\n * @returns {IPVExtraAttrs}\n */\n private get pvExtraAttrs(): IPVExtraAttrs {\n const document: Document = window.document || {documentElement: {}};\n const navigator: Navigator = window.navigator || {};\n const location: Location = window.location || {};\n const screen: Screen = window.screen || {};\n return {\n referrer: document.referrer,\n cookieEnabled: navigator.cookieEnabled,\n pageTitle: (this.getContext() as any).pageTitle || document.title,\n protocol: location.protocol,\n host: location.host,\n path: location.pathname,\n hash: location.hash,\n search: location.search,\n screenWidth: document.documentElement.clientWidth,\n screenHeight: document.documentElement.clientHeight,\n colorDepth: screen.colorDepth ? `${ screen.colorDepth }-bit` : '',\n deviceVendor: (this.getContext() as ITrackerContext).deviceVendor || ''\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IAttrs}\n */\n protected getAttrs(): IAttrs {\n return {\n ...this.pvExtraAttrs,\n ...this.pvPerformanceAttrs,\n ...super.getAttrs()\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap}\n */\n protected getAttrsKeyMap(): IObjectMap {\n return {\n ...super.getAttrsKeyMap(),\n ...this.getPVExtraAttrsKeyMap(),\n ...this.getPerformanceTimingAttrsKeyMap(),\n ...this.getPerformanceMemoryAttrsKeyMap()\n };\n }\n\n /**\n * PV额外上报属性键值对映射实体。\n * @returns {IObjectMap}\n */\n private getPVExtraAttrsKeyMap(): IObjectMap {\n return {\n referrer: 'r',\n cookieEnabled: 'c',\n pageTitle: 'pt',\n protocol: 'upr',\n host: 'uho',\n path: 'upa',\n hash: 'uha',\n search: 'us',\n screenHeight: 'sh',\n screenWidth: 'sw',\n colorDepth: 'cd',\n deviceVendor: 'm',\n pvType: 'pv_t'\n };\n }\n\n /**\n * 耗时相关性能属性键值对映射实体。\n * @see {@interface com/didichuxing/tracker/h5/plugins/pv/IPerformance}\n * @returns {IObjectMap}\n */\n private getPerformanceTimingAttrsKeyMap(): IObjectMap {\n return {\n dnsDuration: 't_dns',\n tcpDuration: 't_tcp',\n ttfbDuration: 't_rq',\n transDuration: 't_trans',\n domParsedDuration: 't_psdm',\n resourceLoadDuration: 't_res',\n firstByteTime: 't_fb',\n htmlLoadCompleteTime: 't_hlc',\n firstPaintTime: 't_fp',\n firstContentfulPaintTime: 't_fcp',\n firstMeaningfulPaintTime: 't_fmp',\n interactTime: 't_di',\n domReadyTime: 't_dmrd',\n pageLoadTime: 't_pgrd',\n domContentLoadedTime: 't_dcl',\n domCompleteTime: 't_dc',\n trackerSDKLoadDuration: 't_omgld',\n loadEventTime: 't_ld'\n };\n }\n\n /**\n * 内存相关性能属性键值对映射实体。\n * @see {@interface com/didichuxing/tracker/h5/plugins/pv/IPerformance}\n * @returns {IObjectMap}\n */\n private getPerformanceMemoryAttrsKeyMap(): IObjectMap {\n return {\n usedJSHeapSize: 'm_used',\n totalJSHeapSize: 'm_total',\n jsHeapSizeLimit: 'm_limit'\n };\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5PageViewPlugin\n */\n\nimport { ITracker } from '@omega-tracker/core/src/com/didichuxing/tracker/ITracker';\nimport { IContext } from 'com/didichuxing/context/IContext';\nimport { ITrackerConfiguration } from 'com/didichuxing/tracker/config/ITrackerConfiguration';\nimport { ITrackerAdvancedContext } from 'com/didichuxing/tracker/h5/context/ITrackerAdvancedContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5PageViewEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PageViewEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nconst PV_TYPE = {\n hash: 'hash',\n popstate: 'popstate',\n normal: 'normal'\n};\n\nexport default abstract class AOMGH5PageViewPlugin extends AReportingStrategyPlugin {\n\n /**\n * 访问过的url栈。\n * @type {string[]}\n */\n private urlStatck: string[] = [document.referrer];\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.reportPVUnderHashChange = this.reportPVUnderHashChange.bind(this);\n this.reportPVUnderPopstateChange = this.reportPVUnderPopstateChange.bind(this);\n this.urlStatck.push(location.href);\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_PAGE_VIEW;\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {ITrackerConfiguration}\n */\n protected get initialzedContext(): IContext {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n return {\n ...super.initialzedContext,\n autoSendPageView: typeof context.autoSendPageView === 'boolean' ? context.autoSendPageView : true\n } as IContext;\n }\n\n /**\n * 上报PV数据。\n */\n protected reportPV(pvType: string): void {\n this.getTracker().setConfig({\n url: window.location.href\n });\n this.report({\n eventId: PluginUtils.EVENT_ID_PAGE_VIEW,\n attrs: {\n // 修复每次发送的reffer是当前的url\n referrer: this.urlStatck.length > 1 ? this.urlStatck[this.urlStatck.length - 2] : this.urlStatck[0],\n pvType\n }\n });\n }\n\n /**\n * hash change上报pv\n */\n protected reportPVUnderHashChange(): void {\n this.reportPV(PV_TYPE.hash);\n }\n\n /**\n * popstate change上报pv\n */\n protected reportPVUnderPopstateChange(): void {\n this.reportPV(PV_TYPE.popstate);\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n const context: ITrackerAdvancedContext = this.getContext() as ITrackerAdvancedContext;\n if (context.autoSendPageView) { // 自动上报PV数据\n this.reportPV(PV_TYPE.normal);\n if (context.hashRouterEnable) { // 监控hash history change\n window.addEventListener('hashchange', this.reportPVUnderHashChange);\n }\n if (context.browserRouterEnable) { // 监控browser popstate change\n window.addEventListener('popstate', this.reportPVUnderPopstateChange);\n }\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n while (this.urlStatck.length) {\n this.urlStatck.pop();\n }\n window.removeEventListener('hashchange', this.reportPVUnderHashChange);\n window.removeEventListener('popstate', this.reportPVUnderPopstateChange);\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5PageViewEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageViewPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5PageViewPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5PageViewPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5PageViewPlugin extends AOMGH5PageViewPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ErrorEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\n/**\n * 用户主动上报的错误事件。\n *\n * @class\n * @extends {SequencedEvent}\n */\nexport default class OMGH5ErrorEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_ERROR;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5ErrorPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5ErrorEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5ErrorEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default abstract class AOMGH5ErrorPlugin extends AReportingStrategyPlugin {\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_ERROR;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n /* execute */\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5ErrorEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5ErrorPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5ErrorPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5ErrorPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5ErrorPlugin extends AOMGH5ErrorPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5JsErrorEvent\n */\n\nimport SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\n\nexport default class OMGH5PerformanceEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IObjectMap}\n */\n protected getAttrsKeyMap(): IObjectMap {\n return {\n ...super.getAttrsKeyMap(),\n pageLoadTime: 't_pgrd'\n };\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_PERFORMANCE;\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of AOMGH5PageInitPlugin\n */\n\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport OMGH5PerformanceEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5PerformanceEvent';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default abstract class AOMGH5PerformancePlugin extends AReportingStrategyPlugin {\n /**\n * 是否上报过\n */\n private isReport: boolean = false;\n\n /**\n * 获取全局性能信息。\n * {@link https://github.com/addyosmani/timing.js/issues/9}\n * @returns {Performance}\n */\n private globalPerformance(): Performance {\n const global: any = window;\n return global.performance || global.webkitPerformance || global.msPerformance || global.mozPerformance;\n }\n\n /**\n * 获取请求的时间统计信息\n */\n private getEntries(): any[] {\n const performance: Performance = this.globalPerformance();\n if (performance && performance.getEntries) {\n const entries: any[] = window.performance.getEntries() || [];\n if (entries.length > 100) {\n entries.length = 100;\n }\n return entries;\n } else {\n return [];\n }\n }\n\n private getEntryLength(): number {\n const performance: Performance = this.globalPerformance();\n if (performance && performance.getEntries) {\n const entries: any[] = window.performance.getEntries() || [];\n return entries.length;\n } else {\n return 0;\n }\n }\n\n private reportData() {\n if (this.isReport) {\n return;\n }\n document.removeEventListener('visibilitychange', this.onVisibilityChange, true);\n\n const entries = this.getEntries();\n const entryLength = this.getEntryLength();\n const timing: PerformanceTiming = performance.timing;\n this.report({\n eventId: PluginUtils.EVENT_ID_PERFORMANCE,\n attrs: {\n entries: entries,\n entryLength: entryLength,\n pageLoadTime: timing.loadEventStart - timing.navigationStart\n }\n });\n this.isReport = true;\n }\n\n private onVisibilityChange() {\n const performance: Performance = this.globalPerformance();\n if (document.visibilityState === 'hidden') {\n performance && performance.mark('hidden');\n }\n if (document.visibilityState === 'visible') {\n performance && performance.mark('visible');\n document.removeEventListener('visibilitychange', this.onVisibilityChange, true);\n }\n }\n\n /**\n * @override\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_PERFORMANCE;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n this.onVisibilityChange = this.onVisibilityChange.bind(this);\n document.addEventListener('visibilitychange', this.onVisibilityChange, true);\n\n const performance: Performance = this.globalPerformance();\n try {\n const performanceObserver: PerformanceObserver = new PerformanceObserver(() => {\n performance && performance.mark('largest-contentful-paint');\n });\n performanceObserver.observe({ entryTypes: ['largest-contentful-paint'] });\n // 如果有用户交互,PerformanceObserver会停止观测,此时上报性能数据\n ['keydown', 'click'].forEach((type) => {\n addEventListener(type, () => {\n this.reportData();\n if (performanceObserver && performanceObserver.disconnect) {\n performanceObserver.disconnect();\n }\n }, { once: true, capture: true });\n });\n\n } catch (e) {\n // 如果浏览器不支持此API\n this.reportData();\n }\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n /* Nothing to exit */\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5PerformanceEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of OMGH5PageViewPlugin\n */\n\nimport { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGH5PerformancePlugin from 'com/didichuxing/tracker/h5/plugins/AOMGH5PerformancePlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGH5PerformancePlugin extends AOMGH5PerformancePlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n","import SequencedEvent from 'com/didichuxing/tracker/plugin/events/SequencedEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\nexport default class OMGH5SafeTypingEvent extends SequencedEvent {\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getType(): string {\n return PluginUtils.EVENT_ID_SAFETYPING;\n }\n}\n","import { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { ITracker } from 'com/didichuxing/tracker/ITracker';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\nimport { IObjectMap } from 'com/didichuxing/IObjectMap';\nimport { ITrackedEventArgs } from 'com/didichuxing/tracker/plugin/IReportingStrategyPlugin';\nimport AReportingStrategyPlugin from 'com/didichuxing/tracker/plugin/AReportingStrategyPlugin';\nimport OMGH5SafeTypingEvent from 'com/didichuxing/tracker/h5/plugins/events/OMGH5SafeTypingEvent';\nimport PluginUtils from 'com/didichuxing/tracker/plugin/utils/PluginUtils';\n\ninterface ISafeTyping {\n text: string; // 最终输入框的内容\n tl: number; // 从开始输入到输入结束的时间长度(ms)\n dl: number; // 输入框内容的删除次数\n count: number; // 输入框最终的字符个数\n}\n\nconst FORM_ELEMENT_MAP: IObjectMap = {\n input: 'input'\n};\nexport default abstract class AOMGSafeTypingPlugin extends AReportingStrategyPlugin {\n private currentFormElement: HTMLElement | undefined;\n private currentDate: number = 0;\n private safeTyping: ISafeTyping = {\n text: '',\n tl: 0,\n dl: 0,\n count: 0\n };\n\n /**\n * @constructor\n */\n constructor(tracker: ITracker) {\n super(tracker);\n this.delegateInputChange = this.delegateInputChange.bind(this);\n this.reportSafeTyping = this.reportSafeTyping.bind(this);\n }\n\n /**\n * @override\n * @inheritDoc\n * @returns {string}\n */\n public getName(): string {\n return PluginUtils.PLUGIN_NAME_SAFETYPING;\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public execute(): void {\n document.body.addEventListener('input', this.delegateInputChange);\n document.body.addEventListener('change', this.reportSafeTyping);\n }\n\n /**\n * @override\n * @inheritDoc\n */\n public exit(): void {\n this.currentFormElement = undefined;\n document.body.removeEventListener('input', this.delegateInputChange);\n document.body.removeEventListener('change', this.reportSafeTyping);\n }\n\n /**\n * 委托input change事件\n * @param {Event} event\n */\n private delegateInputChange(event: Event): void {\n const target: HTMLInputElement = event.target as HTMLInputElement;\n // 是否在监控类型中\n if ((target.tagName && FORM_ELEMENT_MAP[target.tagName.toLowerCase()]) ||\n (target.nodeName && FORM_ELEMENT_MAP[target.nodeName.toLowerCase()])) {\n if ( (!target.getAttribute('type')) || target.getAttribute('type') === 'text') {\n // 是否是同节点 如果是 说明并非新节点 进行运算\n if (this.currentFormElement === target) {\n // @ts-ignore\n if (event.inputType && event.inputType === 'deleteContentBackward') {\n this.safeTyping.dl++;\n } else if (target.value && this.safeTyping.text.length > target.value.length) {\n this.safeTyping.dl++;\n }\n this.safeTyping.text = target.value || '';\n this.currentFormElement = target;\n } else {\n this.safeTyping = {\n text: target.value || '',\n tl: 0,\n dl: 0,\n count: 0\n };\n this.currentDate = new Date().getTime();\n this.currentFormElement = target;\n }\n }\n }\n }\n\n /**\n * 发送数据\n * @param event\n */\n private reportSafeTyping(event: Event): void {\n const target: HTMLInputElement = event.target as HTMLInputElement;\n // 是否在监控类型中 如果在 就去上包\n if ((target.tagName && FORM_ELEMENT_MAP[target.tagName.toLowerCase()]) ||\n (target.nodeName && FORM_ELEMENT_MAP[target.nodeName.toLowerCase()])) {\n if ( (!target.getAttribute('type')) || target.getAttribute('type') === 'text' ) {\n this.safeTyping.text = target.value || '';\n this.safeTyping.tl = new Date().getTime() - this.currentDate;\n this.safeTyping.count = this.safeTyping.text.length;\n this.report({\n eventId: PluginUtils.EVENT_ID_SAFETYPING,\n attrs: this.safeTyping\n });\n }\n }\n this.currentFormElement = undefined;\n }\n\n /**\n * @override\n * @inheritDoc\n * @param {ITrackedEventArgs} eventArgs\n * @returns {ITrackedEvent}\n */\n protected generateEvent(eventArgs: ITrackedEventArgs): ITrackedEvent {\n return new OMGH5SafeTypingEvent(eventArgs.attrs, this.getContext());\n }\n}\n","/**\n * Copyright (c) 2018-present, Didi, Inc.\n * All rights reserved.\n *\n * @author Cory(kuanghongrui@didichuxing.com)\n *\n * @file The class of DefaultExtraH5PluginsPublisher\n */\n\nimport PositionPlugin from 'com/didichuxing/plugins/defaultextra/PositionPlugin';\nimport OMGH5PageLeavePlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5PageLeavePlugin';\nimport OMGH5ClickPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5ClickPlugin';\nimport OMGH5ReceivedPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5ReceivedPlugin';\nimport OMGH5CustomPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5CustomPlugin';\nimport OMGH5JsErrorPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5JsErrorPlugin';\nimport OMGH5PageViewPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5PageViewPlugin';\nimport OMGH5ErrorPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5ErrorPlugin';\nimport OMGH5PerformancePlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGH5PerformancePlugin';\nimport OMGSafeTypingPlugin from 'com/didichuxing/tracker/h5/plugins/h5/OMGSafeTypingPlugin';\n\nexport default [\n PositionPlugin,\n OMGH5PageLeavePlugin,\n OMGH5ClickPlugin,\n OMGH5ReceivedPlugin,\n OMGH5CustomPlugin,\n OMGH5JsErrorPlugin,\n OMGH5PageViewPlugin,\n OMGH5ErrorPlugin,\n OMGH5PerformancePlugin,\n OMGSafeTypingPlugin\n];\n\n/*\nfunction encodeHash(str: string): number {\n let hash: number = 1315423911;\n for (let i: number = 0, j: number = str.length; i < j; ++i) {\n hash ^= ((hash << 5) + str.charCodeAt(i) + (hash >> 2));\n }\n return hash & 0x7FFFFFFF;\n}\n\nfunction uploadSpec(g: any, NAME_POINT: string, URL_POINT: string) {\n console.log(`[${ NAME_POINT }]: ${ URL_POINT } loaded`);\n try {\n // 如果是 webapp 5.0\n const instNames = Object.keys(g).filter(\n (key) => key.includes('__OMG_INSTANTIATION') &&\n (g)[key].context.appKey === 'omega3b0d3e7e46' // 'omega3b0d3e7e46' // holmes-web\n );\n if (instNames.length > 0) {\n console.log(`[${ NAME_POINT }]: 命中 ak`);\n const OmgInst: any = (g)[instNames[0]];\n const oc = OmgInst.context;\n const URL = `//${ oc.uploadHost }${ '/api/web/stat' }`; // `//omgup.xiaojukeji.com/api/web/stat`;\n\n const files: any = g.performance.getEntries().filter((it: any) => it.name.indexOf(URL_POINT) > -1);\n const duration = files.length > 0 ? files[0].duration : -1;\n\n const xhr = new XMLHttpRequest();\n xhr.timeout = oc.timeout || 1500;\n xhr.ontimeout = () => {\n console.log(`[${ NAME_POINT }]: Omega POST Timeout`);\n // reject(new TimeoutEvent(event.getType(), event.getData().attrs || {}, this.getContext()));\n };\n xhr.open('POST', URL);\n // ak=omega3b0d3e7e46&e=OMGJsMonitorConfig& OMGJsMonitorPlugin\n const data: any = {\n ak: oc.appKey,\n an: 'Others',\n attrs: {\n jv: oc.version,\n omgJsDuration: duration\n },\n e: NAME_POINT,\n fr: 'h5',\n oid: oc.openid || oc.omgId,\n ot: oc.osType,\n ov: oc.osVersion,\n seq: '0',\n ts: new Date().getTime(),\n v: oc.url,\n ua: oc.userAgent,\n uo: oc.utcOffset,\n uwid: oc.viewportId\n // tk: encodeHash\n };\n let newData: any = Object.assign({}, data);\n newData.attrs = JSON.stringify(data.attrs);\n newData = Object.keys(newData).map((key) => `${ key }=${ encodeURIComponent(newData[key]) }`).join('&');\n newData = newData + `&tk=${ encodeHash(newData) }`;\n xhr.send(newData);\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n const response = JSON.parse(xhr.responseText);\n if (response.state && response.state.code !== 200) {\n if (response.state.code === 500) {\n console.log(\n `[${ NAME_POINT }]: error code=${ response.state.code }, msg=${ response.state.msg }`);\n // this.errorreportedEvents.add(event);\n }\n // GlobalUtil.dispatchOmgLog(`POST 200 上报错误${event.getType()}_\n // ${response.state.code || 0}_${response.state.msg || ''}`);\n }\n // ReportCallbackUtil.reportCallback(response);\n // resolve(event);\n console.log(`[${ NAME_POINT }]: done`);\n }\n };\n xhr.onerror = () => {\n console.log(`[${ NAME_POINT }]: onerror`);\n if (xhr.status === 500) {\n // this.errorreportedEvents.add(event);\n } else {\n // console.error('POST上报失败onerror' + xhr.status);\n }\n // reject(new FailedEvent(new Error('POST Error'), event.getType(),\n // event.getData().attrs || {}, this.getContext()));\n };\n\n console.log(`[${ NAME_POINT }]: 发出请求`);\n }\n } catch (error) {\n console.log(`[${ NAME_POINT }]: warn`);\n console.warn(error);\n }\n}\n\nconst gw = window as any;\nif (gw) {\n const NAME_POINT = 'OMGJsMonitorPlugin';\n const URL_POINT = 'omega.default.extra.plugins.min.js';\n uploadSpec(gw, NAME_POINT, URL_POINT);\n}\n*/\n","import { ITrackerContext } from 'com/didichuxing/tracker/context/ITrackerContext';\nimport { IEventReportor } from 'com/didichuxing/tracker/plugin/reportor/IEventReportor';\nimport AOMGSafeTypingPlugin from 'com/didichuxing/tracker/h5/plugins/AOMGSafeTypingPlugin';\nimport SendStrategyChoice from 'com/didichuxing/tracker/h5/plugins/utils/SendStrategyChoice';\nimport { ITrackedEvent } from 'com/didichuxing/tracker/event/ITrackedEvent';\n\nexport default class OMGSafeTypingPlugin extends AOMGSafeTypingPlugin {\n\n /**\n * @override\n * @inheritDoc\n * @returns {IEventReportor}\n */\n protected getEventReportor(event: ITrackedEvent): IEventReportor {\n return SendStrategyChoice.switchSendStrategy(this.getContext() as ITrackerContext, event);\n }\n}\n"],"names":["_aFunction","it","TypeError","_ctx","fn","that","length","aFunction","undefined","a","call","b","c","apply","arguments","_fails","exec","e","_domCreate","is","document","createElement","_toPrimitive","S","isObject","val","toString","valueOf","_propertyDesc","bitmap","value","enumerable","configurable","writable","_global","commonjsHelpers.createCommonjsModule","module","global","exports","window","Math","self","Function","__g","_core","core","version","__e","_isObject","_anObject","_descriptors","require$$0","Object","defineProperty","get","_ie8DomDefine","require$$1","require$$2","dP","_objectDp","f","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","_hide","object","key","createDesc","hasOwnProperty","_has","PROTOTYPE","$export","type","name","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","target","has","ctx","C","this","virtual","R","hide","U","_export","_cof","slice","_defined","_toIobject","IObject","defined","_toInteger","isNaN","floor","ceil","_toLength","min","toInteger","_uid","concat","id","px","_sharedKey","shared","uid","_objectKeysInternal","names","toIObject","i","result","IE_PROTO","push","arrayIndexOf","IS_INCLUDES","$Object","desc","_iobject","propertyIsEnumerable","cof","split","max","_shared","SHARED","store","mode","copyright","random","$this","el","fromIndex","index","toLength","_enumBugKeys","_objectKeys","keys","$keys","enumBugKeys","_objectDps","defineProperties","Properties","getKeys","T","D","hiddenKeys","_objectGopn","getOwnPropertyNames","_objectGops","getOwnPropertySymbols","Reflect","_ownKeys","ownKeys","gOPN","getSymbols","gOPS","_objectPie","gOPD","getOwnPropertyDescriptor","_objectGopd","pIE","getOwnPropertyDescriptors","getDesc","$defineProperty","_objectSap","KEY","exp","fails","$getOwnPropertyDescriptor","_setToStringTag","tag","stat","prototype","TAG","def","_wksDefine","$Symbol","Symbol","charAt","wksExt","_toObject","Empty","wrap","sym","AllSymbols","_create","_k","$defineProperties","symbols","isEnum","enumKeys","l","$propertyIsEnumerable","E","ObjectProto","OPSymbols","HIDDEN","$getOwnPropertyNames","META","$getOwnPropertySymbols","IS_OP","_redefine","_meta","setMeta","setDesc","w","isExtensible","FREEZE","preventExtensions","meta","NEED","fastKey","create","getWeak","onFreeze","_wks","USE_SYMBOL","_wksExt","_isArray","Array","isArray","arg","_html","documentElement","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","_objectCreate","dPs","windowNames","_objectGopnExt","getWindowNames","$GOPD","$DP","gOPNExt","$JSON","JSON","_stringify","stringify","wks","TO_PRIMITIVE","SymbolRegistry","USE_NATIVE","$GOPS","QObject","setter","findChild","setSymbolDesc","DESCRIPTORS","$fails","protoDesc","isSymbol","iterator","redefine","$set","set","es6Symbols","j","wellKnownSymbols","k","wksDefine","for","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","toObject","replacer","$replacer","args","require$$4","obj","_Object$defineProperty","enumerableOnly","_Object$keys","_Object$getOwnPropertySymbols","filter","_Object$getOwnPropertyDescriptor","objectSpread2","forEach","_Object$getOwnPropertyDescriptors","_Object$defineProperties","classCallCheck","instance","Constructor","_defineProperties","props","descriptor","createClass","protoProps","staticProps","_objectGpo","getPrototypeOf","constructor","propertyKey","proto","receiver","$getPrototypeOf","check","_setProto","setPrototypeOf","test","buggy","__proto__","_getPrototypeOf","o","_Object$setPrototypeOf","_Object$getPrototypeOf","superPropBase","property","_get","_Reflect$get","base","_setPrototypeOf","p","_invoke","un","inherits","subClass","superClass","_Object$create","arraySlice","factories","_bind","bind","partArgs","bound","len","n","join","construct","invoke","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","isNativeReflectConstruct","_Reflect$construct","sham","Proxy","Date","_iterators","IteratorPrototype","returnThis","_iterDefine","Base","NAME","next","DEFAULT","IS_SET","FORCED","getMethod","kind","BUGGY","VALUES","setToStringTag","methods","DEF_VALUES","VALUES_BUG","$native","ITERATOR","$default","$entries","$anyNative","entries","Iterators","values","TO_STRING","$at","pos","s","String","charCodeAt","iterated","_t","_i","point","done","_iterStep","step","Arguments","TO_STRING_TAG","DOMIterables","Collection","symbol","_typeof_1","_typeof","_Symbol","_Symbol$iterator","assertThisInitialized","ReferenceError","possibleConstructorReturn","createSuper","Derived","hasNativeReflectConstruct","NewTarget","Super","PluginUtils","_classof","tryGet","ARG","callee","_speciesConstructor","SPECIES","run","queue","listener","event","data","defer","channel","port","ArrayProto","core_getIteratorMethod","getIteratorMethod","classof","_forOf","BREAK","RETURN","iterable","iterFn","getIterFn","ret","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","nextTick","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","cel","html","removeChild","setTimeout","_task","clear","macrotask","Observer","MutationObserver","WebKitMutationObserver","Promise","isNode","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","_perform","v","_promiseResolve","x","promiseCapability","newPromiseCapability","_newPromiseCapability","navigator","_userAgent","userAgent","SAFE_CLOSING","head","last","notify","toggle","node","task","microtask","flush","standalone","then","createTextNode","observe","characterData","parent","domain","exit","enter","empty","isThenable","isReject","chain","_n","_c","_v","ok","_s","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","$reject","_d","_w","_a","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","PROMISE","versions","v8","$Promise","newPromiseCapabilityModule","FakePromise","PromiseRejectionEvent","indexOf","console","unhandled","isUnhandled","perform","emit","onunhandledrejection","reason","error","onrejectionhandled","$resolve","wrapper","executor","forbiddenField","anInstance","err","safe","require$$3","onFulfilled","onRejected","speciesConstructor","catch","require$$6","r","capability","promiseResolve","skipClosing","arr","iter","require$$7","all","remaining","forOf","$index","alreadyCalled","race","finally","onFinally","isFunction","try","callbackfn","EventStatus","performance","timing","loadEventEnd","readyState","str","replace","mesageEvent","createEvent","initMessageEvent","dispatchEvent","location","protocol","item","getData","viewportId","sequence","uniq","DataQueueSet","context","getInstance","unreportedEvents","reportEventsAfterLoad","removeEventListener","unreportedItem","shift","reportEventImmediately","GlobalUtil","isEmptyString","appKey","dispatchOmgLog","Error","isLoaded","getType","EVENT_ID_PAGE_INIT","EVENT_ID_OMG_LOG","errorreportedEvents","_this","removeAll","$assign","assign","_objectAssign","A","K","aLen","_extends_1","_extends","_Object$assign","attrs","info","trackerVersion","getContext","productName","modifyAppKey","eventId","timestamp","getTime","appName","appVersion","omgId","url","href","latitude","longitude","osType","osVersion","userName","userId","cityId","telephone","bizId","locale","countyId","countryCallingCode","utcOffset","getAttrs","from","getFrom","_label","eventData","dataKeyMap","getDataKeyMap","prop","_JSON$stringify","newkeys","sort","kvs","attrsJsonStr","serializeAttrs2JsonStr","encodeURIComponent","serializedAttrs","attrsKeyMap","getAttrsKeyMap","thisAttrs","openId","getVersion","AEvent","FAILED","TIMEOUT","rawSerialized","cbObjName","ReportCallbackUtil","OMG_CALLBACK_OBJ_NAME","cbkMethodName","reportCallback","cbArg","bn","OMG_EVENT_BLACKLIST_NAME","eventid","splice","hash","encodeHash","AH5EventReportor","URL","getProtocol","uploadHost","reportPath","xhr","XMLHttpRequest","timeout","ontimeout","TimeoutEvent","setRequestHeader","send","EncodeHash","encodeHashUrl","serialize","onreadystatechange","status","response","parse","responseText","state","code","add","msg","onerror","FailedEvent","sendBeacon","PostEventReportor","prefix","SequencedEvent","OMG_SEQUENCE_NAME_PREFIX","suffix","OMG_SEQUENCE_NAME_SUFFIX","NORMAL","EVENT_ID_RECEIVED","deviceVendor","BLOCKED","UPLOAD_DOMAIN_LOCAL","UPLOAD_DOMAIN_GLOBAL","UPLOAD_DOMAIN_RU","UA_BROWSER_REGEXPS","uaRegExps","UA_OS_REGEXPS","tracker","installed","AppKey","breadcrumbListName","getBreadcrumbListName","initialzedContext","uaRegExpNameItems","ua","idx","regExpExecArray","wx","miniProgram","getEnv","res","miniprogram","my","appInfo","getInfo","getBrowserRegExpsInUA","osInfo","getOSRegExpsInUA","eventArgs","cb","EVENT_ID_CLICK","sliceBreadcrumbList","some","BlockedEvent","_Promise","compatibleCallback","finalEvent","dispatchTrackerEventUnderWindow","trackedEvent","generateEvent","addTrackerEventToBreadcrumb","getEventReportor","reportEvent","getDeviceInfo","getUploadHost","AReportingStrategyPlugin","PLUGIN_NAME_RECEIVED","SendStrategyChoice","switchSendStrategy","positionable","didiLocationBridge","getLocation","success","locationData","getTracker","setLocation","report","lng","lat","geolocation","getCurrentPosition","position","coords","config","autoPosition","fetchPosition","setConfigHandler","setConfig","_this2","adviceSetConfigHandler","OMGH5ReceivedEvent","EVENT_ID_PAGE_LEAVE","reportLeaveUnderHashChange","reportLeaveUnderPopstateChange","PLUGIN_NAME_PAGE_LEAVE","reportFromLeave","hashRouterEnable","browserRouterEnable","OMGH5PageLeaveEvent","AOMGH5PageLeavePlugin","doc","viewportHeight","offsetHeight","body","viewportWidth","offsetWidth","element","hierarchies","tagName","toLowerCase","ElementUtils","getNodeIndexInSiblings","parentElement","reverse","children","toLocaleUpperCase","nodeName","toLocaleLowerCase","targetRect","getBoundingClientRect","targetTagName","getTargetTagName","targetId","targetName","getAttribute","targetHref","targetClassName","className","targetX","round","left","targetY","top","targetWidth","width","targetHeight","height","hierarchy","getHierarchy","ViewportUtils","getViewportBox","targetText","getViewportBoxAttrsMap","eventInfo","clickedCover","attr","getRealTarget","customClickedInfo","clickedCoverisChild","getTargetChildAttrs","clickedFilter","hasAttribute","customFilterClickedInfo","attrKey","parentNode","childNodeAttrs","childArr","nodeType","clickedExtraAttrs","clickedAttrs","getElementExtraAttrsMap","pointX","pointY","targetPostion","targetPosition","getElementExtraAttrs","pageX","clientX","scrollLeft","pageY","clientY","scrollTop","PLUGIN_NAME_CLICK","handleDocumentClick","autoClick","targetClassList","classes","contains","evt","getClickedFilter","eventTarget","correspondingUseElement","class","containClasses","classList","OMGH5ClickEvent","getClickedCover","getClickedCoverChild","aopHandlers","aopHandler","pop","remove","AOMGH5ClickPlugin","AOMGH5ReceivedPlugin","PLUGIN_NAME_CUSTOM","OMGH5CustomEvent","creatInfo","AOMGH5CustomPlugin","exporter","ALIAS","FORCE","spaces","trim","EVENT_ID_JS_ERROR","byteToHex","substr","buf","offset","bth","UUID","getByte2Hex","rnds","bytesToUuid","_stringWs","space","ltrim","RegExp","rtrim","string","TYPE","$parseInt","parseInt","$trim","hex","_parseInt","ws","radix","Int32Array","ArrayBuffer","privateBuffer8","Uint8Array","privateBuffer","privateBuffer32","Uint32Array","start","privateDataLength","privateBufferLength","privateState","Md5","stateIdentity","buf8","buf32","bufLen","_md5cycle","input","buffer","fromCharCode","buflen","dataBitsLen","raw","buffer32Identity","subarray","matches","match","lo","hi","_hex","onePassHasher","appendStr","end","appendAsciiStr","hc","hexChars","ho","hexOut","d","PLUGIN_NAME_JS_ERROR","handleError","handlePromiseError","reportbeforeError","beforeErrorList","message","typeList","promiseRejectionEvent","occasion","jsErrorFilters","isFilter","getErrorType","label","stack","breadcrumb","getBreadcrumbList","v4","typeMd5","hashStr","line","lineno","filename","col","colno","OMGH5JsErrorEvent","autoError","_Array$isArray","AOMGH5JsErrorPlugin","EVENT_ID_PAGE_VIEW","pvExtraAttrs","pvPerformanceAttrs","getPVExtraAttrsKeyMap","getPerformanceTimingAttrsKeyMap","getPerformanceMemoryAttrsKeyMap","referrer","cookieEnabled","pageTitle","host","path","search","screenHeight","screenWidth","colorDepth","pvType","dnsDuration","tcpDuration","ttfbDuration","transDuration","domParsedDuration","resourceLoadDuration","firstByteTime","htmlLoadCompleteTime","firstPaintTime","firstContentfulPaintTime","firstMeaningfulPaintTime","interactTime","domReadyTime","pageLoadTime","domContentLoadedTime","domCompleteTime","trackerSDKLoadDuration","loadEventTime","usedJSHeapSize","totalJSHeapSize","jsHeapSizeLimit","webkitPerformance","msPerformance","mozPerformance","globalPerformance","FP","getEntriesByName","FCP","FMP","redirectDuration","fetchStart","navigationStart","domainLookupEnd","domainLookupStart","connectEnd","connectStart","responseStart","requestStart","responseEnd","domInteractive","loadEventStart","domContentLoadedEventEnd","startTime","domComplete","memory","trackerPerformanceEntry","getEntries","entry","initiatorType","duration","performanceTiming","performanceMemory","screen","title","pathname","clientWidth","clientHeight","PV_TYPE","reportPVUnderHashChange","reportPVUnderPopstateChange","urlStatck","PLUGIN_NAME_PAGE_VIEW","reportPV","autoSendPageView","OMGH5PageViewEvent","AOMGH5PageViewPlugin","EVENT_ID_ERROR","PLUGIN_NAME_ERROR","OMGH5ErrorEvent","AOMGH5ErrorPlugin","EVENT_ID_PERFORMANCE","entryLength","isReport","onVisibilityChange","getEntryLength","visibilityState","mark","PLUGIN_NAME_PERFORMANCE","performanceObserver","PerformanceObserver","entryTypes","reportData","disconnect","once","capture","OMGH5PerformanceEvent","AOMGH5PerformancePlugin","EVENT_ID_SAFETYPING","FORM_ELEMENT_MAP","text","tl","dl","count","delegateInputChange","reportSafeTyping","PLUGIN_NAME_SAFETYPING","currentFormElement","inputType","safeTyping","currentDate","OMGH5SafeTypingEvent","PositionPlugin","OMGH5PageLeavePlugin","OMGH5ClickPlugin","OMGH5ReceivedPlugin","OMGH5CustomPlugin","OMGH5JsErrorPlugin","OMGH5PageViewPlugin","OMGH5ErrorPlugin","OMGH5PerformancePlugin","AOMGSafeTypingPlugin"],"mappings":"6HAAiB,SAAbA,EAAuBC,GACzB,GAAiB,mBAANA,EAAkB,MAAMC,UAAUD,EAAK,uBAClD,OAAOA,ECGE,SAAPE,EAAiBC,EAAIC,EAAMC,GAE7B,GADAC,EAAUH,QACGI,IAATH,EAAoB,OAAOD,EAC/B,OAAQE,GACN,KAAK,EAAG,OAAO,SAAUG,GACvB,OAAOL,EAAGM,KAAKL,EAAMI,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGE,GAC1B,OAAOP,EAAGM,KAAKL,EAAMI,EAAGE,IAE1B,KAAK,EAAG,OAAO,SAAUF,EAAGE,EAAGC,GAC7B,OAAOR,EAAGM,KAAKL,EAAMI,EAAGE,EAAGC,IAG/B,OAAO,WACL,OAAOR,EAAGS,MAAMR,EAAMS,YCpBb,SAATC,EAAmBC,GACrB,IACE,QAASA,IACT,MAAOC,GACP,OAAO,GCIM,SAAbC,EAAuBjB,GACzB,OAAOkB,EAAKC,EAASC,cAAcpB,GAAM,GCFxB,SAAfqB,EAAyBrB,EAAIsB,GAC/B,IAAKC,EAASvB,GAAK,OAAOA,EAC1B,IAAIG,EAAIqB,EACR,GAAIF,GAAkC,mBAArBnB,EAAKH,EAAGyB,YAA4BF,EAASC,EAAMrB,EAAGM,KAAKT,IAAM,OAAOwB,EACzF,GAAgC,mBAApBrB,EAAKH,EAAG0B,WAA2BH,EAASC,EAAMrB,EAAGM,KAAKT,IAAM,OAAOwB,EACnF,IAAKF,GAAkC,mBAArBnB,EAAKH,EAAGyB,YAA4BF,EAASC,EAAMrB,EAAGM,KAAKT,IAAM,OAAOwB,EAC1F,MAAMvB,UAAU,2CCbE,SAAhB0B,EAA0BC,EAAQC,GACpC,MAAO,CACLC,aAAuB,EAATF,GACdG,eAAyB,EAATH,GAChBI,WAAqB,EAATJ,GACZC,MAAOA,GCHX,IAAII,EAAUC,EAAqC,SAAUC,GAE7D,IAAIC,EAASD,EAAOE,QAA2B,oBAAVC,QAAyBA,OAAOC,MAAQA,KACzED,OAAwB,oBAARE,MAAuBA,KAAKD,MAAQA,KAAOC,KAE3DC,SAAS,cAATA,GACc,iBAAPC,MAAiBA,IAAMN,KCN9BO,EAAQT,EAAqC,SAAUC,GAC3D,IAAIS,EAAOT,EAAOE,QAAU,CAAEQ,QAAS,UACrB,iBAAPC,MAAiBA,IAAMF,KCJ9BG,GDSUJ,EAAME,QCTJ,SAAU7C,GACxB,MAAqB,iBAAPA,EAAyB,OAAPA,EAA4B,mBAAPA,ICEnDgD,EAAY,SAAUhD,GACxB,IAAKuB,EAASvB,GAAK,MAAMC,UAAUD,EAAK,sBACxC,OAAOA,GCDLiD,GAAgBC,EAAW,WAC7B,OAA+E,GAAxEC,OAAOC,eAAe,GAAI,IAAK,CAAEC,IAAK,WAAc,OAAO,KAAQ7C,IPAxEW,EAAW+B,EAAW/B,SAEtBD,EAAKK,EAASJ,IAAaI,EAASJ,EAASC,eQA7CkC,GAAiBJ,IAAeK,EAAW,WAC7C,OAA8F,GAAvFJ,OAAOC,eAAeI,EAAW,OAAQ,IAAK,CAAEH,IAAK,WAAc,OAAO,KAAQ7C,ICCvFiD,EAAKN,OAAOC,eAcZM,EAAY,CACfC,EAbOT,EAAaC,OAAOC,eAAiB,SAAwBQ,EAAGC,EAAGC,GAIzE,GAHAC,EAASH,GACTC,EAAIG,EAAYH,GAAG,GACnBE,EAASD,GACLG,EAAgB,IAClB,OAAOR,EAAGG,EAAGC,EAAGC,GAChB,MAAO9C,IACT,GAAI,QAAS8C,GAAc,QAASA,EAAY,MAAM7D,UAAU,4BAEhE,MADI,UAAW6D,IAAYF,EAAEC,GAAKC,EAAWjC,OACtC+B,ICbLM,EAAQhB,EAAa,SAAUiB,EAAQC,EAAKvC,GAC9C,OAAO4B,EAAGE,EAAEQ,EAAQC,EAAKC,EAAW,EAAGxC,KACrC,SAAUsC,EAAQC,EAAKvC,GAEzB,OADAsC,EAAOC,GAAOvC,EACPsC,GCXLG,EAAiB,GAAGA,eACpBC,EAAO,SAAUvE,EAAIoE,GACvB,OAAOE,EAAe7D,KAAKT,EAAIoE,ICS7BI,EAAY,YAEZC,EAAU,SAAUC,EAAMC,EAAMC,GAClC,IASIR,EAAKS,EAAKC,EATVC,EAAYL,EAAOD,EAAQO,EAC3BC,EAAYP,EAAOD,EAAQS,EAC3BC,EAAYT,EAAOD,EAAQnD,EAC3B8D,EAAWV,EAAOD,EAAQZ,EAC1BwB,EAAUX,EAAOD,EAAQa,EACzBC,EAAUb,EAAOD,EAAQe,EACzBnD,EAAU4C,EAAYrC,EAAOA,EAAK+B,KAAU/B,EAAK+B,GAAQ,IACzDc,EAAWpD,EAAQmC,GACnBkB,EAAST,EAAY7C,EAAS+C,EAAY/C,EAAOuC,IAASvC,EAAOuC,IAAS,IAAIH,GAGlF,IAAKJ,KADDa,IAAWL,EAASD,GACZC,GAEVC,GAAOE,GAAaW,QAA0BnF,IAAhBmF,EAAOtB,KAC1BuB,EAAItD,EAAS+B,KAExBU,EAAMD,EAAMa,EAAOtB,GAAOQ,EAAOR,GAEjC/B,EAAQ+B,GAAOa,GAAmC,mBAAfS,EAAOtB,GAAqBQ,EAAOR,GAEpEiB,GAAWR,EAAMe,EAAId,EAAK1C,GAE1BmD,GAAWG,EAAOtB,IAAQU,EAAM,SAAWe,GACnC,SAAJb,EAAcxE,EAAGE,EAAGC,GACtB,GAAImF,gBAAgBD,EAAG,CACrB,OAAQhF,UAAUR,QAChB,KAAK,EAAG,OAAO,IAAIwF,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAErF,GACrB,KAAK,EAAG,OAAO,IAAIqF,EAAErF,EAAGE,GACxB,OAAO,IAAImF,EAAErF,EAAGE,EAAGC,GACrB,OAAOkF,EAAEjF,MAAMkF,KAAMjF,WAGzB,OADAmE,EAAER,GAAaqB,EAAErB,GACVQ,EAXyB,CAa/BF,GAAOM,GAA0B,mBAAPN,EAAoBc,EAAInD,SAAShC,KAAMqE,GAAOA,EAEvEM,KACD/C,EAAQ0D,UAAY1D,EAAQ0D,QAAU,KAAK3B,GAAOU,EAE/CJ,EAAOD,EAAQuB,GAAKP,IAAaA,EAASrB,IAAM6B,EAAKR,EAAUrB,EAAKU,MAK9EL,EAAQO,EAAI,EACZP,EAAQS,EAAI,EACZT,EAAQnD,EAAI,EACZmD,EAAQZ,EAAI,EACZY,EAAQa,EAAI,GACZb,EAAQe,EAAI,GACZf,EAAQyB,EAAI,GACZzB,EAAQuB,EAAI,IACZ,IAAIG,EAAU1B,IC3DNA,EAAQnD,EAAImD,EAAQO,GAAK9B,EAAY,SAAU,CAAEE,eAAgBG,EAAWI,ICNzE,SAAPyC,EAAiBpG,GACnB,OAAOyB,EAAShB,KAAKT,GAAIqG,MAAM,GAAI,GCFtB,SAAXC,EAAqBtG,GACvB,GAAUO,MAANP,EAAiB,MAAMC,UAAU,yBAA2BD,GAChE,OAAOA,ECKQ,SAAbuG,EAAuBvG,GACzB,OAAOwG,EAAQC,EAAQzG,ICNR,SAAb0G,EAAuB1G,GACzB,OAAO2G,MAAM3G,GAAMA,GAAM,GAAU,EAALA,EAAS4G,EAAQC,GAAM7G,GCEvC,SAAZ8G,EAAsB9G,GACxB,OAAY,EAALA,EAAS+G,EAAIC,EAAUhH,GAAK,kBAAoB,ECL9C,SAAPiH,EAAiB7C,GACnB,MAAO,UAAU8C,YAAe3G,IAAR6D,EAAoB,GAAKA,EAAK,QAAS+C,EAAKC,GAAI3F,SAAS,KCIlE,SAAb4F,EAAuBjD,GACzB,OAAOkD,EAAOlD,KAASkD,EAAOlD,GAAOmD,EAAInD,ICIjB,SAAtBoD,EAAgCrD,EAAQsD,GAC1C,IAGIrD,EAHAR,EAAI8D,EAAUvD,GACdwD,EAAI,EACJC,EAAS,GAEb,IAAKxD,KAAOR,EAAOQ,GAAOyD,GAAUlC,EAAI/B,EAAGQ,IAAQwD,EAAOE,KAAK1D,GAE/D,KAAOqD,EAAMpH,OAASsH,GAAOhC,EAAI/B,EAAGQ,EAAMqD,EAAME,SAC7CI,EAAaH,EAAQxD,IAAQwD,EAAOE,KAAK1D,IAE5C,OAAOwD,ECjBT,ICO+BI,EDP3BC,EAAU1E,EAAWJ,OEFrBC,EFGiB,SAAwBpD,EAAIoE,EAAK8D,GACpD,OAAOD,EAAQ7E,eAAepD,EAAIoE,EAAK8D,IRPrCzG,EAAW,GAAGA,SWMd0G,EAAWhF,OAAO,KAAKiF,qBAAqB,GAAKjF,OAAS,SAAUnD,GACtE,MAAkB,UAAXqI,EAAIrI,GAAkBA,EAAGsI,MAAM,IAAMnF,OAAOnD,IRNjD6G,EAAOtE,KAAKsE,KACZD,EAAQrE,KAAKqE,MCGbG,EAAMxE,KAAKwE,IQFXwB,EAAMhG,KAAKgG,IACXxB,EAAMxE,KAAKwE,ICIXyB,EAAUtG,EAAqC,SAAUC,GAC7D,IAAIsG,EAAS,qBACTC,EAAQtG,EAAOqG,KAAYrG,EAAOqG,GAAU,KAE/CtG,EAAOE,QAAU,SAAU+B,EAAKvC,GAC/B,OAAO6G,EAAMtE,KAASsE,EAAMtE,QAAiB7D,IAAVsB,EAAsBA,EAAQ,MAChE,WAAY,IAAIiG,KAAK,CACtBjF,QAASD,EAAKC,QACd8F,KAAmB,OACnBC,UAAW,2CRjBTzB,EAAK,EACLC,EAAK7E,KAAKsG,SCIVvB,EAASpE,EAAW,QCIpB6E,GEG2BC,GFHD,EEIrB,SAAUc,EAAOC,EAAIC,GAC1B,IGT6BC,EAAO5I,EHYhCwB,EAHA+B,EAAI8D,EAAUoB,GACdzI,EAAS6I,EAAStF,EAAEvD,QACpB4I,GGXgC5I,EHWGA,GGVzC4I,EAAQjC,EADuBiC,EHWDD,IGTf,EAAIT,EAAIU,EAAQ5I,EAAQ,GAAK0G,EAAIkC,EAAO5I,IHarD,GAAI2H,GAAee,GAAMA,GAAI,KAAgBE,EAAT5I,GAGlC,IAFAwB,EAAQ+B,EAAEqF,OAEGpH,EAAO,OAAO,OAEtB,KAAeoH,EAAT5I,EAAgB4I,IAAS,IAAIjB,GAAeiB,KAASrF,IAC5DA,EAAEqF,KAAWF,EAAI,OAAOf,GAAeiB,GAAS,EACpD,OAAQjB,IAAgB,IFjB1BH,EAAWtE,EAAW,YOTtB4F,EAAe,gGAEjBb,MAAM,KCMJc,EAAcjG,OAAOkG,MAAQ,SAAczF,GAC7C,OAAO0F,EAAM1F,EAAG2F,ICDdC,EAAatG,EAAaC,OAAOsG,iBAAmB,SAA0B7F,EAAG8F,GACnF3F,EAASH,GAKT,IAJA,IAGIC,EAHAwF,EAAOM,EAAQD,GACfrJ,EAASgJ,EAAKhJ,OACdsH,EAAI,EAEQA,EAATtH,GAAYoD,EAAGE,EAAEC,EAAGC,EAAIwF,EAAK1B,KAAM+B,EAAW7F,IACrD,OAAOD,KCRDa,EAAQnD,EAAImD,EAAQO,GAAK9B,EAAY,SAAU,CAAEuG,iBAAkBlG,ICH3E,IAAI0E,EAAU1E,EAAWJ,OCFrBsG,EDGmB,SAA0BG,EAAGC,GAClD,OAAO5B,EAAQwB,iBAAiBG,EAAGC,IEAjCC,EAAa5G,EAAWgE,OAAO,SAAU,aAMzC6C,EAAc,CACjBpG,EALOR,OAAO6G,qBAAuB,SAA6BpG,GACjE,OAAO0F,EAAM1F,EAAGkG,KCRdG,GAAc,CACjBtG,EAHOR,OAAO+G,uBCaXC,GAAUjH,EAAWiH,QACrBC,GAAWD,IAAWA,GAAQE,SAAW,SAAiBrK,GAC5D,IAAIqJ,EAAOiB,EAAK3G,EAAEI,EAAS/D,IACvBuK,EAAaC,GAAK7G,EACtB,OAAO4G,EAAalB,EAAKnC,OAAOqD,EAAWvK,IAAOqJ,GCfhDoB,GAAa,CAChB9G,EAHO,GAAGyE,sBCePsC,GAAOvH,OAAOwH,yBAWdC,GAAc,CACjBjH,EAVOT,EAAawH,GAAO,SAAkC9G,EAAGC,GAG/D,GAFAD,EAAI8D,EAAU9D,GACdC,EAAIG,EAAYH,GAAG,GACfI,EAAgB,IAClB,OAAOyG,GAAK9G,EAAGC,GACf,MAAO7C,IACT,GAAI2E,EAAI/B,EAAGC,GAAI,OAAOQ,GAAYwG,GAAIlH,EAAElD,KAAKmD,EAAGC,GAAID,EAAEC,QCLhDY,EAAQnD,EAAG,SAAU,CAC3BwJ,0BAA2B,SAAmC3G,GAO5D,IANA,IAKIC,EAAK8D,EChBmB/D,EAAQ8E,EAAOpH,EDWvC+B,EAAI8D,EAAUvD,GACd4G,EAAUL,GAAK/G,EACf0F,EAAOgB,GAAQzG,GACfgE,EAAS,GACTD,EAAI,EAED0B,EAAKhJ,OAASsH,QAENpH,KADb2H,EAAO6C,EAAQnH,EAAGQ,EAAMiF,EAAK1B,SClBY9F,EDmBWqG,GCnBlBe,EDmBa7E,KCnBrBD,EDmBayD,GClBtBoD,EAAgBrH,EAAEQ,EAAQ8E,EAAO5E,EAAW,EAAGxC,IAC/DsC,EAAO8E,GAASpH,GDmBnB,OAAO+F,KEnBM,SAAbqD,GAAuBC,EAAKnK,GAC9B,IAAIZ,GAAMyC,EAAKO,QAAU,IAAI+H,IAAQ/H,OAAO+H,GACxCC,EAAM,GACVA,EAAID,GAAOnK,EAAKZ,GAChBsE,EAAQA,EAAQnD,EAAImD,EAAQO,EAAIoG,EAAM,WAAcjL,EAAG,KAAQ,SAAUgL,GCV3E,ICFIL,GDE4BvH,EAAWJ,OAAO2H,0BEI9CO,GAA4BnI,GAAWS,KAEhC,2BAA4B,WACrC,OAAO,SAAkC3D,EAAIoE,GAC3C,OAAOiH,GAA0B3D,EAAU1H,GAAKoE,MCF9B,SAAlBkH,GAA4BtL,EAAIuL,EAAKC,GACnCxL,IAAO2F,EAAI3F,EAAKwL,EAAOxL,EAAKA,EAAGyL,UAAWC,KAAMC,GAAI3L,EAAI0L,GAAK,CAAE3J,cAAc,EAAMF,MAAO0J,ICA/E,SAAbK,GAAuBjH,GACzB,IAAIkH,EAAUjJ,EAAKkJ,SAAWlJ,EAAKkJ,OAAmB,IAChC,KAAlBnH,EAAKoH,OAAO,IAAepH,KAAQkH,GAAUzI,GAAeyI,EAASlH,EAAM,CAAE9C,MAAOmK,GAAOrI,EAAEgB,KCTnF,SAAZsH,GAAsBjM,GACxB,OAAOmD,OAAOsD,EAAQzG,ICYZ,SAARkM,MCyGO,SAAPC,GAAiBZ,GACnB,IAAIa,EAAMC,GAAWd,GAAOe,GAAQT,GAAQrH,KAE5C,OADA4H,EAAIG,GAAKhB,EACFa,EAwBe,SAApBI,GAA8CxM,EAAI6D,GACpDE,EAAS/D,GAKT,IAJA,IAGIoE,EAHAiF,EC7IU,SAAUrJ,GACxB,IAAI4H,EAAS+B,EAAQ3J,GACjBuK,EAAaC,GAAK7G,EACtB,GAAI4G,EAKF,IAJA,IAGInG,EAHAqI,EAAUlC,EAAWvK,GACrB0M,EAAS7B,GAAIlH,EACbgE,EAAI,EAED8E,EAAQpM,OAASsH,GAAO+E,EAAOjM,KAAKT,EAAIoE,EAAMqI,EAAQ9E,OAAOC,EAAOE,KAAK1D,GAChF,OAAOwD,EDoIE+E,CAAS9I,EAAI6D,EAAU7D,IAC9B8D,EAAI,EACJiF,EAAIvD,EAAKhJ,OAEFsH,EAAJiF,GAAO5B,GAAgBhL,EAAIoE,EAAMiF,EAAK1B,KAAM9D,EAAEO,IACrD,OAAOpE,EAKmB,SAAxB6M,GAAsDzI,GACxD,IAAI0I,EAAIJ,GAAOjM,KAAKqF,KAAM1B,EAAMJ,EAAYI,GAAK,IACjD,QAAI0B,OAASiH,IAAepH,EAAI0G,GAAYjI,KAASuB,EAAIqH,GAAW5I,QAC7D0I,IAAMnH,EAAIG,KAAM1B,KAASuB,EAAI0G,GAAYjI,IAAQuB,EAAIG,KAAMmH,KAAWnH,KAAKmH,IAAQ7I,KAAO0I,GAEnE,SAA5BzB,GAA8DrL,EAAIoE,GAGpE,GAFApE,EAAK0H,EAAU1H,GACfoE,EAAMJ,EAAYI,GAAK,GACnBpE,IAAO+M,KAAepH,EAAI0G,GAAYjI,IAASuB,EAAIqH,GAAW5I,GAAlE,CACA,IAAIyF,EAAIa,GAAK1K,EAAIoE,GAEjB,OADIyF,IAAKlE,EAAI0G,GAAYjI,IAAUuB,EAAI3F,EAAIiN,KAAWjN,EAAGiN,IAAQ7I,KAAOyF,EAAE/H,YAAa,GAChF+H,GAEkB,SAAvBqD,GAAoDlN,GAKtD,IAJA,IAGIoE,EAHAqD,EAAQ6C,GAAK5C,EAAU1H,IACvB4H,EAAS,GACTD,EAAI,EAEDF,EAAMpH,OAASsH,GACfhC,EAAI0G,GAAYjI,EAAMqD,EAAME,OAASvD,GAAO6I,IAAU7I,GAAO+I,IAAMvF,EAAOE,KAAK1D,GACpF,OAAOwD,EAEkB,SAAzBwF,GAAwDpN,GAM1D,IALA,IAIIoE,EAJAiJ,EAAQrN,IAAO+M,GACftF,EAAQ6C,GAAK+C,EAAQL,GAAYtF,EAAU1H,IAC3C4H,EAAS,GACTD,EAAI,EAEDF,EAAMpH,OAASsH,IAChBhC,EAAI0G,GAAYjI,EAAMqD,EAAME,OAAU0F,IAAQ1H,EAAIoH,GAAa3I,IAAcwD,EAAOE,KAAKuE,GAAWjI,IACxG,OAAOwD,EE3LX,IAAIK,GAAU1E,EAAWJ,OCFrBwH,GDG2B,SAAkC3K,EAAIoE,GACnE,OAAO6D,GAAQ0C,yBAAyB3K,EAAIoE,IEJ1CkJ,GAAYpK,ECSZqK,GAAQrL,EAAqC,SAAUC,GAY7C,SAAVqL,EAAoBxN,GACtByN,EAAQzN,EAAImN,EAAM,CAAEtL,MAAO,CACzB8F,EAAG,OAAQR,EACXuG,EAAG,MAdP,IAAIP,EAAOjK,EAAW,QAGlBuK,EAAUlK,EAAWI,EACrBwD,EAAK,EACLwG,EAAexK,OAAOwK,cAAgB,WACxC,OAAO,GAELC,GAAUpK,EAAW,WACvB,OAAOmK,EAAaxK,OAAO0K,kBAAkB,OAqC3CC,EAAO3L,EAAOE,QAAU,CAC1B6I,IAAKiC,EACLY,MAAM,EACNC,QAhCY,SAAUhO,EAAIiO,GAE1B,IAAK1M,EAASvB,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAK2F,EAAI3F,EAAImN,GAAO,CAElB,IAAKQ,EAAa3N,GAAK,MAAO,IAE9B,IAAKiO,EAAQ,MAAO,IAEpBT,EAAQxN,GAER,OAAOA,EAAGmN,GAAMxF,GAsBlBuG,QApBY,SAAUlO,EAAIiO,GAC1B,IAAKtI,EAAI3F,EAAImN,GAAO,CAElB,IAAKQ,EAAa3N,GAAK,OAAO,EAE9B,IAAKiO,EAAQ,OAAO,EAEpBT,EAAQxN,GAER,OAAOA,EAAGmN,GAAMO,GAYlBS,SATa,SAAUnO,GAEvB,OADI4N,GAAUE,EAAKC,MAAQJ,EAAa3N,KAAQ2F,EAAI3F,EAAImN,IAAOK,EAAQxN,GAChEA,MCjDLoO,ID8DUb,GAAMrC,IAENqC,GAAMQ,KAENR,GAAMS,QAENT,GAAMW,QAENX,GAAMY,SCtETjM,EAAqC,SAAUC,GAC1D,IAAIuG,EAAQxF,EAAW,OAEnB4I,EAASvI,EAAWuI,OACpBuC,EAA8B,mBAAVvC,GAET3J,EAAOE,QAAU,SAAUsC,GACxC,OAAO+D,EAAM/D,KAAU+D,EAAM/D,GAC3B0J,GAAcvC,EAAOnH,KAAU0J,EAAavC,EAASvE,GAAK,UAAY5C,MAGjE+D,MAAQA,KVZbiD,GAAMzI,EAAWS,EAEjB+H,GAAMnI,GAAW,eWJjB+K,GAAU,CACb3K,EAHOT,IVQJE,GAAiBF,EAAWS,EWN5B4K,GAAWC,MAAMC,SAAW,SAAiBC,GAC/C,MAAmB,SAAZrG,EAAIqG,ICHTvN,GAAW+B,EAAW/B,SACtBwN,GAAQxN,IAAYA,GAASyN,gBVa7B/G,GAAW3E,EAAW,YAEtBsB,GAAY,YAGZqK,GAAa,WAEf,IAIIC,EAJAC,EAASxL,EAAW,UACpBoE,EAAI4B,EAAYlJ,OAcpB,IAVA0O,EAAOC,MAAMC,QAAU,OACvBzL,GAAW0L,YAAYH,GACvBA,EAAOI,IAAM,eAGbL,EAAiBC,EAAOK,cAAcjO,UACvBkO,OACfP,EAAeQ,MAAMC,uCACrBT,EAAeU,QACfX,GAAaC,EAAe9J,EACrB2C,YAAYkH,GAAWrK,IAAW+E,EAAY5B,IACrD,OAAOkH,MAGLY,GAAgBtM,OAAO8K,QAAU,SAAgBrK,EAAG8F,GACtD,IAAI9B,EAQJ,OAPU,OAANhE,GACFsI,GAAM1H,IAAaT,EAASH,GAC5BgE,EAAS,IAAIsE,GACbA,GAAM1H,IAAa,KAEnBoD,EAAOC,IAAYjE,GACdgE,EAASiH,UACMtO,IAAfmJ,EAA2B9B,EAAS8H,EAAI9H,EAAQ8B,IW7CrDY,GAAOpH,EAAWS,EAClBlC,GAAW,GAAGA,SAEdkO,GAA+B,iBAAVrN,QAAsBA,QAAUa,OAAO6G,oBAC5D7G,OAAO6G,oBAAoB1H,QAAU,GAcrCsN,GAAiB,CACpBjM,EALO,SAA6B3D,GACnC,OAAO2P,IAAoC,mBAArBlO,GAAShB,KAAKT,GATjB,SAAUA,GAC7B,IACE,OAAOsK,GAAKtK,GACZ,MAAOgB,GACP,OAAO2O,GAAYtJ,SAK0CwJ,CAAe7P,GAAMsK,GAAK5C,EAAU1H,MVgDjGmN,GAAOjK,GAAWgI,IAsBlBR,GAAOoF,GAAMnM,EACbF,GAAKsM,EAAIpM,EACT2G,GAAO0F,GAAQrM,EACfkI,GAAUzJ,EAAO0J,OACjBmE,GAAQ7N,EAAO8N,KACfC,GAAaF,IAASA,GAAMG,UAC5B5L,GAAY,YACZyI,GAASoD,GAAI,WACbC,GAAeD,GAAI,eACnB3D,GAAS,GAAGtE,qBACZmI,GAAiBjJ,EAAO,mBACxB+E,GAAa/E,EAAO,WACpB0F,GAAY1F,EAAO,cACnByF,GAAc5J,OAAOqB,IACrBgM,GAA+B,mBAAX3E,MAA2B4E,GAAM9M,EACrD+M,GAAUtO,EAAOsO,QAEjBC,IAAUD,KAAYA,GAAQlM,MAAekM,GAAQlM,IAAWoM,UAGhEC,GAAgBC,GAAeC,EAAO,WACxC,OAES,GAFFzE,GAAQ7I,GAAG,GAAI,IAAK,CACzBJ,IAAK,WAAc,OAAOI,GAAGqC,KAAM,IAAK,CAAEjE,MAAO,IAAKrB,MACpDA,IACD,SAAUR,EAAIoE,EAAKyF,GACtB,IAAImH,EAAYtG,GAAKqC,GAAa3I,GAC9B4M,UAAkBjE,GAAY3I,GAClCX,GAAGzD,EAAIoE,EAAKyF,GACRmH,GAAahR,IAAO+M,IAAatJ,GAAGsJ,GAAa3I,EAAK4M,IACxDvN,GAQAwN,GAAWT,IAAyC,iBAApB3E,GAAQqF,SAAuB,SAAUlR,GAC3E,MAAoB,iBAANA,GACZ,SAAUA,GACZ,OAAOA,aAAc6L,IAGnBb,GAAkB,SAAwBhL,EAAIoE,EAAKyF,GAKrD,OAJI7J,IAAO+M,IAAa/B,GAAgBgC,GAAW5I,EAAKyF,GACxD9F,EAAS/D,GACToE,EAAMJ,EAAYI,GAAK,GACvBL,EAAS8F,GACLlE,EAAI0G,GAAYjI,IACbyF,EAAE/H,YAID6D,EAAI3F,EAAIiN,KAAWjN,EAAGiN,IAAQ7I,KAAMpE,EAAGiN,IAAQ7I,IAAO,GAC1DyF,EAAIyC,GAAQzC,EAAG,CAAE/H,WAAYuC,EAAW,GAAG,OAJtCsB,EAAI3F,EAAIiN,KAASxJ,GAAGzD,EAAIiN,GAAQ5I,EAAW,EAAG,KACnDrE,EAAGiN,IAAQ7I,IAAO,GAIXyM,GAAc7Q,EAAIoE,EAAKyF,IACzBpG,GAAGzD,EAAIoE,EAAKyF,IAgDlB2G,KAYHW,IAXAtF,GAAU,SAAA,GACR,GAAI/F,gBAAgB+F,GAAS,MAAM5L,UAAU,gCAC7C,IAAIsL,EAAMhE,EAAuB,EAAnB1G,UAAUR,OAFhB,OAE4CE,GAChD6Q,EAAO,SAAUvP,GACfiE,OAASiH,IAAaqE,EAAK3Q,KAAKuM,GAAWnL,GAC3C8D,EAAIG,KAAMmH,KAAWtH,EAAIG,KAAKmH,IAAS1B,KAAMzF,KAAKmH,IAAQ1B,IAAO,GACrEsF,GAAc/K,KAAMyF,EAAKlH,EAAW,EAAGxC,KAGzC,OADIiP,GAAeH,IAAQE,GAAc9D,GAAaxB,EAAK,CAAExJ,cAAc,EAAMsP,IAAKD,IAC/EjF,GAAKZ,KAEG/G,IAAY,WAAY,WACvC,OAAOsB,KAAKyG,KAGduD,GAAMnM,EAAI0H,GACV0E,EAAIpM,EAAIqH,GACRzH,EAAWI,EAAIqM,GAAQrM,EAAIuJ,GAC3B1J,GAAWG,EAAIkJ,GACf4D,GAAM9M,EAAIyJ,GAMVpB,GAAOrI,EAAI,SAAUgB,GACnB,OAAOwH,GAAKkE,GAAI1L,QAIZF,EAAQS,EAAIT,EAAQe,EAAIf,EAAQO,GAAKwL,GAAY,CAAE1E,OAAQD,KAEnE,IAAK,IAAIyF,GAAa,iHAGpBhJ,MAAM,KAAMiJ,GAAI,EAAGD,GAAWjR,OAASkR,IAAGlB,GAAIiB,GAAWC,OAE3D,IAAK,IAAIC,GAAmBlI,EAAM+G,GAAI3H,OAAQ+I,GAAI,EAAGD,GAAiBnR,OAASoR,IAAIC,GAAUF,GAAiBC,SAEtGhN,EAAQnD,EAAImD,EAAQO,GAAKwL,GAAY,SAAU,CAErDmB,IAAO,SAAUvN,GACf,OAAOuB,EAAI4K,GAAgBnM,GAAO,IAC9BmM,GAAenM,GACfmM,GAAenM,GAAOyH,GAAQzH,IAGpCwN,OAAQ,SAAgBxF,GACtB,IAAK6E,GAAS7E,GAAM,MAAMnM,UAAUmM,EAAM,qBAC1C,IAAK,IAAIhI,KAAOmM,GAAgB,GAAIA,GAAenM,KAASgI,EAAK,OAAOhI,GAE1EyN,UAAW,WAAclB,IAAS,GAClCmB,UAAW,WAAcnB,IAAS,OAG5BlM,EAAQnD,EAAImD,EAAQO,GAAKwL,GAAY,SAAU,CAErDvC,OA/FY,SAAgBjO,EAAI6D,GAChC,YAAatD,IAANsD,EAAkByI,GAAQtM,GAAMwM,GAAkBF,GAAQtM,GAAK6D,IAgGtET,eAAgB4H,GAEhBvB,iBAAkB+C,GAElB7B,yBAA0BU,GAE1BrB,oBAAqBkD,GAErBhD,sBAAuBkD,KAKzB,IAAI2E,GAAsBhB,EAAO,WAAcN,GAAM9M,EAAE,OAE/Cc,EAAQnD,EAAImD,EAAQO,EAAI+M,GAAqB,SAAU,CAC7D7H,sBAAuB,SAA+BlK,GACpD,OAAOyQ,GAAM9M,EAAEqO,GAAShS,OAK5BiQ,IAASxL,EAAQA,EAAQnD,EAAImD,EAAQO,IAAMwL,IAAcO,EAAO,WAC9D,IAAIzP,EAAIuK,KAIR,MAA0B,UAAnBsE,GAAW,CAAC7O,KAA2C,MAAxB6O,GAAW,CAAE3P,EAAGc,KAAyC,MAAzB6O,GAAWhN,OAAO7B,OACrF,OAAQ,CACX8O,UAAW,SAAmBpQ,GAI5B,IAHA,IAEIiS,EAAUC,EAFVC,EAAO,CAACnS,GACR2H,EAAI,EAEkBA,EAAnB9G,UAAUR,QAAY8R,EAAKrK,KAAKjH,UAAU8G,MAEjD,GADAuK,EAAYD,EAAWE,EAAK,IACvB5Q,EAAS0Q,SAAoB1R,IAAPP,KAAoBiR,GAASjR,GAMxD,OALKyO,GAAQwD,KAAWA,EAAW,SAAU7N,EAAKvC,GAEhD,GADwB,mBAAbqQ,IAAyBrQ,EAAQqQ,EAAUzR,KAAKqF,KAAM1B,EAAKvC,KACjEoP,GAASpP,GAAQ,OAAOA,IAE/BsQ,EAAK,GAAKF,EACH9B,GAAWvP,MAAMqP,GAAOkC,MAKnCtG,GAAQrH,IAAW8L,KAAiB8B,EAAWvG,GAAQrH,IAAY8L,GAAczE,GAAQrH,IAAW9C,YAErFmK,GAAS,aAETtJ,KAAM,QAAQ,MAEdH,EAAO8N,KAAM,QAAQ,GW/SpC,ICFIhG,GDEwB3G,EAAWJ,OAAO+G,yBEMnC,OAAQ,WACjB,OAAO,SAAclK,GACnB,OAAOsJ,EAAM0I,GAAShS,OCR1B,ICFIqJ,GDEO9F,EAAWJ,OAAOkG,KEa7B,IAAIjG,GAfJ,SAAyBiP,EAAKjO,EAAKvC,GAYjC,OAXIuC,KAAOiO,EACTC,EAAuBD,EAAKjO,EAAK,CAC/BvC,MAAOA,EACPC,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZqQ,EAAIjO,GAAOvC,EAGNwQ,GCAT,SAAShI,GAAQlG,EAAQoO,GACvB,IAGM9F,EAHFpD,EAAOmJ,GAAarO,GAWxB,OATIsO,KACEhG,EAAUgG,GAA8BtO,GAExCoO,IAAgB9F,EAAUA,EAAQiG,OAAO,SAAUtG,GACrD,OAAOuG,GAAiCxO,EAAQiI,GAAKtK,cAEvDuH,EAAKvB,KAAKlH,MAAMyI,EAAMoD,IAGjBpD,EAuBT,IAAIuJ,GApBJ,SAAwBlN,GACtB,IAAK,IAAIiC,EAAI,EAAGA,EAAI9G,UAAUR,OAAQsH,IAAK,CACzC,IAAI/C,EAAyB,MAAhB/D,UAAU8G,GAAa9G,UAAU8G,GAAK,GAE/CA,EAAI,EACN0C,GAAQlH,OAAOyB,IAAS,GAAMiO,QAAQ,SAAUzO,GAC9ChB,GAAesC,EAAQtB,EAAKQ,EAAOR,MAE5B0O,GACTC,EAAyBrN,EAAQoN,GAAkClO,IAEnEyF,GAAQlH,OAAOyB,IAASiO,QAAQ,SAAUzO,GACxCkO,EAAuB5M,EAAQtB,EAAKuO,GAAiC/N,EAAQR,MAKnF,OAAOsB,GCzCT,IAAIsN,GANJ,SAAyBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIjT,UAAU,sCCCxB,SAASkT,GAAkBzN,EAAQ0N,GACjC,IAAK,IAAIzL,EAAI,EAAGA,EAAIyL,EAAM/S,OAAQsH,IAAK,CACrC,IAAI0L,EAAaD,EAAMzL,GACvB0L,EAAWvR,WAAauR,EAAWvR,aAAc,EACjDuR,EAAWtR,cAAe,EACtB,UAAWsR,IAAYA,EAAWrR,UAAW,GAEjDsQ,EAAuB5M,EAAQ2N,EAAWjP,IAAKiP,IAUnD,IAAIC,GANJ,SAAsBJ,EAAaK,EAAYC,GAG7C,OAFID,GAAYJ,GAAkBD,EAAYzH,UAAW8H,GACrDC,GAAaL,GAAkBD,EAAaM,GACzCN,GCPLrL,GAAW3E,EAAW,YACtB6J,GAAc5J,OAAOsI,UAErBgI,GAAatQ,OAAOuQ,gBAAkB,SAAU9P,GAElD,OADAA,EAAIoO,GAASpO,GACT+B,EAAI/B,EAAGiE,IAAkBjE,EAAEiE,IACH,mBAAjBjE,EAAE+P,aAA6B/P,aAAaA,EAAE+P,YAChD/P,EAAE+P,YAAYlI,UACd7H,aAAaT,OAAS4J,GAAc,QCevCtI,EAAQnD,EAAG,UAAW,CAAE+B,IAZhC,SAASA,EAAIqC,EAAQkO,GACnB,IACI1L,EAAM2L,EADNC,EAAWjT,UAAUR,OAAS,EAAIqF,EAAS7E,UAAU,GAEzD,OAAIkD,EAAS2B,KAAYoO,EAAiBpO,EAAOkO,IAC7C1L,EAAOwC,GAAK/G,EAAE+B,EAAQkO,IAAqBjO,EAAIuC,EAAM,SACrDA,EAAKrG,WACQtB,IAAb2H,EAAK7E,IACH6E,EAAK7E,IAAI5C,KAAKqT,QACdvT,EACFgB,EAASsS,EAAQH,GAAehO,IAAiBrC,EAAIwQ,EAAOD,EAAaE,QAA7E,KCzBF,ICFIzQ,GDEME,EAAW4G,QAAQ9G,OEMlB,iBAAkB,WAC3B,OAAO,SAAwBrD,GAC7B,OAAO+T,GAAgB/B,GAAShS,OCAxB,SAARgU,GAAkBpQ,EAAGiQ,GAEvB,GADA9P,EAASH,IACJrC,EAASsS,IAAoB,OAAVA,EAAgB,MAAM5T,UAAU4T,EAAQ,6BCVlE,ICFIH,GDEiBnQ,EAAWJ,OAAOuQ,eDYnCO,GAAY,CACd5C,IAAKlO,OAAO+Q,iBAAmB,aAAe,GAC5C,SAAUC,EAAMC,EAAO/C,GACrB,KACEA,EAAMnO,EAAWT,SAAShC,KAAM8C,GAAWI,EAAER,OAAOsI,UAAW,aAAa4F,IAAK,IAC7E8C,EAAM,IACVC,IAAUD,aAAgB3F,OAC1B,MAAOxN,GAAKoT,GAAQ,EACtB,OAAO,SAAwBxQ,EAAGiQ,GAIhC,OAHAG,GAAMpQ,EAAGiQ,GACLO,EAAOxQ,EAAEyQ,UAAYR,EACpBxC,EAAIzN,EAAGiQ,GACLjQ,GAVX,CAYE,IAAI,QAASrD,GACjByT,MAAOA,MGzBDvP,EAAQnD,EAAG,SAAU,CAAE4S,eAAgBhR,GAAWmO,MCF1D,ICFI6C,GDEiB3Q,EAAWJ,OAAO+Q,eECnCR,GAAiBxR,EAAqC,SAAUC,GACpE,SAASmS,EAAgBC,GAIvB,OAHApS,EAAOE,QAAUiS,EAAkBE,GAAyBC,GAAyB,SAAyBF,GAC5G,OAAOA,EAAEF,WAAaI,GAAuBF,IAExCD,EAAgBC,GAGzBpS,EAAOE,QAAUiS,ICFjB,IAAII,GATJ,SAAwBvQ,EAAQwQ,GAC9B,MAAQxR,OAAOsI,UAAUnH,eAAe7D,KAAK0D,EAAQwQ,IAEpC,QADfxQ,EAASuP,GAAevP,MAI1B,OAAOA,GCDLd,GAAMnB,EAAqC,SAAUC,GACzD,SAASyS,EAAKlP,EAAQiP,EAAUb,GAkB9B,MAjBuB,oBAAZ3J,SAA2B0K,GACpC1S,EAAOE,QAAUuS,EAAOC,GAExB1S,EAAOE,QAAUuS,EAAO,SAAclP,EAAQiP,EAAUb,GACtD,IAAIgB,EAAOJ,GAAchP,EAAQiP,GACjC,GAAKG,EAAL,CAEA,IAAI5M,EAAOyK,GAAiCmC,EAAMH,GAElD,OAAIzM,EAAK7E,IACA6E,EAAK7E,IAAI5C,KAAKqT,GAGhB5L,EAAKrG,QAIT+S,EAAKlP,EAAQiP,EAAUb,GAAYpO,GAG5CvD,EAAOE,QAAUuS,MCxBTnQ,EAAQnD,EAAG,SAAU,CAAE2M,OAAQ/K,KCDvC,IAAI+E,GAAU1E,EAAWJ,OCFrB8K,GDGS,SAAgBpK,EAAGgG,GAC9B,OAAO5B,GAAQgG,OAAOpK,EAAGgG,IEHvBqK,GAAiBhS,EAAqC,SAAUC,GACpE,SAAS4S,EAAgBR,EAAGS,GAM1B,OALA7S,EAAOE,QAAU0S,EAAkBP,IAA0B,SAAyBD,EAAGS,GAEvF,OADAT,EAAEF,UAAYW,EACPT,GAGFQ,EAAgBR,EAAGS,GAG5B7S,EAAOE,QAAU0S,ICbH,SAAVE,GAAoB9U,EAAIgS,EAAM/R,GAChC,IAAI8U,OAAc3U,IAATH,EACT,OAAQ+R,EAAK9R,QACX,KAAK,EAAG,OAAO6U,EAAK/U,IACAA,EAAGM,KAAKL,GAC5B,KAAK,EAAG,OAAO8U,EAAK/U,EAAGgS,EAAK,IACRhS,EAAGM,KAAKL,EAAM+R,EAAK,IACvC,KAAK,EAAG,OAAO+C,EAAK/U,EAAGgS,EAAK,GAAIA,EAAK,IACjBhS,EAAGM,KAAKL,EAAM+R,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAO+C,EAAK/U,EAAGgS,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC1BhS,EAAGM,KAAKL,EAAM+R,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACzD,KAAK,EAAG,OAAO+C,EAAK/U,EAAGgS,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACnChS,EAAGM,KAAKL,EAAM+R,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAClE,OAAOhS,EAAGS,MAAMR,EAAM+R,GCM1B,IAAIgD,GAfJ,SAAmBC,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIpV,UAAU,sDAGtBmV,EAAS3J,UAAY6J,GAAeD,GAAcA,EAAW5J,UAAW,CACtEkI,YAAa,CACX9R,MAAOuT,EACPpT,UAAU,EACVD,cAAc,KAGdsT,GAAYnB,GAAekB,EAAUC,ICNvCE,GAAa,GAAGlP,MAChBmP,GAAY,GAUZC,GAAQhT,SAASiT,MAAQ,SAActV,GACzC,IAAID,EAAKG,EAAUwF,MACf6P,EAAWJ,GAAW9U,KAAKI,UAAW,GACtC+U,EAAQ,WACV,IAAIzD,EAAOwD,EAASzO,OAAOqO,GAAW9U,KAAKI,YAC3C,OAAOiF,gBAAgB8P,EAbX,SAAU5Q,EAAG6Q,EAAK1D,GAChC,KAAM0D,KAAOL,IAAY,CACvB,IAAK,IAAIM,EAAI,GAAInO,EAAI,EAAGA,EAAIkO,EAAKlO,IAAKmO,EAAEnO,GAAK,KAAOA,EAAI,IAExD6N,GAAUK,GAAOpT,SAAS,MAAO,gBAAkBqT,EAAEC,KAAK,KAAO,KACjE,OAAOP,GAAUK,GAAK7Q,EAAGmN,GAQM6D,CAAU7V,EAAIgS,EAAK9R,OAAQ8R,GAAQ8D,GAAO9V,EAAIgS,EAAM/R,IAGrF,OADImB,EAASpB,EAAGsL,aAAYmK,EAAMnK,UAAYtL,EAAGsL,WAC1CmK,GCLLM,IAAchT,EAAWiH,SAAW,IAAI6L,UAIxCG,GAAiB/K,EAAM,WACzB,SAASpG,KACT,QAASkR,GAAW,aAA6B,GAAIlR,aAAcA,KAEjEoR,IAAYhL,EAAM,WACpB8K,GAAW,kBAGLzR,EAAQnD,EAAImD,EAAQO,GAAKmR,IAAkBC,IAAW,UAAW,CACvEJ,UAAW,SAAmBK,EAAQlE,EAA3B,GACT7R,EAAU+V,GACVtS,EAASoO,GACT,IAAImE,EAAYzV,UAAUR,OAAS,EAAIgW,EAAS/V,EAHvC,GAIT,GAAI8V,KAAaD,GAAgB,OAAOD,GAAWG,EAAQlE,EAAMmE,GACjE,GAAID,GAAUC,EAAW,CAEvB,OAAQnE,EAAK9R,QACX,KAAK,EAAG,OAAO,IAAIgW,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAOlE,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAIkE,EAAOlE,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAIkE,EAAOlE,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAIkE,EAAOlE,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAIoE,EAAQ,CAAC,MAEb,OADAA,EAAMzO,KAAKlH,MAAM2V,EAAOpE,GACjB,IAAKuD,GAAK9U,MAAMyV,EAAQE,IAGjC,IAAI1C,EAAQyC,EAAU7K,UAClBwH,EAAWhF,GAAO1M,EAASsS,GAASA,EAAQ1Q,OAAOsI,WACnD7D,EAASnF,SAAS7B,MAAMH,KAAK4V,EAAQpD,EAAUd,GACnD,OAAO5Q,EAASqG,GAAUA,EAASqL,KCxDvC,ICFI+C,GDEYzS,EAAW4G,QAAQ6L,UEWnC,IAAIQ,GAbJ,WACE,GAAuB,oBAAZrM,UAA4BsM,GAAoB,OAAO,EAClE,GAAIA,GAAmBC,KAAM,OAAO,EACpC,GAAqB,mBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,KAAKnL,UAAUhK,SAAShB,KAAKgW,GAAmBG,KAAM,GAAI,gBACnD,EACP,MAAO5V,GACP,OAAO,ICZP6V,GAAa,GCebC,GAAoB,KAGbA,GAAmBvT,GAAW,YAAa,WAAc,OAAOuC,OCgB1D,SAAbiR,KAA2B,OAAOjR,KAEpB,SAAdkR,GAAwBC,EAAMC,EAAMhE,EAAaiE,EAAMC,EAASC,EAAQC,GDhB1D,IAAUpE,EAAagE,EAAMC,ECkB7B,SAAZI,EAAsBC,GACxB,IAAKC,IAASD,KAAQ3D,EAAO,OAAOA,EAAM2D,GAC1C,OAAQA,GACN,IAVK,OAWL,KAAKE,GAAQ,OAAO,WAAoB,OAAO,IAAIxE,EAAYpN,KAAM0R,IACrE,OAAO,WAAqB,OAAO,IAAItE,EAAYpN,KAAM0R,IDvBtBN,ECiBdA,EDjBoBC,ECiBdA,GDjBLjE,ECiBdA,GDhBAzH,UAAYwC,GAAO6I,GAAmB,CAAEK,KAAM9D,EAAW,EAAG8D,KACxEQ,GAAezE,EAAagE,EAAO,aCgBnC,IAeIU,EAASxT,EAAK0S,EARdpL,EAAMwL,EAAO,YACbW,EAAaT,GAAWM,GACxBI,GAAa,EACbjE,EAAQoD,EAAKxL,UACbsM,EAAUlE,EAAMmE,KAAanE,EAnBjB,eAmBuCuD,GAAWvD,EAAMuD,GACpEa,EAAWF,GAAWR,EAAUH,GAChCc,EAAWd,EAAWS,EAAwBN,EAAU,WAArBU,OAAkC1X,EACrE4X,EAAqB,SAARjB,GAAkBrD,EAAMuE,SAAqBL,EAwB9D,GArBII,IACFrB,EAAoBpD,GAAeyE,EAAW1X,KAAK,IAAIwW,OAC7B9T,OAAOsI,WAAaqL,EAAkBK,MAE9DQ,GAAeb,EAAmBpL,GAAK,GAMvCmM,GAAcE,GAAWA,EAAQpT,OAAS+S,KAC5CI,GAAa,EACbG,EAAW,WAAoB,OAAOF,EAAQtX,KAAKqF,QAGpCwR,IAAYG,IAASK,IAAejE,EAAMmE,MACzD/R,EAAK4N,EAAOmE,GAAUC,GAGxBI,GAAUnB,GAAQe,EAClBI,GAAU3M,GAAOqL,GACbK,EAMF,GALAQ,EAAU,CACRU,OAAQT,EAAaI,EAAWV,EAAUG,IAC1CrO,KAAMgO,EAASY,EAAWV,EAhDrB,QAiDLa,QAASF,GAEPZ,EAAQ,IAAKlT,KAAOwT,EAChBxT,KAAOyP,GAAQ1C,GAAS0C,EAAOzP,EAAKwT,EAAQxT,SAC7CK,EAAQA,EAAQZ,EAAIY,EAAQO,GAAKyS,IAASK,GAAaZ,EAAMU,GAEtE,OAAOA,EDlET,IEb0BW,GDqBtBP,GAAW9U,GAAW,YACtBuU,KAAU,GAAGpO,MAAQ,QAAU,GAAGA,QAGlCqO,GAAS,SE1BTc,IDCsBD,ICDL,EDEZ,SAAUnY,EAAMqY,GACrB,IAGIjY,EAAGE,EAHHgY,EAAIC,OAAOlS,EAAQrG,IACnBuH,EAAIX,EAAUyR,GACd7L,EAAI8L,EAAErY,OAEV,OAAIsH,EAAI,GAAUiF,GAALjF,EAAe4Q,GAAY,QAAKhY,GAC7CC,EAAIkY,EAAEE,WAAWjR,IACN,OAAc,MAAJnH,GAAcmH,EAAI,IAAMiF,IAAMlM,EAAIgY,EAAEE,WAAWjR,EAAI,IAAM,OAAc,MAAJjH,EACpF6X,GAAYG,EAAE3M,OAAOpE,GAAKnH,EAC1B+X,GAAYG,EAAErS,MAAMsB,EAAGA,EAAI,GAA2BjH,EAAI,OAAzBF,EAAI,OAAU,IAAqB,WCRjEmY,OAAQ,SAAU,SAAUE,GACrC/S,KAAKgT,GAAKH,OAAOE,GACjB/S,KAAKiT,GAAK,GAET,WACD,IAEIC,EAFApV,EAAIkC,KAAKgT,GACT7P,EAAQnD,KAAKiT,GAEjB,OAAI9P,GAASrF,EAAEvD,OAAe,CAAEwB,WAAOtB,EAAW0Y,MAAM,IACxDD,EAAQR,GAAI5U,EAAGqF,GACfnD,KAAKiT,IAAMC,EAAM3Y,OACV,CAAEwB,MAAOmX,EAAOC,MAAM,MCpBf,SAAZC,GAAsBD,EAAMpX,GAC9B,MAAO,CAAEA,MAAOA,EAAOoX,OAAQA,GCoBR/V,GAAWsL,MAAO,QAAS,SAAUqK,EAAUrB,GACtE1R,KAAKgT,GAAKpR,EAAUmR,GACpB/S,KAAKiT,GAAK,EACVjT,KAAKyG,GAAKiL,GAET,WACD,IAAI5T,EAAIkC,KAAKgT,GACTtB,EAAO1R,KAAKyG,GACZtD,EAAQnD,KAAKiT,KACjB,OAAKnV,GAAKqF,GAASrF,EAAEvD,QACnByF,KAAKgT,QAAKvY,EACH4Y,GAAK,IAEaA,GAAK,EAApB,QAAR3B,EAA+BvO,EACvB,UAARuO,EAAiC5T,EAAEqF,GACxB,CAACA,EAAOrF,EAAEqF,MACxB,aAGOmQ,UAAYf,GAAU7J,MCrBhC,IARA,IAAI6K,GAAgB9V,GAAW,eAE3B+V,GAAe,wbAIUhR,MAAM,KAE1BX,GAAI,EAAGA,GAAI2R,GAAajZ,OAAQsH,KAAK,CAC5C,IAAIuP,GAAOoC,GAAa3R,IACpB4R,GAAanX,EAAO8U,IACpBrD,GAAQ0F,IAAcA,GAAW9N,UACjCoI,KAAUA,GAAMwF,KAAgBpT,EAAK4N,GAAOwF,GAAenC,IAC/DmB,GAAUnB,IAAQmB,GAAU7J,MCjB9B,ICJI0C,GDIW1N,GAAWG,EAAE,eEJjB,oBCAA,cCQX,ICRI6V,GDQSpH,EAAWtG,OELpB2N,GAAYvX,EAAqC,SAAUC,GAC/D,SAASuX,EAAQrH,GAaf,OATElQ,EAAOE,QAAUqX,EADI,mBAAZC,IAAsD,iBAArBC,GACf,SAAiBvH,GAC1C,cAAcA,GAGW,SAAiBA,GAC1C,OAAOA,GAA0B,mBAAZsH,IAA0BtH,EAAIsB,cAAgBgG,IAAWtH,IAAQsH,GAAQlO,UAAY,gBAAkB4G,GAIzHqH,EAAQrH,GAGjBlQ,EAAOE,QAAUqX,ICfjB,IAAIG,GARJ,SAAgCrX,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIsX,eAAe,6DAG3B,OAAOtX,GCQT,IAAIuX,GARJ,SAAoCvX,EAAM/B,GACxC,OAAIA,GAA2B,WAAlBiZ,GAAQjZ,IAAsC,mBAATA,EAI3CoZ,GAAsBrX,GAHpB/B,6BCmBX,IAAIuZ,GAjBJ,SAAsBC,GACpB,IAAIC,EAA4B1D,KAChC,OAAO,WACL,IAIM2D,EACJvS,EALEwS,EAAQ1G,GAAeuG,GAU3B,OALErS,EAFEsS,GACEC,EAAYzG,GAAe5N,MAAM6N,YAC5B8C,GAAmB2D,EAAOvZ,UAAWsZ,IAErCC,EAAMxZ,MAAMkF,KAAMjF,WAGtBkZ,GAA0BjU,KAAM8B,KCPzByS,yBAAgC,0CAMhCA,sBAA6B,qCAM7BA,yBAAgC,0CAMhCA,0BAAiC,2CAMjCA,wBAA+B,0CAM/BA,qBAA4B,uCAM5BA,wBAA+B,yCAM/BA,qBAA4B,uCAM5BA,sBAA6B,wCAM7BA,2BAAkC,6CAMlCA,0BAAiC,4CAMjCA,sBAA6B,gBAK7BA,oBAA2B,WAM3BA,sBAA6B,gBAM7BA,uBAA8B,iBAM9BA,qBAA4B,gBAM5BA,kBAAyB,aAMzBA,qBAA4B,eAM5BA,kBAAyB,aAMzBA,wBAA+B,mBAK/BA,uBAA8B,gBCnHjC,SAAXC,GAAqBta,GACvB,IAAI4D,EAAGgG,EAAGtE,EACV,YAAc/E,IAAPP,EAAmB,YAAqB,OAAPA,EAAc,OAEN,iBAApC4J,EAVD,SAAU5J,EAAIoE,GACzB,IACE,OAAOpE,EAAGoE,GACV,MAAOpD,KAOOuZ,CAAO3W,EAAIT,OAAOnD,GAAK0L,KAAoB9B,EAEvD4Q,GAAMnS,EAAIzE,GAEM,WAAf0B,EAAI+C,EAAIzE,KAAsC,mBAAZA,EAAE6W,OAAuB,YAAcnV,ECftD,SAAtBoV,GAAgC9W,EAAGiG,GACrC,IACIvI,EADAuE,EAAI9B,EAASH,GAAG+P,YAEpB,YAAapT,IAANsF,GAAiDtF,OAA7Be,EAAIyC,EAAS8B,GAAG8U,KAAyB9Q,EAAIvJ,EAAUgB,GCQ1E,SAANsZ,KACF,IAGMza,EAHFgH,GAAMrB,KAEN+U,GAAMvW,eAAe6C,KACnBhH,EAAK0a,GAAM1T,UACR0T,GAAM1T,GACbhH,KAGW,SAAX2a,GAAqBC,GACvBH,GAAIna,KAAKsa,EAAMC,MFzBjB,IEcIC,GAAOC,GAASC,GFdhBzP,GAAMxI,GAAW,eAEjBsX,GAAkD,aAA5CnS,EAAI,WAAc,OAAOxH,UAArB,IGFVmX,GAAW9U,GAAW,YACtBkY,GAAa5M,MAAM/C,UCCnBuM,GAAW9U,GAAW,YAEtBmY,GAAyB9X,EAAW+X,kBAAoB,SAAUtb,GACpE,GAAUO,MAANP,EAAiB,OAAOA,EAAGgY,KAC1BhY,EAAG,eACHqY,GAAUkD,GAAQvb,KCArBwb,GAAStZ,EAAqC,SAAUC,GAC5D,IAAIsZ,EAAQ,GACRC,EAAS,GACTrZ,EAAUF,EAAOE,QAAU,SAAUsZ,EAAUvD,EAASjY,EAAIC,EAAM4X,GACpE,IAGI3X,EAAQ8Y,EAAMjI,EAAUtJ,EFXD5H,EEQvB4b,EAAS5D,EAAW,WAAc,OAAO2D,GAAcE,GAAUF,GACjEhY,EAAIiC,EAAIzF,EAAIC,EAAMgY,EAAU,EAAI,GAChCnP,EAAQ,EAEZ,GAAqB,mBAAV2S,EAAsB,MAAM3b,UAAU0b,EAAW,qBAE5D,QFbcpb,KADaP,EEcX4b,IFbYvD,GAAU7J,QAAUxO,GAAMob,GAAWpD,MAAchY,GEgBxE,IAAKkR,EAAW0K,EAAOnb,KAAKkb,KAAaxC,EAAOjI,EAASiG,QAAQ8B,MAEtE,IADArR,ECvBY,SAAUsJ,EAAU/Q,EAAI0B,EAAOuW,GAC7C,IACE,OAAOA,EAAUjY,EAAG4D,EAASlC,GAAO,GAAIA,EAAM,IAAM1B,EAAG0B,GAEvD,MAAOb,GACP,IAAI8a,EAAM5K,EAAiB,OAE3B,WADY3Q,IAARub,GAAmB/X,EAAS+X,EAAIrb,KAAKyQ,IACnClQ,GDgBGP,CAAKyQ,EAAUvN,EAAGwV,EAAKtX,MAAOuW,MACxBqD,GAAS7T,IAAW8T,EAAQ,OAAO9T,OAL3B,IAAKvH,EAAS6I,EAASyS,EAAStb,QAAkB4I,EAAT5I,EAAgB4I,IAEhF,IADArB,EAASwQ,EAAUzU,EAAEI,EAASoV,EAAOwC,EAAS1S,IAAQ,GAAIkQ,EAAK,IAAMxV,EAAEgY,EAAS1S,OACjEwS,GAAS7T,IAAW8T,EAAQ,OAAO9T,GAMtDvF,EAAQoZ,MAAQA,EAChBpZ,EAAQqZ,OAASA,IJvBbf,GAAUzX,GAAW,WCGrB6Y,GAAU3Z,EAAO2Z,QACjBC,GAAU5Z,EAAO6Z,aACjBC,GAAY9Z,EAAO+Z,eACnBC,GAAiBha,EAAOga,eACxBC,GAAWja,EAAOia,SAClBC,GAAU,EACVzB,GAAQ,GACR0B,GAAqB,qBAepBP,IAAYE,KACfF,GAAU,SAAsB7b,GAG9B,IAFA,IAAIgS,EAAO,GACPxK,EAAI,EACkBA,EAAnB9G,UAAUR,QAAY8R,EAAKrK,KAAKjH,UAAU8G,MAMjD,OALAkT,KAAQyB,IAAW,WAEjBrG,GAAoB,mBAAN9V,EAAmBA,EAAKsC,SAAStC,GAAKgS,IAEtD8I,GAAMqB,IACCA,IAETJ,GAAY,SAAwB/U,UAC3B0T,GAAM1T,IAGY,WAAvBjE,EAAW6Y,IACbd,GAAQ,SAAU9T,GAChB4U,GAAQS,SAAS5W,EAAIgV,GAAKzT,EAAI,KAGvBkV,IAAYA,GAASI,IAC9BxB,GAAQ,SAAU9T,GAChBkV,GAASI,IAAI7W,EAAIgV,GAAKzT,EAAI,KAGnBiV,IAETjB,IADAD,GAAU,IAAIkB,IACCM,MACfxB,GAAQyB,MAAMC,UAAY9B,GAC1BG,GAAQrV,EAAIuV,GAAK0B,YAAa1B,GAAM,IAG3B/Y,EAAO0a,kBAA0C,mBAAfD,cAA8Bza,EAAO2a,eAChF9B,GAAQ,SAAU9T,GAChB/E,EAAOya,YAAY1V,EAAK,GAAI,MAE9B/E,EAAO0a,iBAAiB,UAAWhC,IAAU,IAG7CG,GADSsB,MAAsBS,EAAI,UAC3B,SAAU7V,GAChB8V,GAAK/N,YAAY8N,EAAI,WAAWT,IAAsB,WACpDU,GAAKC,YAAYpX,MACjB8U,GAAIna,KAAK0G,KAKL,SAAUA,GAChBgW,WAAWvX,EAAIgV,GAAKzT,EAAI,GAAI,KAIlC,IAAIiW,GAAQ,CACV/L,IAAK2K,GACLqB,MAAOnB,IKnFLoB,GAAYpa,GAAWmO,IACvBkM,GAAWnb,EAAOob,kBAAoBpb,EAAOqb,uBAC7C1B,GAAU3Z,EAAO2Z,QACjB2B,GAAUtb,EAAOsb,QACjBC,GAAgC,WAAvBpa,EAAWwY,ICJxB,SAAS6B,GAAkB/X,GACzB,IAAIgY,EAASC,EACbhY,KAAKiY,QAAU,IAAIlY,EAAE,SAAUmY,EAAWC,GACxC,QAAgB1d,IAAZsd,QAAoCtd,IAAXud,EAAsB,MAAM7d,UAAU,2BACnE4d,EAAUG,EACVF,EAASG,IAEXnY,KAAK+X,QAAUvd,EAAUud,GACzB/X,KAAKgY,OAASxd,EAAUwd,GCfX,SAAXI,GAAqBnd,GACvB,IACE,MAAO,CAAEC,GAAG,EAAOmd,EAAGpd,KACtB,MAAOC,GACP,MAAO,CAAEA,GAAG,EAAMmd,EAAGnd,ICGH,SAAlBod,GAA4BvY,EAAGwY,GAEjC,GADAta,EAAS8B,GACLtE,EAAS8c,IAAMA,EAAE1K,cAAgB9N,EAAG,OAAOwY,EAC/C,IAAIC,EAAoBC,GAAqB5a,EAAEkC,GAG/C,OADAgY,EADcS,EAAkBT,SACxBQ,GACDC,EAAkBP,QFK3B,IAIIS,GAAwB,CAC3B7a,EALO,SAAUkC,GAChB,OAAO,IAAI+X,GAAkB/X,KGhB3B4Y,GAAYrc,EAAOqc,UAEnBC,GAAaD,IAAaA,GAAUE,WAAa,GCWjDhE,GAAUzX,GAAW,WCbrB8U,GAAW9U,GAAW,YACtB0b,IAAe,EAEnB,IACc,CAAC,GAAG5G,MACF,OAAI,WAAc4G,IAAe,GAG/C,MAAO5d,IAET,INCM6d,GAAMC,GAmCJf,GACJgB,GAVIC,GACAC,GOeJC,GAAOhc,GAAWmO,IAClB8N,IPtBAJ,GADEpB,GACO,WACP5B,GAAQS,SAAS4C,MAGV7B,IAAcnb,EAAOqc,WAAarc,EAAOqc,UAAUY,WAQnD3B,IAAWA,GAAQG,SAExBE,GAAUL,GAAQG,aAAQtd,GACrB,WACPwd,GAAQuB,KAAKF,MASN,WAEP9B,GAAU7c,KAAK2B,EAAQgd,MAtBrBJ,IAAS,EACTC,GAAO9d,SAASoe,eAAe,IACnC,IAAIhC,GAAS6B,IAAOI,QAAQP,GAAM,CAAEQ,eAAe,IAC1C,WACPR,GAAKjE,KAAOgE,IAAUA,KAsBnB,SAAU7e,GACf,IAAI+e,EAAO,CAAE/e,GAAIA,EAAIgX,UAAM5W,GACvBue,KAAMA,GAAK3H,KAAO+H,GACjBL,KACHA,GAAOK,EACPH,MACAD,GAAOI,IAxDC,SAARE,KACF,IAAIM,EAAQvf,EAEZ,IADIwd,KAAW+B,EAAS3D,GAAQ4D,SAASD,EAAOE,OACzCf,IAAM,CACX1e,EAAK0e,GAAK1e,GACV0e,GAAOA,GAAK1H,KACZ,IACEhX,IACA,MAAOa,GAGP,MAFI6d,GAAME,KACLD,QAAOve,EACNS,GAER8d,QAAOve,EACLmf,GAAQA,EAAOG,QOuCX,SAARC,MAuBa,SAAbC,GAAuB/f,GACzB,IAAIsf,EACJ,SAAO/d,EAASvB,IAAkC,mBAAnBsf,EAAOtf,EAAGsf,QAAsBA,EAEpD,SAATP,GAAmBhB,EAASiC,GAC9B,IAEIC,EAFAlC,EAAQmC,KACZnC,EAAQmC,IAAK,EACTD,EAAQlC,EAAQoC,GACpBhB,GAAU,WAoCR,IAnCA,IAAItd,EAAQkc,EAAQqC,GAChBC,EAAmB,GAAdtC,EAAQuC,GACb3Y,EAAI,EAiCDsY,EAAM5f,OAASsH,IAhCZ,SAAU4Y,GAClB,IAII3Y,EAAQ0X,EAAMkB,EAJdC,EAAUJ,EAAKE,EAASF,GAAKE,EAASG,KACtC7C,EAAU0C,EAAS1C,QACnBC,EAASyC,EAASzC,OAClB6B,EAASY,EAASZ,OAEtB,IACMc,GACGJ,IACe,GAAdtC,EAAQ4C,IAASC,GAAkB7C,GACvCA,EAAQ4C,GAAK,IAEC,IAAZF,EAAkB7Y,EAAS/F,GAEzB8d,GAAQA,EAAOE,QACnBjY,EAAS6Y,EAAQ5e,GACb8d,IACFA,EAAOC,OACPY,GAAS,IAGT5Y,IAAW2Y,EAASxC,QACtBD,EAAO7d,GAAU,yBACRqf,EAAOS,GAAWnY,IAC3B0X,EAAK7e,KAAKmH,EAAQiW,EAASC,GACtBD,EAAQjW,IACVkW,EAAOjc,GACd,MAAOb,GACH2e,IAAWa,GAAQb,EAAOC,OAC9B9B,EAAO9c,IAGc4Z,CAAIqF,EAAMtY,MACnCoW,EAAQoC,GAAK,GACbpC,EAAQmC,IAAK,EACTF,IAAajC,EAAQ4C,IAAIE,GAAY9C,MAqC/B,SAAV+C,GAAoBjf,GACtB,IAAIkc,EAAUjY,KACViY,EAAQgD,KACZhD,EAAQgD,IAAK,GACbhD,EAAUA,EAAQiD,IAAMjD,GAChBqC,GAAKve,EACbkc,EAAQuC,GAAK,EACRvC,EAAQkD,KAAIlD,EAAQkD,GAAKlD,EAAQoC,GAAG9Z,SACzC0Y,GAAOhB,GAAS,IA1HlB,IAQImD,GAAUC,GAA6BC,GAAsBC,GFpDrCnW,GACtBrF,GE2CFyb,GAAU,UACVrhB,GAAYmC,EAAOnC,UACnB8b,GAAU3Z,EAAO2Z,QACjBwF,GAAWxF,IAAWA,GAAQwF,SAC9BC,GAAKD,IAAYA,GAASC,IAAM,GAChCC,GAAWrf,EAAOkf,IAClB3D,GAA6B,WAApBpC,GAAQQ,IAGjBwC,GAAuB4C,GAA8BO,GAA2B/d,EAEhF6M,KAAe,WACjB,IAEE,IAAIuN,EAAU0D,GAAS5D,QAAQ,GAC3B8D,GAAe5D,EAAQpK,YAAc,IAAInQ,GAAW,YAAc,SAAUzC,GAC9EA,EAAK+e,GAAOA,KAGd,OAAQnC,IAA0C,mBAAzBiE,wBACpB7D,EAAQuB,KAAKQ,cAAkB6B,GAIT,IAAtBH,GAAGK,QAAQ,SACyB,IAApClD,GAAUkD,QAAQ,aACvB,MAAO7gB,KAfQ,GAqEf6f,GAAc,SAAU9C,GAC1BmB,GAAKze,KAAK2B,EAAQ,WAChB,IAEIwF,EAAQ6Y,EAASqB,EAFjBjgB,EAAQkc,EAAQqC,GAChB2B,EAAYC,GAAYjE,GAe5B,GAbIgE,IACFna,EAASqa,GAAQ,WACXtE,GACF5B,GAAQmG,KAAK,qBAAsBrgB,EAAOkc,IACjC0C,EAAUre,EAAO+f,sBAC1B1B,EAAQ,CAAE1C,QAASA,EAASqE,OAAQvgB,KAC1BigB,EAAU1f,EAAO0f,UAAYA,EAAQO,OAC/CP,EAAQO,MAAM,8BAA+BxgB,KAIjDkc,EAAQ4C,GAAKhD,IAAUqE,GAAYjE,GAAW,EAAI,GAClDA,EAAQkD,QAAK1gB,EACXwhB,GAAana,EAAO5G,EAAG,MAAM4G,EAAOuW,KAGxC6D,GAAc,SAAUjE,GAC1B,OAAsB,IAAfA,EAAQ4C,IAAkD,KAArC5C,EAAQkD,IAAMlD,EAAQoC,IAAI9f,QAEpDugB,GAAoB,SAAU7C,GAChCmB,GAAKze,KAAK2B,EAAQ,WAChB,IAAIqe,EACA9C,GACF5B,GAAQmG,KAAK,mBAAoBnE,IACxB0C,EAAUre,EAAOkgB,qBAC1B7B,EAAQ,CAAE1C,QAASA,EAASqE,OAAQrE,EAAQqC,QAc9CmC,GAAW,SAAU1gB,GACvB,IACIyd,EADAvB,EAAUjY,KAEd,IAAIiY,EAAQgD,GAAZ,CACAhD,EAAQgD,IAAK,EACbhD,EAAUA,EAAQiD,IAAMjD,EACxB,IACE,GAAIA,IAAYlc,EAAO,MAAM5B,GAAU,qCACnCqf,EAAOS,GAAWle,IACpBsd,GAAU,WACR,IAAIqD,EAAU,CAAExB,GAAIjD,EAASgD,IAAI,GACjC,IACEzB,EAAK7e,KAAKoB,EAAO+D,EAAI2c,GAAUC,EAAS,GAAI5c,EAAIkb,GAAS0B,EAAS,IAClE,MAAOxhB,GACP8f,GAAQrgB,KAAK+hB,EAASxhB,OAI1B+c,EAAQqC,GAAKve,EACbkc,EAAQuC,GAAK,EACbvB,GAAOhB,GAAS,IAElB,MAAO/c,GACP8f,GAAQrgB,KAAK,CAAEugB,GAAIjD,EAASgD,IAAI,GAAS/f,MAKxCwP,KAEHiR,GAAW,SAAiBgB,ICxNZ,SAAUziB,EAAIkT,EAAavO,EAAM+d,GACjD,KAAM1iB,aAAckT,SAAoC3S,IAAnBmiB,GAAgCA,KAAkB1iB,EACrF,MAAMC,UAAU0E,EAAO,2BDuNvBge,CAAW7c,KAAM2b,GAAUH,GAAS,MACpChhB,EAAUmiB,GACVvB,GAASzgB,KAAKqF,MACd,IACE2c,EAAS7c,EAAI2c,GAAUzc,KAAM,GAAIF,EAAIkb,GAAShb,KAAM,IACpD,MAAO8c,GACP9B,GAAQrgB,KAAKqF,KAAM8c,MAIvB1B,GAAW,WACTpb,KAAKqa,GAAK,GACVra,KAAKmb,QAAK1gB,EACVuF,KAAKwa,GAAK,EACVxa,KAAKib,IAAK,EACVjb,KAAKsa,QAAK7f,EACVuF,KAAK6a,GAAK,EACV7a,KAAKoa,IAAK,IAEHzU,UEzOQ,SAAU/F,EAAQyJ,EAAK0T,GACxC,IAAK,IAAIze,KAAO+K,EACV0T,GAAQnd,EAAOtB,GAAMsB,EAAOtB,GAAO+K,EAAI/K,GACtC6B,EAAKP,EAAQtB,EAAK+K,EAAI/K,IAC3B,OAAOsB,EFqOYod,CAAWrB,GAAShW,UAAW,CAElD6T,KAAM,SAAcyD,EAAaC,GAC/B,IAAIzC,EAAWhC,GAAqB0E,GAAmBnd,KAAM2b,KAO7D,OANAlB,EAASF,GAA2B,mBAAf0C,GAA4BA,EACjDxC,EAASG,KAA4B,mBAAdsC,GAA4BA,EACnDzC,EAASZ,OAAShC,GAAS5B,GAAQ4D,YAASpf,EAC5CuF,KAAKqa,GAAGrY,KAAKyY,GACTza,KAAKmb,IAAInb,KAAKmb,GAAGnZ,KAAKyY,GACtBza,KAAKwa,IAAIvB,GAAOjZ,MAAM,GACnBya,EAASxC,SAGlBmF,MAAS,SAAUF,GACjB,OAAOld,KAAKwZ,UAAK/e,EAAWyiB,MAGhC5B,GAAuB,WACrB,IAAIrD,EAAU,IAAImD,GAClBpb,KAAKiY,QAAUA,EACfjY,KAAK+X,QAAUjY,EAAI2c,GAAUxE,EAAS,GACtCjY,KAAKgY,OAASlY,EAAIkb,GAAS/C,EAAS,IAEtC2D,GAA2B/d,EAAI4a,GAAuB,SAAU1Y,GAC9D,OAAOA,IAAM4b,IAAY5b,IAAMwb,GAC3B,IAAID,GACJD,GAA4Btb,OAI5BpB,EAAQS,EAAIT,EAAQe,EAAIf,EAAQO,GAAKwL,GAAY,CAAEkN,QAAS+D,QACzDA,GAAUH,IFxPfzb,GAAwB,mBAAbjD,EADWsI,GE0PjBoW,IFzPgC1e,EAAKsI,IAAO9I,EAAO8I,IACxD4F,GAAejL,KAAMA,GAAE8U,KAAUlX,EAAGE,EAAEkC,GAAG8U,GAAS,CACpD5Y,cAAc,EACdsB,IAAK,WAAc,OAAOyC,QEuP9Bub,GAAU8B,EAAW7B,MAGb7c,EAAQnD,EAAImD,EAAQO,GAAKwL,GAAY8Q,GAAS,CAEpDxD,OAAQ,SAAgBsF,GACtB,IAAIC,EAAa9E,GAAqBzY,MAGtC,OADAmY,EADeoF,EAAWvF,QACjBsF,GACFC,EAAWtF,aAGdtZ,EAAQnD,GGzRD,EHyRKmD,EAAQO,EAA8Bsc,GAAS,CAEjEzD,QAAS,SAAiBQ,GACxB,OAAOiF,GAA0Bxd,OAASub,GAAUI,GAAW3b,KAAMuY,QAGjE5Z,EAAQnD,EAAImD,EAAQO,IAAMwL,IDlRhB,SAAUzP,EAAMwiB,GAChC,IAAKA,IAAgB3E,GAAc,OAAO,EAC1C,IAAIiE,GAAO,EACX,IACE,IAAIW,EAAM,CAAC,GACPC,EAAOD,EAAIxL,MACfyL,EAAKtM,KAAO,WAAc,MAAO,CAAE8B,KAAM4J,GAAO,IAChDW,EAAIxL,IAAY,WAAc,OAAOyL,GACrC1iB,EAAKyiB,GACL,MAAOxiB,IACT,OAAO6hB,ECwQuCa,CAAW,SAAUD,GACnEhC,GAASkC,IAAIF,GAAa,MAAE3D,OACzBwB,GAAS,CAEZqC,IAAK,SAAahI,GAChB,IAAI9V,EAAIC,KACJud,EAAa9E,GAAqB1Y,GAClCgY,EAAUwF,EAAWxF,QACrBC,EAASuF,EAAWvF,OACpBlW,EAASqa,GAAQ,WACnB,IAAI3J,EAAS,GACTrP,EAAQ,EACR2a,EAAY,EAChBC,GAAMlI,GAAU,EAAO,SAAUoC,GAC/B,IAAI+F,EAAS7a,IACT8a,GAAgB,EACpBzL,EAAOxQ,UAAKvH,GACZqjB,IACA/d,EAAEgY,QAAQE,GAASuB,KAAK,SAAUzd,GAC5BkiB,IACJA,GAAgB,EAChBzL,EAAOwL,GAAUjiB,IACf+hB,GAAa/F,EAAQvF,KACtBwF,OAEH8F,GAAa/F,EAAQvF,KAGzB,OADI1Q,EAAO5G,GAAG8c,EAAOlW,EAAOuW,GACrBkF,EAAWtF,SAGpBiG,KAAM,SAAcrI,GAClB,IAAI9V,EAAIC,KACJud,EAAa9E,GAAqB1Y,GAClCiY,EAASuF,EAAWvF,OACpBlW,EAASqa,GAAQ,WACnB4B,GAAMlI,GAAU,EAAO,SAAUoC,GAC/BlY,EAAEgY,QAAQE,GAASuB,KAAK+D,EAAWxF,QAASC,OAIhD,OADIlW,EAAO5G,GAAG8c,EAAOlW,EAAOuW,GACrBkF,EAAWtF,aIrTdtZ,EAAQZ,EAAIY,EAAQuB,EAAG,UAAW,CAAEie,QAAW,SAAUC,GAC/D,IAAIre,EAAIod,GAAmBnd,KAAMlD,EAAK8a,SAAWtb,EAAOsb,SACpDyG,EAAiC,mBAAbD,EACxB,OAAOpe,KAAKwZ,KACV6E,EAAa,SAAU9F,GACrB,OAAOiF,GAAezd,EAAGqe,KAAa5E,KAAK,WAAc,OAAOjB,KAC9D6F,EACJC,EAAa,SAAUnjB,GACrB,OAAOsiB,GAAezd,EAAGqe,KAAa5E,KAAK,WAAc,MAAMte,KAC7DkjB,QCfAzf,EAAQnD,EAAG,UAAW,CAAE8iB,IAAO,SAAUC,GAC/C,IAAI/F,EAAoBC,GAAqB5a,EAAEmC,MAC3C8B,EAASqa,GAAQoC,GAErB,OADCzc,EAAO5G,EAAIsd,EAAkBR,OAASQ,EAAkBT,SAASjW,EAAOuW,GAClEG,EAAkBP,WCF3B,ICNYuG,GAAAA,GCNRvG,GFYUoF,EAAWzF,wGGAbpb,OAAOiiB,aAAejiB,OAAOiiB,YAAYC,SAChCliB,OAAOiiB,YAAYC,OAAOC,aAEG,aAA/BniB,OAAOnB,SAASujB,iDASHC,OACnBA,SACM,MAEP/c,GAAS,QAC+B,oBAAxCzE,OAAOsI,UAAUhK,SAAShB,KAAKkkB,KAC/B/c,GAAS,GAGoC,IAA7C+c,EAAIC,QAAQ,iBAAkB,IAAIvkB,SAClCuH,GAAS,GAENA,yCAOkB+c,OACnBE,EAA4B1jB,SAAS2jB,YAAY,gBACvDD,EAAYE,iBAAiB,UAAU,GAAO,EAAOJ,EAAK,GAAI,GAAIriB,QAClEA,OAAO0iB,cAAcH,8CAQdviB,OAAO2iB,UAAyC,UAA7B3iB,OAAO2iB,SAASC,qDASnC,mEC9DoB,2CAelBrjB,OACL+F,GAAS,cACR4b,IAAI3Q,QAAQ,SAACsS,GACVtjB,EAAMujB,UAAUC,aAAeF,EAAKC,UAAUC,YAC9CxjB,EAAMujB,UAAUE,WAAaH,EAAKC,UAAUE,WAC5C1d,GAAS,KAGVA,8BAMA/F,GACHiE,KAAKyf,KAAK1jB,SACL2hB,IAAI1b,KAAKjG,0CAQS,IAApBiE,KAAK0d,IAAInjB,gDAOXmjB,IAAM,4CAOJ1d,KAAK0d,mDA/CPgC,EAAavS,WACduS,EAAavS,SAAW,IAAIuS,GAEzB1f,KAAKmN,2CC0CJwS,EAA0B1K,uCAPGyK,GAAaE,mBAQ7C3K,MAAQA,OACR0K,QAAUA,OACVE,iBAAmB,QACnBC,sBAAwB9f,KAAK8f,sBAAsBlQ,KAAK5P,MAC7DxD,OAAOwa,iBAAiB,OAAQhX,KAAK8f,sFAOrCtjB,OAAOujB,oBAAoB,OAAQ/f,KAAK8f,uBACjC9f,KAAK6f,iBAAiBtlB,QAAQ,KAC3BylB,EAA8ChgB,KAAK6f,iBAAiBI,QACtED,QACKE,uBAAuBF,EAAe/K,OAAOuE,KAAKwG,EAAejI,QAASiI,EAAehI,qDAU/FhY,KAAK2f,6DAiBPQ,GAAWC,cAAcpgB,KAAKiV,MAAMqK,UAAUe,cAC/CF,GAAWG,eAAe,6BACpB,IAAIC,MAAM,oCAIhBJ,GAAWK,YAAcxgB,KAAKiV,MAAMwL,YAAclM,GAAYmM,oBAC9D1gB,KAAKiV,MAAMwL,YAAclM,GAAYoM,kBAGhC3gB,KAAK4gB,oBAAoB5G,cACrB4G,oBAAoBtB,UAAUvS,QAAQ,SAAChR,GACxC8kB,EAAKX,uBAAuBnkB,UAG/B6kB,oBAAoBE,YAClB9gB,KAAKkgB,uBAAuBlgB,KAAKiV,QAGjC,OAA2B,SAAC8C,EACAC,GAC/B6I,EAAKhB,iBAAiB7d,KAAK,CACvBiT,MAAO4L,EAAK5L,MACZ8C,QAASA,EACTC,OAAQA,+CAjCb,0BJhFHwG,GAAAA,GAAAA,wBAWRA,qBAMAA,mBAMAA,qBKTJ,IAAIuC,GAAU1jB,OAAO2jB,OAGjBC,IAAiBF,IAAW3jB,EAAW,WACzC,IAAI8jB,EAAI,GACJ1hB,EAAI,GAEJhE,EAAIwK,SACJmb,EAAI,uBAGR,OAFAD,EAAE1lB,GAAK,EACP2lB,EAAE3e,MAAM,IAAIuK,QAAQ,SAAUpB,GAAKnM,EAAEmM,GAAKA,IACd,GAArBoV,GAAQ,GAAIG,GAAG1lB,IAAW6B,OAAOkG,KAAKwd,GAAQ,GAAIvhB,IAAIyQ,KAAK,KAAOkR,IACtE,SAAgBvhB,EAAQd,GAM3B,IALA,IAAIgF,EAAIoI,GAAStM,GACbwhB,EAAOrmB,UAAUR,OACjB4I,EAAQ,EACRsB,EAAaC,GAAK7G,EAClB+I,EAAS7B,GAAIlH,EACHsF,EAAPie,GAML,IALA,IAII9iB,EAJA9C,EAAIkF,EAAQ3F,UAAUoI,MACtBI,EAAOkB,EAAaZ,EAAQrI,GAAG4F,OAAOqD,EAAWjJ,IAAMqI,EAAQrI,GAC/DjB,EAASgJ,EAAKhJ,OACdkR,EAAI,EAEQA,EAATlR,GACL+D,EAAMiF,EAAKkI,KACNT,IAAepE,EAAOjM,KAAKa,EAAG8C,KAAMwF,EAAExF,GAAO9C,EAAE8C,IAEtD,OAAOwF,GACPid,KC5CIpiB,EAAQnD,EAAImD,EAAQO,EAAG,SAAU,CAAE8hB,OAAQ5jB,KCHnD,ICFI4jB,GDESvjB,EAAWJ,OAAO2jB,OED3BK,GAAajlB,EAAqC,SAAUC,GAChE,SAASilB,IAeP,OAdAjlB,EAAOE,QAAU+kB,EAAWC,IAAkB,SAAU3hB,GACtD,IAAK,IAAIiC,EAAI,EAAGA,EAAI9G,UAAUR,OAAQsH,IAAK,CACzC,IAAI/C,EAAS/D,UAAU8G,GAEvB,IAAK,IAAIvD,KAAOQ,EACVzB,OAAOsI,UAAUnH,eAAe7D,KAAKmE,EAAQR,KAC/CsB,EAAOtB,GAAOQ,EAAOR,IAK3B,OAAOsB,GAGF0hB,EAASxmB,MAAMkF,KAAMjF,WAG9BsB,EAAOE,QAAU+kB,ICpBbnX,GAAQrN,EAAKsN,OAAStN,EAAKsN,KAAO,CAAEE,UAAWF,KAAKE,YCApDA,GDCY,SAAmBpQ,GACjC,OAAOiQ,GAAMG,UAAUxP,MAAMqP,GAAOpP,qCEsCtBymB,EAAe7B,EAAmB8B,mBACrCD,MAAQA,OACR7B,QAAUA,OACV8B,KAAOA,wDAOL,CACHC,eAAgB1hB,KAAK2hB,aAAa5kB,+CAgBhC4iB,EAA2B3f,KAAK2hB,aAClCtB,EAASV,EAAQU,QAAUV,EAAQiC,mBAIlCjC,GAAWA,EAAQkC,cAAgB7hB,KAAKyhB,MAAQzhB,KAAKyhB,KAAKpB,SAC3DA,EAASrgB,KAAKyhB,KAAKpB,QAEhB,CACHyB,QAAS9hB,KAAKygB,UACdsB,WAAW,IAAIjR,MAAOkR,UACtBzC,WAAYI,EAAQJ,WACpB0C,QAAStC,EAAQsC,QACjBC,WAAYvC,EAAQuC,WACpBC,MAAOxC,EAAQwC,MACfC,IAAKzC,EAAQyC,KAAOjD,SAASkD,KAC7BC,SAAU3C,EAAQ2C,SAClBC,UAAW5C,EAAQ4C,UACnB1J,UAAW8G,EAAQ9G,UACnB2J,OAAQ7C,EAAQ6C,OAChBC,UAAW9C,EAAQ8C,UACnBpC,OAAQA,EACRqC,SAAU/C,EAAQ+C,SAClBC,OAAQhD,EAAQgD,OAChBC,OAAQjD,EAAQiD,OAChBC,UAAWlD,EAAQkD,UACnBC,MAAOnD,EAAQmD,MACfC,OAAQpD,EAAQoD,OAChBC,SAAUrD,EAAQqD,SAClBC,mBAAoBtD,EAAQsD,mBAC5BC,UAAWvD,EAAQuD,UACnB1B,MAAOxhB,KAAKmjB,WACZC,KAAMpjB,KAAKqjB,yDASR,CACHvB,QAAS,IACTC,UAAW,KACXxC,WAAY,OACZxiB,QAAS,KACTklB,QAAS,KACTC,WAAY,KACZC,MAAO,MACPC,IAAK,IACLE,SAAU,MACVC,UAAW,MACX1J,UAAW,KACX2J,OAAQ,KACRC,UAAW,KACXpC,OAAQ,KACRqC,SAAU,KACVC,OAAQ,MACRC,OAAQ,SACRC,UAAW,MACXC,MAAO,QACPC,OAAQ,KACRC,SAAU,MACVC,mBAAoB,MACpBC,UAAW,KACXE,KAAM,qDASH,CACHE,OAAQ,IACR5B,eAAgB,sEAUV6B,EAA+BvjB,KAAKsf,UACpC/S,EAAmB,GACnBiX,EAAiCxjB,KAAKyjB,oBACvC,IAAMC,KAAQH,EACF,UAATG,GAAqB,iBAAiBrV,KAAKhR,OAAOsI,UAAUhK,SAAShB,KAAK4oB,EAAUG,OACpFnX,EAAIiX,EAAWE,IAASA,GAAQH,EAAUG,WAG3CC,GAAepX,GACxB,MAAOrR,UACLilB,GAAWG,eAAe,uCACnB,2DAWDiD,EAA+BvjB,KAAKsf,UAEpCsE,EAAUlX,GAAY6W,GAAWM,OACjCC,EAAgB,GAChBN,EAAiCxjB,KAAKyjB,uBAE5CG,EAAQ7W,QAAQ,SAAC2W,OAIHK,EAHG,UAATL,GAAqB,iBAAiBrV,KAAKhR,OAAOsI,UAAUhK,SAAShB,KAAK4oB,EAAUG,KAEpE,UAATA,GAEc,QADfK,EAAuBlD,EAAKmD,uBAAuBT,EAAU/B,OAAS,MAExEsC,EAAI9hB,qBAAeiiB,mBAAmBF,KAJ1CD,EAAI9hB,eAASwhB,EAAWE,IAASA,cAAUO,mBAAmBV,EAAUG,QAQzEI,EAAI7T,KAAK,KAClB,MAAO/U,UACLilB,GAAWG,eAAe,mBACnB,mDASekB,WAMRljB,EAJR4lB,EAA+B,GAC/BC,EAAkCnkB,KAAKokB,qBACxC,IAAMV,KAAQlC,EAAO,CAClBA,EAAMhjB,eAAeklB,KACfplB,EAAc6lB,EAAYT,IAASA,EACrC,eAAerV,KAAKhR,OAAOsI,UAAUhK,SAAShB,KAAK6mB,EAAMkC,KACzDQ,EAAgB5lB,GAAOqlB,GAAenC,EAAMkC,IACrC,SAASrV,KAAKhR,OAAOsI,UAAUhK,SAAShB,KAAK6mB,EAAMkC,MAAWlC,EAAMkC,IAEpE,SAASrV,KAAKhR,OAAOsI,UAAUhK,SAAShB,KAAK6mB,EAAMkC,KAD1DQ,EAAgB5lB,GAAOkjB,EAAMkC,GAGtB,UAAUrV,KAAKhR,OAAOsI,UAAUhK,SAAShB,KAAK6mB,EAAMkC,OAC3DQ,EAAgB5lB,GAAqB,EAAdkjB,EAAMkC,YAIlCC,GAAeO,GACxB,MAAOhpB,UACLilB,GAAWG,eAAe,gCACnB,gDAWJtgB,KAAK2f,+CAQN0E,EAAiB,GACjB1E,EAAU3f,KAAK2hB,oBACjBhC,EAAQ2E,SACRD,EAAS,SAAe1E,EAAQ2E,QAG7BhD,GAAc+C,EAAW1E,EAAQ6B,OAAS,GAAIxhB,KAAKwhB,MAAOxhB,KAAKukB,oDAQhE5E,EAA2B3f,KAAK2hB,oBAClCxB,GAAWC,cAAcT,EAAQyD,mBACnBzD,EAAQyD,MAEf,iCC1PsBoB,2BAkBzBjI,EAAcuF,EAAiBN,EAAe7B,0CAChD6B,EAAO7B,IACRpD,MAAQA,IACRuF,QAAUA,wDASR9hB,KAAK8hB,kDAkBL9hB,KAAKuc,4CATLiC,GAAYiG,mCCvCeD,2BAY1B1C,EAAiBN,EAAe7B,0CAClC6B,EAAO7B,IACRmC,QAAUA,wDASR9hB,KAAK8hB,8CASLtD,GAAYkG,kHCbUC,OACvBC,EAAoBC,EAAmBC,sBACvCC,iBAAgC,IAAIjU,MAAOkR,WACjD2C,YAAmBA,kBAAsBC,cAAeG,OAClDroB,EAAOsD,YACRxD,OAAeooB,GACfpoB,OAAeooB,GAAWG,GAAiB,kBAChCvoB,OAAeooB,GAAWG,GAClCroB,EAAKsoB,eAAelqB,MAAM4B,EAAM3B,YAGnCyB,OAAeooB,SACXG,EAAgB,kBACLvoB,OAAeooB,GAAWG,GAClCroB,EAAKsoB,eAAelqB,MAAM4B,EAAM3B,aAIrC4pB,yCAMkBM,OAaP9hB,EAZZ+hB,EAAaL,EAAmBM,4BAClCF,GAASA,EAAMG,YAIV,IAAM1B,KAHLlnB,OAAe0oB,KAChB1oB,OAAe0oB,GAAM,IAEPD,EAAMG,QAAS,CACF,IAAxBH,EAAMG,QAAQ1B,GACRlnB,OAAe0oB,GAAiBnJ,QAAQ2H,GAAQ,GAEhDlnB,OAAe0oB,GAAiBljB,KAAK0hB,GAI9B,IADPvgB,EAAkB3G,OAAe0oB,GAAiBnJ,QAAQ2H,KAE1DlnB,OAAe0oB,GAAiBG,OAAOliB,EAAO,aA/C7C0hB,yBAAgC,eAMhCA,4BAAmC,uHCzBjChG,WACjByG,EAAe,WACVzjB,EAAY,EAAG4J,EAAYoT,EAAItkB,OAAQsH,EAAI4J,IAAK5J,EACrDyjB,IAAUA,GAAQ,GAAKzG,EAAI/L,WAAWjR,IAAMyjB,GAAQ,UAE1C,WAAPA,wCAOiBzG,mBACbA,iBAAY7e,KAAKulB,WAAW1G,gCCLA2G,iIAOVvQ,qBACtB,OAA2B,SAAC8C,EACAC,OACzByN,YAAStF,GAAWuF,sBAAgB7E,EAAKc,aAAagE,mBAAa9E,EAAK+E,YACxEC,EAAM,IAAIC,eACVvC,EAAYtO,EAAMqK,UACxBuG,EAAIE,QAAUlF,EAAKc,aAAaoE,SAfb,KAgBnBF,EAAIG,UAAY,WACZhO,EAAO,IAAIiO,GAAahR,EAAMwL,UAAW8C,EAAU/B,OAAS,GAAIX,EAAKc,gBAEzEkE,EAAItc,KAAK,OAAQkc,eAAYxQ,EAAMwL,YACnCoF,EAAIK,iBAAiB,eAAgB,oDACrCL,EAAIK,iBAAiB,MAAO3C,EAAUpB,OAAS,IAC/C0D,EAAIK,iBAAiB,MAAO3C,EAAUlD,QAAU,IAEhDwF,EAAIK,iBACA,kBACG3C,EAAUhE,YAAc,eAAMgE,EAAU/D,UAAY,eAAM+D,EAAUxB,WAAa,KAExF8D,EAAIM,KAAKC,GAAWC,cAAcpR,EAAMqR,cACxCT,EAAIU,mBAAqB,cACE,IAAnBV,EAAIjH,YAAmC,MAAfiH,EAAIW,eAElBC,EAAWrc,KAAKsc,MAAMb,EAAIc,cAC5BF,EAASG,OAAiC,MAAxBH,EAASG,MAAMC,OACL,MAAxBJ,EAASG,MAAMC,MACfhG,EAAKD,oBAAoBkG,IAAI7R,GAEjCkL,GAAWG,sCAA+BrL,EAAMwL,oDAC9CgG,EAASG,MAAMC,MAAQ,cAAKJ,EAASG,MAAMG,KAAO,MAExDlC,GAAmBG,eAAeyB,GAClC1O,EAAQ9C,GACV,MAAOsH,GAENP,QAAQO,0BAAmBsJ,EAAIc,iBAI1Cd,EAAImB,QAAU,WACS,MAAfnB,EAAIW,OACJ3F,EAAKD,oBAAoBkG,IAAI7R,GAE7B+G,QAAQO,MAAM,kBAAoBsJ,EAAIW,QAE1CxO,EAAO,IAAIiP,GAAY,IAAI1G,MAAM,cAAetL,EAAMwL,UAClD8C,EAAU/B,OAAS,GAAIX,EAAKc,4HCrDXhC,EAA0B1K,UACnD0D,UAAUuO,WAEH,IAAIC,GAAkBxH,EAAS1K,+BCAGuP,2BA0BrChD,EAAe7B,EAAmB8B,kCACpCD,EAAO7B,EAAS8B,OAChB2F,EAAiBC,EAAeC,yBAChCC,EAAiBF,EAAeG,gCAChChrB,iBAAmB4qB,UAAYzH,EAA4BJ,mBAAegI,MAC3E/qB,iBAAmB4qB,UAAYzH,EAA4BJ,mBAAegI,IAAa,KAEvF/H,SAAYhjB,iBAAmB4qB,UAAYzH,EAA4BJ,mBAAegI,wHAWvF/H,SAAUxf,KAAKwf,4HAYfA,SAAU,8CAUPhB,GAAYiJ,gBA5DAJ,4BAAmC,kBAMnCA,4BAAmC,4BCddA,2HAQjC9S,GAAYmT,gEAUfC,aAAe3nB,KAAK2hB,aAAiCgG,iLAarDA,aAAc,kCChCgBnD,2BAY1B1C,EAAiBN,EAAe7B,0CAClC6B,EAAO7B,IACRmC,QAAUA,gGAiBR9hB,KAAK8hB,8CASLtD,GAAYoJ,iBClCrBC,GAAgC,CAClC,uBACA,wBACA,yBAIEC,GAAiC,CACnC,wBAIEC,GAA6B,CAC/B,2BAGEC,GAA0C,CAAC,CACzCC,UAAW,CAAC,6BACZppB,KAAM,qBACP,CACHopB,UAAW,CAAC,gCACZppB,KAAM,UACP,CACCopB,UAAW,CAAC,8BACZppB,KAAM,UACP,CACCopB,UAAW,CAAC,oBACZppB,KAAM,MAEV,CACIopB,UAAW,CAAC,2BACZppB,KAAM,YACP,CACCA,KAAM,WACNopB,UAAW,CAAC,cACb,CACCppB,KAAM,iBACNopB,UAAW,CAAC,qBACb,CACCppB,KAAM,YACNopB,UAAW,CAAC,gBACb,CACCppB,KAAM,mBACNopB,UAAW,CACP,YACA,eAEL,CACCppB,KAAM,4BACNopB,UAAW,CAAC,oBACb,CACCppB,KAAM,cACNopB,UAAW,CAAC,kBACb,CACCppB,KAAM,gBACNopB,UAAW,CAAC,oBACb,CACCppB,KAAM,iBACNopB,UAAW,CAAC,sBACb,CACCppB,KAAM,iBACNopB,UAAW,CAAC,sBACb,CACCppB,KAAM,cACNopB,UAAW,CAAC,YACb,CACCppB,KAAM,YACNopB,UAAW,CAAC,UACb,CACCppB,KAAM,SACNopB,UAAW,CAAC,YAEhB,CACIppB,KAAM,KACNopB,UAAW,CAAC,mBACb,CACCppB,KAAM,QACNopB,UAAW,CAAC,YAGVC,GAAqC,CAAC,CACxCD,UAAW,CAAC,+BACZppB,KAAM,WACP,CACCopB,UAAW,CACP,uBACA,yDAEJppB,KAAM,OACP,CACCopB,UAAW,CACP,8BACA,kCAEJppB,KAAM,UACP,CACCopB,UAAW,CACP,oCACA,gCAEJppB,KAAM,qCAwCMspB,mBACHC,WAAY,OACZD,QAAUA,MAETE,EAA6BroB,KAAKmoB,QAAQxG,aAAatB,QAAUrgB,KAAKmoB,QAAQxG,aAAaC,iBAC5F0G,mBAAqBtoB,KAAKuoB,sBAAsBF,GAAU,YACjDF,EAAQxG,aAAc3hB,KAAKwoB,4EAOfnI,UAC1BA,EAASA,EAAOvB,QAAQ,MAAO,mCACDuB,sDAKE,IADJ7jB,OAAewD,KAAKsoB,qBAAuB,IAChD/tB,SAClBiC,OAAewD,KAAKsoB,oBAAoB/tB,OAAS,oCAQ1CkuB,WACNC,EAAa/P,UAAUE,UACpBhX,EAAY,EAAG4J,EAAYgd,EAAkBluB,OAAQsH,EAAI4J,IAAK5J,UAC7Dwd,EAA0BoJ,EAAkB5mB,GAC9ChD,EAAewgB,EAAKxgB,KAClBopB,EAAsB5I,EAAK4I,UACxBU,EAAc,EAAG5Y,EAAckY,EAAU1tB,OAAQouB,EAAM5Y,IAAO4Y,EAAK,KAClEC,EAA0CX,EAAUU,GAAK1tB,KAAKytB,MAChEE,GAAmBA,EAAgBruB,OAAQ,KACvCwC,EAAkB6rB,EAAgB,SACzB,QAAT/pB,EACA9B,EAAU6rB,EAAgB,GAAG9J,QAAQ,KAAM,KAC3B,WAATjgB,EACP9B,EAAUA,EAAQ+hB,QAAQ,KAAM,KAGhB,WAATjgB,GAAqBrC,OAAOqsB,IAAMA,IAAMA,GAAGC,aAAeD,GAAGC,YAAYC,QAA2C,mBAA1BF,GAAGC,YAAYC,OAGhHF,GAAGC,YAAYC,OAAO,SAACC,GACfA,EAAIC,cACJpqB,EAAO,uBAKC,WAATA,GAAqBrC,OAAO0sB,IAAMA,IAAMA,GAAGH,QAA+B,mBAAdG,GAAGH,QAEtEG,GAAGH,OAAO,SAACC,GACHA,EAAIC,cACJpqB,EAAO,uBAIZ,CACHA,KAAMA,EACN9B,QAASA,iDAcrBmlB,EAEAO,EAHAR,EAAkB,SAElBO,EAAiB,SAEf2G,EAAoCnpB,KAAKopB,QAAQppB,KAAKqpB,yBACxDF,IACAlH,EAAUkH,EAAQtqB,KAClBqjB,EAAaiH,EAAQpsB,aAEnBusB,EAAmCtpB,KAAKopB,QAAQppB,KAAKupB,oBACvDD,IACA9G,EAAS8G,EAAOzqB,KAChB4jB,EAAY6G,EAAOvsB,aAEjB4iB,EAA2B3f,KAAK2hB,mBAC/B,CACHM,QAAStC,EAAQsC,SAAWA,EAC5BC,WAAYvC,EAAQuC,YAAcA,EAClCM,OAAQ7C,EAAQ6C,QAAUA,EAC1BC,UAAW9C,EAAQ8C,WAAaA,0DAS7BuF,qDAQAE,+CAQHvC,EAAsB3lB,KAAK2hB,aAAiCgE,YAAc,6BAC1E,kBAAkBtX,KAAKsX,IACwB,EAA3CkC,GAAoB9L,QAAQ4J,KAC5BA,EAAakC,GAAoBprB,KAAKqE,MAAMrE,KAAKsG,SAAW8kB,GAAoBttB,UAE7E,gCAAgC8T,KAAKsX,IACA,EAAxCoC,GAAiBhM,QAAQ4J,KACzBA,EAAaoC,GAAiBtrB,KAAKqE,MAAMrE,KAAKsG,SAAWglB,GAAiBxtB,UAEvE,kBAAkB8T,KAAKsX,KACkB,EAA5CmC,GAAqB/L,QAAQ4J,KAC7BA,EAAamC,GAAqBrrB,KAAKqE,MAAMrE,KAAKsG,SAAW+kB,GAAqBvtB,UAGnForB,8CA0BA3lB,KAAKmoB,QAAQxG,yDASb3hB,KAAKmoB,sDASPC,WAAY,EACVpoB,KAAKooB,wDASLpoB,KAAKooB,0DAmBPtO,YACAsO,WAAY,SACVpoB,KAAKmoB,SACL,6CASgBqB,EAA8BvU,UACjDuU,EAAUC,IACVD,EAAUC,GAAGxU,GAEVA,sDAOyBA,GAC5BA,EAAMwL,YAAclM,GAAYmV,iBAC3BltB,OAAewD,KAAKsoB,sBAGpB9rB,OAAewD,KAAKsoB,oBAAsB,IAF1C9rB,OAAewD,KAAKsoB,oBAAoBtmB,KAAKiT,EAAMqR,aAKF,GAAjD9pB,OAAewD,KAAKsoB,oBAAoB/tB,SACxCiC,OAAewD,KAAKsoB,oBAAoB/tB,OAAS,oCAkBhDivB,sBACLG,uBAC6BntB,OAAeqoB,GAAmBM,2BAA6B,IAC9EyE,KAAK,SAACxE,UAA6BA,IAAYoE,EAAU1H,UAAU,KAC5E7M,EAAuB,IAAI4U,GAAaL,EAAU1H,QAAS0H,EAAUhI,MAAOxhB,KAAK2hB,qBAChFmI,GACF/R,QAAQ/X,KAAK+pB,mBAAmBP,EAAWvU,IAC3CuE,KAAK,SAACwQ,UACHnJ,EAAKoJ,gCAAgCD,GAC9BA,QAGTE,EAA8BlqB,KAAKmqB,cAAcX,eAClDS,gCAAgCC,QAChCE,4BAA4BF,GAC1BlqB,KAAKqqB,iBAAiBH,GAAcI,cACtC9Q,KACG,SAACvE,UAAwC4L,EAAKkJ,mBAAmBP,EAAWvU,IAC5E,SAACA,UAAwC4L,EAAKkJ,mBAAmBP,EAAWvU,6DAUlDA,OAChC8J,EAA4B1jB,SAAS2jB,YAAY,gBACvDD,EAAYE,iBAAiB,cAAc,GAAO,EAAOhK,EAAO,GAAI,GAAIzY,QACxEA,OAAO0iB,cAAcH,6DAjJd/e,KAAKuqB,qBACR5E,WAAY3lB,KAAKwqB,8CCnReC,2HAO7BlW,GAAYmW,8DAQIzV,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,yCAOjE4V,OAqBRC,SApBJ7I,EAAWjiB,KAAK2hB,aAAiCM,QAEnDA,GAAuB,WAAZA,GAAwBzlB,OAAOqsB,IAAMA,IAAMA,GAAGkC,aAAyC,mBAAnBlC,GAAGkC,YAElFlC,GAAGkC,YAAY,CAEPnsB,KAAM,QACNosB,QAAS,SAACC,GACNpK,EAAKqK,aAAaC,YAAY,CAC1B5I,UAAW0I,EAAa1I,UACxBD,SAAU2I,EAAa3I,WAE3BzB,EAAKuK,OAAO,CACRtJ,QAASvN,GAAYmT,kBACrBlG,MAAO,SAMjBsJ,EAAsBtuB,OAAc,qBAChBsuB,EAAmBC,YACzCD,EAAmBC,YAAY,SAACtE,GAC5B5F,EAAKsK,YAAY1E,EAAS4E,IAAK5E,EAAS6E,OAErCT,GAAgBlS,UAAU4S,aAEjC5S,UAAU4S,YAAYC,mBAAmB,SAACC,GACtC5K,EAAKsK,YAAYM,EAASC,OAAOnJ,UAAWkJ,EAASC,OAAOpJ,gDAOxD+I,EAAaC,QACxBJ,aAAaC,YAAY,CAC1B5I,UAAW8I,GAAO,EAClB/I,SAAUgJ,GAAO,SAEhBF,OAAO,CACRtJ,QAASvN,GAAYmT,kBACrBlG,MAAO,oDAQgBmK,GACQ,kBAAxBA,EAAOC,cACXD,EAAOC,eAAkB5rB,KAAK2hB,aAAiCiK,mBAC7DC,cAAcF,EAAOC,2DAuBxBzD,EAAoBnoB,KAAKkrB,kBAC1BW,cAAe7rB,KAAK2hB,aAAiCiK,eAAgB,OACpEE,EAA4D3D,EAAQ4D,iBAC1E5D,EAAQ4D,UAAY,SAACJ,GACjBK,EAAKC,uBAAuBN,GAC5BG,EAAiBnxB,KAAKwtB,EAASwD,2JA2BfnC,UACb,IAAI0C,GAAmB1C,EAAUhI,MAAOxhB,KAAK2hB,8DAS/CsK,uBAAyB,SAACN,mGAvDzBhM,EAA2B3f,KAAK2hB,+EAGlCiK,aAA8C,kBAAzBjM,EAAQiM,cAA6BjM,EAAQiM,2CC7G7BvE,2HAQlC9S,GAAY4X,gDCHiC1B,2BAK5CtC,0CACFA,IACDiE,2BAA6BvL,EAAKuL,2BAA2Bxc,cAC7Dyc,+BAAiCxL,EAAKwL,+BAA+Bzc,kEAQnE2E,GAAY+X,iFAOdC,uBACArB,aAAaa,UAAU,CACxB3J,IAAK5lB,OAAO2iB,SAASkD,qEAQpBkK,uBACArB,aAAaa,UAAU,CACxB3J,IAAK5lB,OAAO2iB,SAASkD,sDAQpB+I,OAAO,CACRtJ,QAASvN,GAAY4X,oBACrB3K,MAAO,2CASL7B,EAAmC3f,KAAK2hB,aAC1ChC,EAAQ6M,kBACRhwB,OAAOwa,iBAAiB,aAAchX,KAAKosB,4BAE3CzM,EAAQ8M,qBACRjwB,OAAOwa,iBAAiB,WAAYhX,KAAKqsB,oEASxCnB,aAAaa,UAAU,CACxB3J,IAAK5lB,OAAO2iB,SAASkD,YAEpBkK,kBACL/vB,OAAOujB,oBAAoB,aAAc/f,KAAKosB,4BAC9C5vB,OAAOujB,oBAAoB,WAAY/f,KAAKqsB,sEASxB7C,UACb,IAAIkD,GAAoBlD,EAAUhI,MAAOxhB,KAAK2hB,0CCtFXgL,2HAOnB1X,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,gHCF7E2X,oCADsCpwB,QACbnB,eACxB,CACHwxB,eAAgBD,EAAI9jB,gBAAgBgkB,cAAgBF,EAAIG,KAAKD,cAAgB,EAC7EE,cAAeJ,EAAI9jB,gBAAgBmkB,aAAeL,EAAIG,KAAKE,aAAe,0DASvE,CACHJ,eAAgB,IAChBG,cAAe,yGCbIE,WACjBC,EAAsC,GACrCD,GAA6C,SAAlCA,EAAQE,QAAQC,eAA0B,KAClDlqB,EAAgBmqB,EAAaC,uBAAuBL,GAC7C,GAAT/pB,GACAgqB,EAAYnrB,KAAKmB,GAErB+pB,EAAUA,EAAQM,qBAElBN,EACAC,EAAYnrB,KAAK,QAEjBmrB,EAAYnrB,KAAK,YAEdmrB,EAAYM,UAAUxd,KAAK,qDAQAid,OAC5BtT,EAAkBsT,EAAQM,iBAC5B5T,UACM8T,EAA2B9T,EAAO8T,SAC/B7rB,EAAY,EAAG4J,EAAYiiB,EAASnzB,OAAQsH,EAAI4J,IAAK5J,KACtDqrB,IAAYQ,EAAS7rB,UACdA,SAIX,2CAYoBqrB,UACvBA,EAGDA,EAAQE,SAAWF,EAAQE,QAAQO,kBAC5BT,EAAQE,QAAQO,oBAChBT,EAAQU,UAAYV,EAAQU,SAASC,kBACrCX,EAAQU,SAASC,oBAEjB,GAPA,gDAgBoBX,OACzBY,EAAyBZ,EAAQa,mCAEnCC,cAAehuB,KAAKiuB,iBAAiBf,GACrCgB,SAAUhB,EAAQ7rB,GAClB8sB,WAAYjB,EAAQkB,aAAa,SAAW,GAC5CC,WAAYnB,EAAQkB,aAAa,SAAW,GAC5CE,gBAAiBpB,EAAQqB,UACzBC,QAAS/xB,KAAKgyB,MAAMX,EAAWY,MAC/BC,QAASlyB,KAAKgyB,MAAMX,EAAWc,KAC/BC,YAAapyB,KAAKgyB,MAAMX,EAAWgB,QAAU5B,EAAQD,YACrD8B,aAActyB,KAAKgyB,MAAMX,EAAWkB,SAAW9B,EAAQJ,aACvDmC,UAAW/B,EAAQ7rB,IAAM6rB,EAAQkB,aAAa,SAAWd,EAAa4B,aAAahC,IAChFiC,GAAcC,+EAUjBpB,cAAe,IACfE,SAAU,KACVC,WAAY,OACZE,WAAY,OACZgB,WAAY,OACZf,gBAAiB,QACjBE,QAAS,KACTG,QAAS,KACTE,YAAa,KACbE,aAAc,KACdE,UAAW,MACRE,GAAcG,sDCxBgBjI,2BA+B7B7F,EAAe7B,EAAmB4P,SAQ5B3vB,mCAPR4hB,EAAO7B,IACR/f,OAAS2vB,EAAU3vB,UACnB2vB,UAAYA,GACHC,cAGND,EAAUC,aAAaC,QACjB7vB,EAASihB,EAAK6O,cAAc7O,EAAKjhB,OAAQ2vB,EAAUC,aAAaC,WAE7D7vB,OAASA,KAEb+vB,kBAAoBvlB,KAAKsc,MAC1B7F,EAAKjhB,OAAOwuB,aAAamB,EAAUC,aAAaC,OAAS,OAIjEF,EAAUC,cAAgBD,EAAUK,uBAC/BC,oBAAoBhP,EAAKjhB,OAAQ2vB,EAAUC,aAAaC,MAE7DF,EAAUO,eACNP,EAAUO,cAAcL,MAAQ5O,EAAKjhB,OAAOmwB,aAAaR,EAAUO,cAAcL,UAC5EO,wBAA0B5lB,KAAKsc,MAChC7F,EAAKjhB,OAAOwuB,aAAamB,EAAUO,cAAcL,OAAS,0DAMpD7vB,EAAqBqwB,OAClCA,SACMrwB,OAEJA,GAAUA,IAAWvE,SAAS0xB,MAAQntB,IAAWvE,SAASyN,iBAAiB,IAC1ElJ,EAAOmwB,aAAaE,UACbrwB,EAEXA,EAASA,EAAOswB,kBAEb,iDAQiBtwB,EAAiB6vB,WAI3BU,EAHRC,EAAWxwB,EAAO8tB,SACf7rB,EAAI,EAAGkO,EAAMqgB,EAAS71B,OAAQsH,EAAIkO,EAAKlO,IAAK,CACpB,IAAzBuuB,EAASvuB,GAAGwuB,WACNF,EAAiB/lB,KAAKsc,MACxB0J,EAASvuB,GAAGusB,aAAaqB,IAAS,SAExBzvB,KAAK2vB,mBAAqB,GAAIQ,QACvCN,oBAAoBO,EAASvuB,GAAI4tB,8CAW1CzvB,KAAKgwB,yBAA2BhwB,KAAKgwB,wBAAwB90B,EACtD8E,KAAKgwB,wBAAwB90B,EAEpC8E,KAAK2vB,mBAAqB3vB,KAAK2vB,kBAAkBz0B,EAC1C8E,KAAK2vB,kBAAkBz0B,EAE3BqZ,GAAYmV,qEAuCd,aAAe,GACb1pB,KAAKswB,mBACLtwB,KAAKuwB,gIAaLjD,GAAakD,+BAChBC,OAAQ,IACRC,OAAQ,oDAhDNC,EAAiC3wB,KAAKuvB,UAAUqB,+BAE/CtD,GAAauD,qBAAqB7wB,KAAKJ,aAC1C6wB,OAAQE,EAAcG,OACdH,EAAcI,SAAW11B,SAASyN,gBAAgBkoB,YAAc31B,SAAS0xB,KAAKiE,YAAc,GACpGN,OAAQC,EAAcM,OACdN,EAAcO,SAAW71B,SAASyN,gBAAgBqoB,WAAa91B,SAAS0xB,KAAKoE,WAAa,8CAQlG3P,EAAQ1S,gDAAoB,UAC5B9O,KAAK2vB,mBAAqB3vB,KAAK2vB,kBAAkBnO,UACnCA,EAAOxhB,KAAK2vB,kBAAkBnO,OAE5CxhB,KAAKgwB,yBAA2BhwB,KAAKgwB,wBAAwBxO,QAC7DA,EAAQxhB,KAAKgwB,wBAAwBxO,OAElCA,8BCvLyCiJ,6FAKf,yDAO1BlW,GAAY6c,gEASdC,oBAAsBrxB,KAAKqxB,oBAAoBzhB,KAAK5P,sFAsBpDA,KAAK2hB,aAAiC2P,WACvC90B,OAAOnB,SAAS2b,iBAAiB,QAAShX,KAAKqxB,qBAAqB,kCASnErxB,KAAK2hB,aAAiC2P,WACvC90B,OAAOnB,SAAS0kB,oBAAoB,QAAS/f,KAAKqxB,qBAAqB,0CAUxDE,EAA+BC,OAC7C,IAAI3vB,EAAY,EAAG4J,EAAY+lB,EAAQj3B,OAAQsH,EAAI4J,IAAK5J,KACrD0vB,EAAgBE,SAASD,EAAQ3vB,WAC1B,SAGR,8CASmB6vB,OACpB9kB,EAAmC5M,KAAKkrB,aAAayG,mBACrDC,EAA2BF,EAAI9xB,OAGjCA,EADAgyB,EAAYpzB,eAAe,2BACjBozB,EAAmCC,wBAEpCD,EAGThlB,GAAUA,EAAOklB,QAAU9xB,KAAK+xB,eAAenyB,EAAOoyB,UAAW,GAAG5wB,OAAOwL,EAAOklB,cAGjF1G,OAAO,CACRtJ,QAASvN,GAAYmV,eACrBlI,MAAO,GACP5hB,OAAQA,EACRgxB,eAAgBc,0CAUAlI,OACdrB,EAAoBnoB,KAAKkrB,oBACxB,IAAI+G,GAAgBzI,EAAUhI,MAAOxhB,KAAK2hB,aAAc,CAC3D/hB,OAAS4pB,EAAgC5pB,OACzCgxB,eAAiBpH,EAAgCoH,eACjDpB,aAAcrH,EAAQ+J,kBACtBtC,oBAAqBzH,EAAQgK,uBAC7BrC,cAAe3H,EAAQwJ,8DAUpB3xB,KAAKoyB,YAAY73B,QAAQ,KACtB83B,EAAsCryB,KAAKoyB,YAAYE,MACzDD,GACAA,EAAWE,8GA/Fb5S,EAA2B3f,KAAK2hB,+EAGlC2P,UAAwC,kBAAtB3R,EAAQ2R,WAA0B3R,EAAQ2R,wCC9D1BkB,2HAOfvd,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,+BCLhCwV,2HAO5ClW,GAAYmW,oEAOQiB,IACvBA,EAAOjJ,UAAYiJ,EAAOhJ,QAAUgJ,EAAO9I,WAAa8I,EAAO/I,cAC1DwI,OAAQ,CACTtJ,QAASvN,GAAYmT,kBACrBlG,MAAO,kDAWT2G,EAAoBnoB,KAAKkrB,aACzBY,EAA4D3D,EAAQ4D,iBAC1E5D,EAAQ4D,UAAY,SAACJ,GACjBG,EAAiBnxB,KAAKwtB,EAASwD,GAC/B9K,EAAKoL,uBAAuBN,2JA2BZnC,UACb,IAAI0C,GAAmB1C,EAAUhI,MAAOxhB,KAAK2hB,8DAS/CsK,uBAAyB,SAACN,iFCxEU8G,2HAOlBxd,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,+BCV7CoS,2BAY9BvF,EAAiBN,EAAe7B,EAAmB8B,0CACrDD,EAAO7B,EAAS8B,IACjBK,QAAUA,wDASR9hB,KAAK8hB,oCCrBqC2I,2HAQ1ClW,GAAYme,4HAyBClJ,UACb,IAAImJ,GAAiBnJ,EAAU1H,QAAS0H,EAAUhI,MAAOxhB,KAAK2hB,aAAc6H,EAAUoJ,uCClCtDC,2HAOhB5d,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,cCfnFtW,EAAQnD,EAAG,QAAS,CAAEmN,QAASvL,KCMxB,SAAX01B,GAAqB1tB,EAAKnK,EAAM83B,GAClC,IAAI1tB,EAAM,GACN2tB,EAAQ1tB,EAAM,WAChB,OAAS2tB,GAAO7tB,MAPV,MAAA,KAOwBA,OAE5B/K,EAAKgL,EAAID,GAAO4tB,EAAQ/3B,EAAKi4B,IAAQD,GAAO7tB,GAC5C2tB,IAAO1tB,EAAI0tB,GAAS14B,GACxBsE,EAAQA,EAAQZ,EAAIY,EAAQO,EAAI8zB,EAAO,SAAU3tB,GChBnD,ICFIsD,GDEUlL,EAAWiL,MAAMC,2BEOgB0e,2HAQhC9S,GAAY4e,+HCJbC,EAAsB,GACnBvxB,EAAY,EAAGA,EAAI,MAAOA,EAC/BuxB,EAAUvxB,IAAMA,EAAI,KAAOlG,SAAS,IAAI03B,OAAO,UAE5CD,sCASeE,EAAeC,OACjC1xB,EAAY0xB,GAAU,EACpBC,EAAgBC,EAAKC,oBAGnB,CAACF,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MACvB2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MAAO,IAC9B2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MAAO,IAC9B2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MAAO,IAC9B2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MAAO,IAC9B2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MACvB2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,MACvB2xB,EAAIF,EAAIzxB,MAAO2xB,EAAIF,EAAIzxB,OAAQoO,KAAK,uCAQvC0jB,EAAiB,IAAIjrB,MAAM,IAC7B4U,EAAY,EACPzb,EAAY,EAAGA,EAAI,KAAMA,EACX,IAAV,EAAJA,KACDyb,EAAoB,WAAhB7gB,KAAKsG,UAEb4wB,EAAK9xB,GAAKyb,MAAY,EAAJzb,IAAa,GAAK,WAGxC8xB,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IACtBF,EAAKG,YAAYD,YC5D5BE,GAAY,iDLSZC,GAAQ,IAAMb,GAAS,IAEvBc,GAAQC,OAAO,IAAMF,GAAQA,GAAQ,KACrCG,GAAQD,OAAOF,GAAQA,GAAQ,MAe/BZ,GAAOJ,GAASI,KAAO,SAAUgB,EAAQC,GAI3C,OAHAD,EAASrhB,OAAOlS,EAAQuzB,IACb,EAAPC,IAAUD,EAASA,EAAOpV,QAAQiV,GAAO,KAClC,EAAPI,IAAUD,EAASA,EAAOpV,QAAQmV,GAAO,KACtCC,GMxBLE,GAAYh3B,EAAWi3B,SACvBC,GN0BcxB,GM1BKI,KAEnBqB,GAAM,cAENC,GAAqC,IAAzBJ,GAAUK,GAAK,OAA0C,KAA3BL,GAAUK,GAAK,QAAiB,SAAkB5V,EAAK6V,GACnG,IAAIR,EAASI,GAAMzhB,OAAOgM,GAAM,GAChC,OAAOuV,GAAUF,EAASQ,IAAU,IAAOH,GAAIlmB,KAAK6lB,GAAU,GAAK,MACjEE,KCTIz1B,EAAQS,EAAIT,EAAQO,GAAKm1B,UAAYD,IAAY,CAAEC,SAAUD,KCDrE,ICFII,GDEY/2B,EAAW42B,sEEyLa,2BACE,oBAEH,IAAIM,WAAW,sBACb,IAAIC,YAAY,SAK5CC,eAAiB,IAAIC,WAAW90B,KAAK+0B,cAAe,EAAG,SACvDC,gBAAkB,IAAIC,YAAYj1B,KAAK+0B,cAAe,EAAG,SACzDG,+DAIAC,kBAAoB,OACpBC,oBAAsB,OACtBC,aAAa9pB,IAAI+pB,EAAIC,eACnBv1B,uCAOM6e,WAITgI,EAHE2O,EAAOx1B,KAAK60B,eACZY,EAAQz1B,KAAKg1B,gBACfU,EAAS11B,KAAKo1B,oBAIbvzB,EAAI,EAAGA,EAAIgd,EAAItkB,OAAQsH,GAAK,EAAG,KAChCglB,EAAOhI,EAAI/L,WAAWjR,IACX,IACP2zB,EAAKE,KAAY7O,OACd,GAAIA,EAAO,KACd2O,EAAKE,KAA2B,KAAd7O,IAAS,GAC3B2O,EAAKE,KAAmB,GAAP7O,EAAc,SAC5B,GAAIA,EAAO,OAAiB,MAAPA,EACxB2O,EAAKE,KAA4B,KAAf7O,IAAS,IAC3B2O,EAAKE,KAAa7O,IAAS,EAAI,GAAQ,IACvC2O,EAAKE,KAAoB,GAAP7O,EAAe,QAC9B,IAEQ,SADXA,EAA0B,MAAjBA,EAAO,QAAoBhI,EAAI/L,aAAajR,GAAK,OAAU,aAE1D,IAAI0e,MAAM,wDAEpBiV,EAAKE,KAA4B,KAAf7O,IAAS,IAC3B2O,EAAKE,KAAa7O,IAAS,GAAK,GAAQ,IACxC2O,EAAKE,KAAa7O,IAAS,EAAI,GAAQ,IACvC2O,EAAKE,KAAoB,GAAP7O,EAAe,IAEvB,IAAV6O,SACKP,mBAAqB,GAC1BG,EAAIK,UAAU31B,KAAKq1B,aAAcI,GACjCC,GAAU,GACVD,EAAM,GAAKA,EAAM,iBAGpBL,oBAAsBM,EACpB11B,4CAGW6e,WAIdhd,EAHE2zB,EAAOx1B,KAAK60B,eACZY,EAAQz1B,KAAKg1B,gBACfU,EAAS11B,KAAKo1B,oBAEd3pB,EAAI,IAEE,KACN5J,EAAIpF,KAAKwE,IAAI4d,EAAItkB,OAASkR,EAAG,GAAKiqB,GAC3B7zB,KACH2zB,EAAKE,KAAY7W,EAAI/L,WAAWrH,QAEhCiqB,EAAS,cAGRP,mBAAqB,GAC1BG,EAAIK,UAAU31B,KAAKq1B,aAAcI,GACjCC,EAAS,cAERN,oBAAsBM,EACpB11B,6CAGY41B,WAIf/zB,EAHE2zB,EAAOx1B,KAAK60B,eACZY,EAAQz1B,KAAKg1B,gBACfU,EAAS11B,KAAKo1B,oBAEd3pB,EAAI,IAEE,KACN5J,EAAIpF,KAAKwE,IAAI20B,EAAMr7B,OAASkR,EAAG,GAAKiqB,GAC7B7zB,KACH2zB,EAAKE,KAAYE,EAAMnqB,QAEvBiqB,EAAS,cAGRP,mBAAqB,GAC1BG,EAAIK,UAAU31B,KAAKq1B,aAAcI,GACjCC,EAAS,cAERN,oBAAsBM,EACpB11B,4CAKD4S,EADO5S,KACEq1B,mBAER,CACHQ,OAAQhjB,OAAOijB,aAAah7B,MAAM,KAJzBkF,KAIoC60B,gBAC7CkB,OALS/1B,KAKIo1B,oBACb76B,OANSyF,KAMIm1B,kBACbvO,MAAO,CAAChU,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,sCAIpBgU,OAIR/kB,EAHEyxB,EAAM1M,EAAMiP,OACZtd,EAAIqO,EAAMA,MACVhU,EAAI5S,KAAKq1B,sBAGVF,kBAAoBvO,EAAMrsB,YAC1B66B,oBAAsBxO,EAAMmP,OACjCnjB,EAAE,GAAK2F,EAAE,GACT3F,EAAE,GAAK2F,EAAE,GACT3F,EAAE,GAAK2F,EAAE,GACT3F,EAAE,GAAK2F,EAAE,GAEJ1W,EAAI,EAAGA,EAAIyxB,EAAI/4B,OAAQsH,GAAK,OACxBgzB,eAAehzB,GAAKyxB,EAAIxgB,WAAWjR,sCASxCm0B,EALGC,oCACDP,EAAS11B,KAAKo1B,oBACdI,EAAOx1B,KAAK60B,eACZY,EAAQz1B,KAAKg1B,gBACbnzB,EAAoB,GAAf6zB,GAAU,WAGhBP,mBAAqBO,EAE1BF,EAAKE,GAAU,IACfF,EAAKE,EAAS,GAAKF,EAAKE,EAAS,GAAKF,EAAKE,EAAS,GAAK,EACzDD,EAAMlqB,IAAI+pB,EAAIY,iBAAiBC,SAASt0B,GAAIA,GAE/B,GAAT6zB,IACAJ,EAAIK,UAAU31B,KAAKq1B,aAAcI,GACjCA,EAAMlqB,IAAI+pB,EAAIY,oBAKlBF,EAAuC,EAAzBh2B,KAAKm1B,oBACA,WACfM,EAAM,IAAMO,MACT,KACGI,EAAUJ,EAAYr6B,SAAS,IAAI06B,MAAM,qBAC/B,OAAZD,aAIEE,EAAK9B,GAAS4B,EAAQ,GAAI,IAC1BG,EAAK/B,GAAS4B,EAAQ,GAAI,KAAO,EAEvCX,EAAM,IAAMa,EACZb,EAAM,IAAMc,SAGhBjB,EAAIK,UAAU31B,KAAKq1B,aAAcI,GAE1BQ,EAAMj2B,KAAKq1B,aAAeC,EAAIkB,KAAKx2B,KAAKq1B,gDA7W7BxW,SAAaoX,2CACxBj2B,KAAKy2B,cACPvB,QACAwB,UAAU7X,GACV8X,IAAIV,wCAGcpX,SAAaoX,2CAC7Bj2B,KAAKy2B,cACPvB,QACA0B,eAAe/X,GACf8X,IAAIV,gCAWO1d,WAGZvI,EACAujB,EACA9nB,EAJEorB,EAAKvB,EAAIwB,SACTC,EAAKzB,EAAI0B,OAMVn1B,EAAI,EAAGA,EAAI,EAAGA,GAAK,MACpB0xB,EAAa,EAAJ1xB,EACTmO,EAAIuI,EAAE1W,GACD4J,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACpBsrB,EAAY,EAATxD,EAAa9nB,GAAKorB,EAAG5wB,OAAW,GAAJ+J,GAC/BA,KAAO,EACP+mB,EAAY,EAATxD,EAAa9nB,GAAKorB,EAAG5wB,OAAW,GAAJ+J,GAC/BA,KAAO,SAGR+mB,EAAG9mB,KAAK,sCAGMsI,EAA2B5M,OAC5CjR,EAAI6d,EAAE,GACN3d,EAAI2d,EAAE,GACN1d,EAAI0d,EAAE,GACN0e,EAAI1e,EAAE,GASV3d,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,GAAKD,EAAIq8B,GAAKtrB,EAAE,GAAK,UAAY,IACjC,EAAIjR,IAAM,IAAME,EAAI,GACpBA,GAAKF,EAAIG,GAAK8Q,EAAE,GAAK,UAAY,IACjC,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,GAAKu8B,EAAIr8B,GAAK+Q,EAAE,GAAK,UAAY,IACjC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,GAAKp8B,EAAIH,GAAKiR,EAAE,GAAK,WAAa,IAClC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,GAAKD,EAAIq8B,GAAKtrB,EAAE,GAAK,UAAY,IACjC,EAAIjR,IAAM,IAAME,EAAI,GACpBA,GAAKF,EAAIG,GAAK8Q,EAAE,GAAK,WAAa,IAClC,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,GAAKu8B,EAAIr8B,GAAK+Q,EAAE,GAAK,WAAa,IAClC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,GAAKp8B,EAAIH,GAAKiR,EAAE,GAAK,SAAW,IAChC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,GAAKD,EAAIq8B,GAAKtrB,EAAE,GAAK,WAAa,IAClC,EAAIjR,IAAM,IAAME,EAAI,GACpBA,GAAKF,EAAIG,GAAK8Q,EAAE,GAAK,WAAa,IAClC,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,GAAKu8B,EAAIr8B,GAAK+Q,EAAE,IAAM,MAAQ,IAC9B,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,GAAKp8B,EAAIH,GAAKiR,EAAE,IAAM,WAAa,IACnC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,GAAKD,EAAIq8B,GAAKtrB,EAAE,IAAM,WAAa,IACnC,EAAIjR,IAAM,IAAME,EAAI,GACpBA,GAAKF,EAAIG,GAAK8Q,EAAE,IAAM,SAAW,IACjC,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,GAAKu8B,EAAIr8B,GAAK+Q,EAAE,IAAM,WAAa,IACnC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,GAAKp8B,EAAIH,GAAKiR,EAAE,IAAM,WAAa,IACnC,GAAK/Q,IAAM,IAAMC,EAAI,EAS/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIq8B,EAAIp8B,GAAKo8B,GAAKtrB,EAAE,GAAK,UAAY,IACjC,EAAIjR,IAAM,IAAME,EAAI,GACpBC,EAAID,GAAKC,GAAK8Q,EAAE,GAAK,WAAa,IAClC,EAAIsrB,IAAM,IAAMv8B,EAAI,GACpBE,EAAIF,GAAKE,GAAK+Q,EAAE,IAAM,UAAY,IAClC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBv8B,EAAIu8B,GAAKv8B,GAAKiR,EAAE,GAAK,UAAY,IACjC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIq8B,EAAIp8B,GAAKo8B,GAAKtrB,EAAE,GAAK,UAAY,IACjC,EAAIjR,IAAM,IAAME,EAAI,GACpBC,EAAID,GAAKC,GAAK8Q,EAAE,IAAM,SAAW,IACjC,EAAIsrB,IAAM,IAAMv8B,EAAI,GACpBE,EAAIF,GAAKE,GAAK+Q,EAAE,IAAM,UAAY,IAClC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBv8B,EAAIu8B,GAAKv8B,GAAKiR,EAAE,GAAK,UAAY,IACjC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIq8B,EAAIp8B,GAAKo8B,GAAKtrB,EAAE,GAAK,UAAY,IACjC,EAAIjR,IAAM,IAAME,EAAI,GACpBC,EAAID,GAAKC,GAAK8Q,EAAE,IAAM,WAAa,IACnC,EAAIsrB,IAAM,IAAMv8B,EAAI,GACpBE,EAAIF,GAAKE,GAAK+Q,EAAE,GAAK,UAAY,IACjC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBv8B,EAAIu8B,GAAKv8B,GAAKiR,EAAE,GAAK,WAAa,IAClC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIq8B,EAAIp8B,GAAKo8B,GAAKtrB,EAAE,IAAM,WAAa,IACnC,EAAIjR,IAAM,IAAME,EAAI,GACpBC,EAAID,GAAKC,GAAK8Q,EAAE,GAAK,SAAW,IAChC,EAAIsrB,IAAM,IAAMv8B,EAAI,GACpBE,EAAIF,GAAKE,GAAK+Q,EAAE,GAAK,WAAa,IAClC,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBv8B,EAAIu8B,GAAKv8B,GAAKiR,EAAE,IAAM,WAAa,IACnC,GAAK/Q,IAAM,IAAMC,EAAI,EAS/BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,EAAIo8B,GAAKtrB,EAAE,GAAK,OAAS,IACzB,EAAIjR,IAAM,IAAME,EAAI,GACpBA,EAAIC,GAAK8Q,EAAE,GAAK,WAAa,IAC7B,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,EAAIE,GAAK+Q,EAAE,IAAM,WAAa,IAC9B,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,EAAIv8B,GAAKiR,EAAE,IAAM,SAAW,IAC5B,GAAK/Q,IAAM,GAAKC,EAAI,EAQ9BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,EAAIo8B,GAAKtrB,EAAE,GAAK,WAAa,IAC7B,EAAIjR,IAAM,IAAME,EAAI,GACpBA,EAAIC,GAAK8Q,EAAE,GAAK,WAAa,IAC7B,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,EAAIE,GAAK+Q,EAAE,GAAK,UAAY,IAC5B,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,EAAIv8B,GAAKiR,EAAE,IAAM,WAAa,IAC9B,GAAK/Q,IAAM,GAAKC,EAAI,EAQ9BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,EAAIo8B,GAAKtrB,EAAE,IAAM,UAAY,IAC7B,EAAIjR,IAAM,IAAME,EAAI,GACpBA,EAAIC,GAAK8Q,EAAE,GAAK,UAAY,IAC5B,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,EAAIE,GAAK+Q,EAAE,GAAK,UAAY,IAC5B,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,EAAIv8B,GAAKiR,EAAE,GAAK,SAAW,IAC3B,GAAK/Q,IAAM,GAAKC,EAAI,EAQ9BD,IADAA,KADAC,IADAA,KADAo8B,IADAA,KADAv8B,IADAA,IAAME,EAAIC,EAAIo8B,GAAKtrB,EAAE,GAAK,UAAY,IAC5B,EAAIjR,IAAM,IAAME,EAAI,GACpBA,EAAIC,GAAK8Q,EAAE,IAAM,UAAY,IAC7B,GAAKsrB,IAAM,IAAMv8B,EAAI,GACrBA,EAAIE,GAAK+Q,EAAE,IAAM,UAAY,IAC7B,GAAK9Q,IAAM,IAAMo8B,EAAI,GACrBA,EAAIv8B,GAAKiR,EAAE,GAAK,UAAY,IAC5B,GAAK/Q,IAAM,GAAKC,EAAI,EAS9BD,IADAA,KAHAq8B,IADAA,IAAMr8B,IADNF,IADAA,IAAMG,GAAKD,GAAKq8B,IAAMtrB,EAAE,GAAK,UAAY,IAC/B,EAAIjR,IAAM,IAAME,EAAI,IACdC,IAAM8Q,EAAE,GAAK,WAAa,IAChC,GAAKsrB,IAAM,IAAMv8B,EAAI,KAE/BG,IADAA,IAAMH,GAAKu8B,GAAKr8B,IAAM+Q,EAAE,IAAM,WAAa,IACjC,GAAK9Q,IAAM,IAAMo8B,EAAI,IACfv8B,IAAMiR,EAAE,GAAK,SAAW,IAC9B,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KAHAq8B,IADAA,IAAMr8B,IADNF,IADAA,IAAMG,GAAKD,GAAKq8B,IAAMtrB,EAAE,IAAM,WAAa,IACjC,EAAIjR,IAAM,IAAME,EAAI,IACdC,IAAM8Q,EAAE,GAAK,WAAa,IAChC,GAAKsrB,IAAM,IAAMv8B,EAAI,KAE/BG,IADAA,IAAMH,GAAKu8B,GAAKr8B,IAAM+Q,EAAE,IAAM,QAAU,IAC9B,GAAK9Q,IAAM,IAAMo8B,EAAI,IACfv8B,IAAMiR,EAAE,GAAK,WAAa,IAChC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KAHAq8B,IADAA,IAAMr8B,IADNF,IADAA,IAAMG,GAAKD,GAAKq8B,IAAMtrB,EAAE,GAAK,WAAa,IAChC,EAAIjR,IAAM,IAAME,EAAI,IACdC,IAAM8Q,EAAE,IAAM,SAAW,IAC/B,GAAKsrB,IAAM,IAAMv8B,EAAI,KAE/BG,IADAA,IAAMH,GAAKu8B,GAAKr8B,IAAM+Q,EAAE,GAAK,WAAa,IAChC,GAAK9Q,IAAM,IAAMo8B,EAAI,IACfv8B,IAAMiR,EAAE,IAAM,WAAa,IACjC,GAAK/Q,IAAM,IAAMC,EAAI,EAQ/BD,IADAA,KAHAq8B,IADAA,IAAMr8B,IADNF,IADAA,IAAMG,GAAKD,GAAKq8B,IAAMtrB,EAAE,GAAK,UAAY,IAC/B,EAAIjR,IAAM,IAAME,EAAI,IACdC,IAAM8Q,EAAE,IAAM,WAAa,IACjC,GAAKsrB,IAAM,IAAMv8B,EAAI,KAE/BG,IADAA,IAAMH,GAAKu8B,GAAKr8B,IAAM+Q,EAAE,GAAK,UAAY,IAC/B,GAAK9Q,IAAM,IAAMo8B,EAAI,IACfv8B,IAAMiR,EAAE,GAAK,UAAY,IAC/B,GAAK/Q,IAAM,IAAMC,EAAI,EAE/B0d,EAAE,GAAK7d,EAAI6d,EAAE,GAAK,EAClBA,EAAE,GAAK3d,EAAI2d,EAAE,GAAK,EAClBA,EAAE,GAAK1d,EAAI0d,EAAE,GAAK,EAClBA,EAAE,GAAK0e,EAAI1e,EAAE,GAAK,WA1KP+c,iBAAgB,IAAIX,WAAW,CAAC,YAAa,WAAY,WAAY,YACrEW,oBAAmB,IAAIX,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAChFW,YAAW,mBACXA,UAAmB,GAGnBA,iBAAgB,IAAIA,0BCFmB7K,0FAIzB,CAAC,cAAe,YACzC,cAAe,iBAAkB,aAAc,WAAY,mEAQpDlW,GAAY2iB,mEASdC,YAAcn3B,KAAKm3B,YAAYvnB,KAAK5P,WACpCo3B,mBAAqBp3B,KAAKo3B,mBAAmBxnB,KAAK5P,MACvDxD,OAAOwa,iBAAiB,QAAShX,KAAKm3B,aACtC36B,OAAOwa,iBAAiB,qBAAsBhX,KAAKo3B,yBAC9CC,0HAQmBr3B,KAAKkrB,aAAaoM,iBAAmB,IAC7CvqB,QAAQ,SAACkI,GACrB+W,EAAKmL,YAAYliB,EAAO,qBAEvBiW,aAAaoM,gBAAkB,sHAqC9BhP,EAAsB9rB,OAAewD,KAAKsoB,qBAAuB,UACvC,GAA5BA,EAAmB/tB,SAClBiC,OAAewD,KAAKsoB,oBAAoB/tB,OAAS,IAE/C+tB,uCAOUiP,OACbz1B,EAAiBy1B,GAAW,oBAC3BC,SAASzqB,QAAQ,SAACnO,GACf24B,IAAsC,IAA3BA,EAAQxb,QAAQnd,KAC3BkD,EAASlD,KAGVkD,6CAQmB21B,SAA4BC,mCAAmB,YACnEziB,EAAQwiB,EAAsBnb,QAAU,OAE1CrH,EAAMsiB,UAAwD,IAA7CtiB,EAAMsiB,QAAQxb,QAAQ,uBAIrC4D,EAAmC3f,KAAK2hB,gBAC1ChC,EAAQgY,eAAgB,KAEpBC,GAAoB,KACxBjY,EAAQgY,eAAe5qB,QAAQ,SAAApB,OACrB4rB,EAAU5rB,EAAE4rB,QACdA,aAAmBvD,QAAUuD,EAAQlpB,KAAK4G,EAAMsiB,WAChDK,GAAW,KAGfA,aAIFh5B,EAAOoB,KAAK63B,aAAa5iB,EAAMsiB,cAChCnM,OAAO,CACRtJ,QAASvN,GAAY4e,kBACrB3R,MAAO,CACHsW,MAAO7iB,EAAM8iB,MACbR,QAAS,yBAA2BtiB,EAAMsiB,QAC1CQ,MAAO9iB,EAAM8iB,OAAS,GACtBC,WAAYh4B,KAAKi4B,oBACjBxE,KAAMA,GAAKyE,GACXt5B,KAAMA,EACNu5B,QAAS7C,GAAI8C,QAAQx5B,GACrB84B,SAAUA,0CAQAziB,SAAmByiB,mCAAmB,gBAEpDziB,EAAMsiB,UAAwD,IAA7CtiB,EAAMsiB,QAAQxb,QAAQ,uBAIrC4D,EAAmC3f,KAAK2hB,gBAC1ChC,EAAQgY,eAAgB,KAEpBC,GAAoB,KACxBjY,EAAQgY,eAAe5qB,QAAQ,SAAApB,OACrB4rB,EAAU5rB,EAAE4rB,QACdA,aAAmBvD,QAAUuD,EAAQlpB,KAAK4G,EAAMsiB,WAChDK,GAAW,KAGfA,aAIFh5B,EAAOoB,KAAK63B,aAAa5iB,EAAMsiB,cAChCnM,OAAO,CACRtJ,QAASvN,GAAY4e,kBACrB3R,MAAO,CACHsW,MAAO7iB,EAAMsH,MAAQtH,EAAMsH,MAAMwb,MAAQ9iB,EAAMsiB,QAC/Cc,KAAMpjB,EAAMqjB,OACZlW,IAAKnN,EAAMsjB,SACXC,IAAKvjB,EAAMwjB,MACXlB,QAAStiB,EAAMsiB,QACfQ,MAAO9iB,EAAMsH,OAAStH,EAAMsH,MAAMwb,OAAe,GACjDC,WAAYh4B,KAAKi4B,oBACjBxE,KAAMA,GAAKyE,GACXt5B,KAAMA,EACNu5B,QAAS7C,GAAI8C,QAAQx5B,GACrB84B,SAAUA,4CAWElO,UACb,IAAIkP,GAAkBlP,EAAUhI,MAAOxhB,KAAK2hB,yDASnDnlB,OAAOujB,oBAAoB,QAAS/f,KAAKm3B,aACzC36B,OAAOujB,oBAAoB,qBAAsB/f,KAAKo3B,kHAtJhDzX,EAAmC3f,KAAK2hB,+EAG1CgX,UAAwC,kBAAtBhZ,EAAQgZ,WAA0BhZ,EAAQgZ,UAC5DhB,eAAgBiB,GAAcjZ,EAAQgY,gBAAkBhY,EAAQgY,eAAiB,iCCzD7CkB,2HAOjB5jB,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,+BCqE3CoS,2HAQjC9S,GAAYukB,yEAgIZ94B,KAAK+4B,cACL/4B,KAAKg5B,yLAaLh5B,KAAKi5B,yBACLj5B,KAAKk5B,mCACLl5B,KAAKm5B,yFASL,CACHC,SAAU,IACVC,cAAe,IACfC,UAAW,KACXla,SAAU,MACVma,KAAM,MACNC,KAAM,MACNlU,KAAM,MACNmU,OAAQ,KACRC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZjS,aAAc,IACdkS,OAAQ,wEAUL,CACHC,YAAa,QACbC,YAAa,QACbC,aAAc,OACdC,cAAe,UACfC,kBAAmB,SACnBC,qBAAsB,QACtBC,cAAe,OACfC,qBAAsB,QACtBC,eAAgB,OAChBC,yBAA0B,QAC1BC,yBAA0B,QAC1BC,aAAc,OACdC,aAAc,SACdC,aAAc,SACdC,qBAAsB,QACtBC,gBAAiB,OACjBC,uBAAwB,UACxBC,cAAe,wEAUZ,CACHC,eAAgB,SAChBC,gBAAiB,UACjBC,gBAAiB,yDAtMf5+B,EAAcE,cACbF,EAAOmiB,aAAeniB,EAAO6+B,mBAAqB7+B,EAAO8+B,eAAiB9+B,EAAO++B,6DASlF3c,EAA4B1e,KAAKs7B,kBAAkB5c,OACnD6c,EAAK9c,YAAY+c,iBAAiB,eAAe,GACjDC,EAAMhd,YAAY+c,iBAAiB,0BAA0B,GAC7DE,EAAMjd,YAAY+c,iBAAiB,OAAO,SACzC,CACHG,iBAAkBjd,EAAOkd,WAAald,EAAOmd,gBAC7C/B,YAAapb,EAAOod,gBAAkBpd,EAAOqd,kBAC7ChC,YAAarb,EAAOsd,WAAatd,EAAOud,aACxCjC,aAActb,EAAOwd,cAAgBxd,EAAOyd,aAC5ClC,cAAevb,EAAO0d,YAAc1d,EAAOwd,cAC3ChC,kBAAmBxb,EAAO2d,eAAiB3d,EAAO0d,YAClDjC,qBAAsBzb,EAAO4d,eAAiB5d,EAAO6d,yBACrDnC,cAAe1b,EAAOwd,cAAgBxd,EAAOqd,kBAC7C1B,qBAAsB3b,EAAO0d,YAAc1d,EAAOmd,gBAClDvB,eAAgBiB,GAAMA,EAAGiB,UACzBjC,yBAA0BkB,GAAOA,EAAIe,UACrChC,yBAA0BkB,GAAOA,EAAIc,UACrC/B,aAAc/b,EAAO2d,eAAiB3d,EAAOmd,gBAC7CnB,aAAchc,EAAO6d,yBAA2B7d,EAAOmd,gBACvDlB,aAAcjc,EAAO4d,eAAiB5d,EAAOmd,gBAC7CjB,qBAAsBlc,EAAO6d,yBAA2B7d,EAAOmd,gBAC/DhB,gBAAiBnc,EAAO+d,YAAc/d,EAAOmd,gBAC7Cf,uBAAwB96B,KAAK86B,uBAC7BC,cAAerc,EAAOC,aAAeD,EAAOmd,+DAS1Ca,EAAuB18B,KAAKs7B,kBAA0BoB,QAAU,SAC/D,CACH1B,eAAgB0B,EAAO1B,gBAA4B,EACnDC,gBAAiByB,EAAOzB,iBAA6B,EACrDC,gBAAiBwB,EAAOxB,iBAA6B,sDAWjDyB,KAFJ38B,KAAKs7B,mBAAqBt7B,KAAKs7B,kBAAkBsB,aACb58B,KAAKs7B,kBAAkBsB,aAEnDhT,KAAK,SAACiT,OACJC,EAAyBD,EAAoCC,uBAC/DA,GAAmC,WAAlBA,IAA8B,2BAA2BzuB,KAAKwuB,EAAMh+B,SACrF89B,EAA0BE,GACnB,KAIXF,UACOlgC,KAAKgyB,MAAMkO,EAAwBI,iBAG3C,oDAQH/8B,KAAKs7B,2BAEEt7B,KAAKg9B,mBACLh9B,KAAKi9B,mBAGT,4CAQD5hC,EAAqBmB,OAAOnB,UAAY,CAACyN,gBAAiB,IAC1D6P,EAAuBnc,OAAOmc,WAAa,GAC3CwG,EAAqB3iB,OAAO2iB,UAAY,GACxC+d,EAAiB1gC,OAAO0gC,QAAU,SACjC,CACH9D,SAAU/9B,EAAS+9B,SACnBC,cAAe1gB,EAAU0gB,cACzBC,UAAYt5B,KAAK2hB,aAAqB2X,WAAaj+B,EAAS8hC,MAC5D/d,SAAUD,EAASC,SACnBma,KAAMpa,EAASoa,KACfC,KAAMra,EAASie,SACf9X,KAAMnG,EAASmG,KACfmU,OAAQta,EAASsa,OACjBE,YAAat+B,EAASyN,gBAAgBu0B,YACtC3D,aAAcr+B,EAASyN,gBAAgBw0B,aACvC1D,WAAYsD,EAAOtD,qBAAiBsD,EAAOtD,mBAAoB,GAC/DjS,aAAe3nB,KAAK2hB,aAAiCgG,cAAgB,aCtM3E4V,GACI,OADJA,GAEQ,WAFRA,GAGM,4BAG+C9S,2BAW3CtC,0CACFA,cANoB,CAAC9sB,SAAS+9B,YAO/BoE,wBAA0B3c,EAAK2c,wBAAwB5tB,cACvD6tB,4BAA8B5c,EAAK4c,4BAA4B7tB,cAC/D8tB,UAAU17B,KAAKmd,SAASkD,4DAQtB9N,GAAYopB,uDAmBJ9D,QACV3O,aAAaa,UAAU,CACxB3J,IAAK5lB,OAAO2iB,SAASkD,YAEpB+I,OAAO,CACRtJ,QAASvN,GAAYukB,mBACrBtX,MAAO,CAEH4X,SAAkC,EAAxBp5B,KAAK09B,UAAUnjC,OAAayF,KAAK09B,UAAU19B,KAAK09B,UAAUnjC,OAAS,GAAKyF,KAAK09B,UAAU,GACjG7D,OAAAA,4DASH+D,SAASL,+DAOTK,SAASL,0CAQR5d,EAAmC3f,KAAK2hB,aAC1ChC,EAAQke,wBACHD,SAASL,IACV5d,EAAQ6M,kBACRhwB,OAAOwa,iBAAiB,aAAchX,KAAKw9B,yBAE3C7d,EAAQ8M,qBACRjwB,OAAOwa,iBAAiB,WAAYhX,KAAKy9B,kEAU1Cz9B,KAAK09B,UAAUnjC,aACbmjC,UAAUpL,MAEnB91B,OAAOujB,oBAAoB,aAAc/f,KAAKw9B,yBAC9ChhC,OAAOujB,oBAAoB,WAAY/f,KAAKy9B,mEASxBjU,UACb,IAAIsU,GAAmBtU,EAAUhI,MAAOxhB,KAAK2hB,4DA1E9ChC,EAAmC3f,KAAK2hB,+EAG1Ckc,iBAAsD,kBAA7Ble,EAAQke,kBAAiCle,EAAQke,+CC7CrCE,2HAOlB9oB,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,+BCL9CoS,2HAQ9B9S,GAAYypB,2CCV6BvT,2HAOzClW,GAAY0pB,2HAyBCzU,UACb,IAAI0U,GAAgB1U,EAAUhI,MAAOxhB,KAAK2hB,0CClCXwc,2HAOflpB,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,+BCVxCoS,qMAUvCsT,aAAc,oDAUXpmB,GAAY6pB,iDClBmC3T,2FAI/B,+DAQjBnuB,EAAcE,cACbF,EAAOmiB,aAAeniB,EAAO6+B,mBAAqB7+B,EAAO8+B,eAAiB9+B,EAAO++B,wDAOlF5c,EAA2Bze,KAAKs7B,uBAClC7c,GAAeA,EAAYme,WAAY,KACjCtqB,EAAiB9V,OAAOiiB,YAAYme,cAAgB,UACrC,IAAjBtqB,EAAQ/X,SACR+X,EAAQ/X,OAAS,KAEd+X,QAEA,gDAKLmM,EAA2Bze,KAAKs7B,2BAClC7c,GAAeA,EAAYme,YACJpgC,OAAOiiB,YAAYme,cAAgB,IAC3CriC,OAER,2CAUP+X,EACA+rB,EACA3f,EAPF1e,KAAKs+B,WAGTjjC,SAAS0kB,oBAAoB,mBAAoB/f,KAAKu+B,oBAAoB,GAEpEjsB,EAAUtS,KAAK48B,aACfyB,EAAcr+B,KAAKw+B,iBACnB9f,EAA4BD,YAAYC,YACzC0M,OAAO,CACRtJ,QAASvN,GAAY6pB,qBACrB5c,MAAO,CACHlP,QAASA,EACT+rB,YAAaA,EACb1D,aAAcjc,EAAO4d,eAAiB5d,EAAOmd,wBAGhDyC,UAAW,oDAIV7f,EAA2Bze,KAAKs7B,oBACL,WAA7BjgC,SAASojC,iBACXhgB,GAAeA,EAAYigB,KAAK,UAED,YAA7BrjC,SAASojC,kBACXhgB,GAAeA,EAAYigB,KAAK,WAChCrjC,SAAS0kB,oBAAoB,mBAAoB/f,KAAKu+B,oBAAoB,6CASnEhqB,GAAYoqB,0EAQhBJ,mBAAqBv+B,KAAKu+B,mBAAmB3uB,KAAK5P,MACvD3E,SAAS2b,iBAAiB,mBAAoBhX,KAAKu+B,oBAAoB,OAEjE9f,EAA2Bze,KAAKs7B,4BAE9BsD,EAA2C,IAAIC,oBAAoB,WACvEpgB,GAAeA,EAAYigB,KAAK,8BAElCE,EAAoBllB,QAAQ,CAAEolB,WAAY,CAAC,+BAE1C,UAAW,SAAS/xB,QAAQ,SAACnO,GAC5BoY,iBAAiBpY,EAAM,WACrBotB,EAAK+S,aACDH,GAAuBA,EAAoBI,YAC7CJ,EAAoBI,cAErB,CAAEC,MAAM,EAAMC,SAAS,MAG5B,MAAOhkC,QAEF6jC,oFAkBevV,UACb,IAAI2V,GAAsB3V,EAAUhI,MAAOxhB,KAAK2hB,0CC9HXyd,2HAOrBnqB,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M,+BCpBzCoS,2HAQnC9S,GAAY8qB,6BCKrBC,GAAuC,CACzC1J,MAAO,4BAEgDnL,2BAa3CtC,0CACFA,gBAZoB,eACI,CAC9BoX,KAAM,GACNC,GAAI,EACJC,GAAI,EACJC,MAAO,KAQFC,oBAAsB9e,EAAK8e,oBAAoB/vB,cAC/CgwB,iBAAmB/e,EAAK+e,iBAAiBhwB,kEASvC2E,GAAYsrB,yDAQnBxkC,SAAS0xB,KAAK/V,iBAAiB,QAAShX,KAAK2/B,qBAC7CtkC,SAAS0xB,KAAK/V,iBAAiB,SAAUhX,KAAK4/B,sDAQzCE,wBAAqBrlC,EAC1BY,SAAS0xB,KAAKhN,oBAAoB,QAAS/f,KAAK2/B,qBAChDtkC,SAAS0xB,KAAKhN,oBAAoB,SAAU/f,KAAK4/B,8DAOzB3qB,OAClBrV,EAA2BqV,EAAMrV,QAElCA,EAAOwtB,SAAWkS,GAAiB1/B,EAAOwtB,QAAQC,gBAClDztB,EAAOguB,UAAY0R,GAAiB1/B,EAAOguB,SAASP,kBAC9CztB,EAAOwuB,aAAa,SAA4C,SAAhCxuB,EAAOwuB,aAAa,UAEnDpuB,KAAK8/B,qBAAuBlgC,IAExBqV,EAAM8qB,WAAiC,0BAApB9qB,EAAM8qB,WAElBngC,EAAO7D,OAASiE,KAAKggC,WAAWT,KAAKhlC,OAASqF,EAAO7D,MAAMxB,cAD7DylC,WAAWP,UAIfO,WAAWT,KAAO3/B,EAAO7D,OAAS,UAGlCikC,WAAa,CACdT,KAAM3/B,EAAO7D,OAAS,GACtByjC,GAAI,EACJC,GAAI,EACJC,MAAO,QAENO,aAAc,IAAInvB,MAAOkR,gBARzB8d,mBAAqBlgC,6CAmBjBqV,OACfrV,EAA2BqV,EAAMrV,QAElCA,EAAOwtB,SAAWkS,GAAiB1/B,EAAOwtB,QAAQC,gBAClDztB,EAAOguB,UAAY0R,GAAiB1/B,EAAOguB,SAASP,kBAC9CztB,EAAOwuB,aAAa,SAA4C,SAAhCxuB,EAAOwuB,aAAa,eAClD4R,WAAWT,KAAO3/B,EAAO7D,OAAS,QAClCikC,WAAWR,IAAK,IAAI1uB,MAAOkR,UAAYhiB,KAAKigC,iBAC5CD,WAAWN,MAAQ1/B,KAAKggC,WAAWT,KAAKhlC,YACxC6wB,OAAO,CACRtJ,QAASvN,GAAY8qB,oBACrB7d,MAAOxhB,KAAKggC,oBAInBF,wBAAqBrlC,wCASN+uB,UACb,IAAI0W,GAAqB1W,EAAUhI,MAAOxhB,KAAK2hB,6BC7G/C,CACXwe,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,mBCvB6CC,2HAOlB3rB,UAChB0V,GAAmBC,mBAAmB5qB,KAAK2hB,aAAiC1M"}