{ "version": 3, "file": "tcc.min.js", "sources": [ "webpack://[name]/webpack/universalModuleDefinition", "webpack://[name]/webpack/bootstrap", "webpack://[name]/./node_modules/@exp/exp-utils/helper/logger.js", "webpack://[name]/./packages/shared/src/helpers/config.js", "webpack://[name]/./node_modules/@exp/exp-utils/schema/schemaHandler.js", "webpack://[name]/./node_modules/@exp/exp-utils/helper/property.js", "webpack://[name]/./node_modules/@exp/exp-utils/helper/auth.js", "webpack://[name]/./packages/shared/src/traffic/eventPageProperties.js", "webpack://[name]/./packages/shared/src/traffic/trackingValues.js", "webpack://[name]/./packages/shared/src/helpers/tdata.js", "webpack://[name]/./packages/tcc/src/helpers/visitHelperTcc.js", "webpack://[name]/./node_modules/@exp/exp-utils/helper/config.js", "webpack://[name]/./node_modules/@exp/exp-utils/helper/dataLayer.js", "webpack://[name]/./packages/shared/src/experiments/experimentSchemaTransforms.js", "webpack://[name]/./packages/tcc/src/experiments/experimentTracking.js", "webpack://[name]/./packages/tcc/src/index.js", "webpack://[name]/./node_modules/@exp/exp-utils/schema/schemaHelper.js", "webpack://[name]/./packages/shared/src/helpers/load.js", "webpack://[name]/./node_modules/@exp/exp-utils/helper/load.js", "webpack://[name]/./node_modules/uuid/v5.js", "webpack://[name]/./node_modules/uuid/lib/v35.js", "webpack://[name]/./node_modules/uuid/lib/bytesToUuid.js", "webpack://[name]/./node_modules/uuid/lib/sha1-browser.js", "webpack://[name]/./packages/shared/src/traffic/trafficMethods.js", "webpack://[name]/./packages/tcc/src/traffic/methods/cmdLogPageRequest.js", "webpack://[name]/./packages/tcc/src/traffic/methods/cmdLogPageEvent.js", "webpack://[name]/./packages/tcc/src/traffic/methods/cmdLog.js", "webpack://[name]/./packages/tcc/src/traffic/methods/cmdGetTrackingValues.js", "webpack://[name]/./packages/tcc/src/traffic/methods/cmdLogPagePerf.js", "webpack://[name]/./packages/tcc/src/traffic/methods/cmdLogImpression.js", "webpack://[name]/./packages/shared/src/helpers/visitHelper.js", "webpack://[name]/./packages/tcc/src/experiments/experimentSchema.js", "webpack://[name]/./packages/shared/src/experiments/handlers/addPagePerf.js", "webpack://[name]/./packages/shared/src/experiments/handlers/addPerf.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addEventTcc.js", "webpack://[name]/./packages/shared/src/experiments/handlers/addEvent.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addExperimentAssignment.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addPromotion.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addEcommEvent.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addPageRequestTcc.js", "webpack://[name]/./packages/shared/src/experiments/handlers/addPageRequest.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addImpression.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addVirtualPagePerf.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/getTrackingValues.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/addGenericConversion.js", "webpack://[name]/./packages/tcc/src/experiments/handlers/getVariantForExperiment.js" ], "sourcesContent": [ "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"tcc\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"tcc\"] = factory();\n\telse\n\t\troot[\"tcc\"] = factory();\n})(window, function() {\nreturn ", " \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n", "'use strict';\n\nexports.__esModule = true;\nexports._errorInit = exports._logInit = exports.error = exports.info = exports.debug = exports.log = undefined;\n\nvar _environment = require('./environment');\n\nvar _browser = require('./browser');\n\nvar _logInit = function _logInit() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var console = (0, _browser.getWindow)().console;\n if (!(0, _environment.isProduction)() && console && console.log) {\n if (Function.prototype.bind) {\n return Function.prototype.bind.call(console.log, console);\n }\n return function () {\n Function.prototype.apply.call(console.log, console, args);\n };\n }\n return function () {};\n};\n\nvar log = _logInit();\n\nvar debug = function debug() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if ((0, _environment.isDebug)()) {\n log.apply(null, args);\n }\n};\n\nvar _errorInit = function _errorInit() {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var console = (0, _browser.getWindow)().console;\n if (!(0, _environment.isProduction)() && console && console.error) {\n if (Function.prototype.bind) {\n return Function.prototype.bind.call(console.error, console);\n }\n return function () {\n Function.prototype.apply.call(console.error, console, args);\n };\n }\n return function () {};\n};\n\nvar error = _errorInit();\n\nexports.log = log;\nexports.debug = debug;\nexports.info = log;\nexports.error = error;\n\n// Private exports for testing\n\nexports._logInit = _logInit;\nexports._errorInit = _errorInit;", "import _config from '@exp/exp-utils/helper/config';\n\n_config.merge({\n 'tcc.listenerDisabled': false,\n 'tcc.manualPagePerf': false,\n 'tcc.loadTTI': true,\n\n 'tcc.eventDelayMs': 75,\n 'tcc.perfDelayMs': 250,\n 'tcc.consentDelayMs': 500,\n\n 'tcc.gaAccountDev': 'UA-52262008-15',\n 'tcc.gaAccountTest': 'UA-37178807-21',\n 'tcc.gaAccountProd': 'UA-115508484-1',\n\n 'tcc.buildEnv': 'production',\n 'tcc.buildName': '@tcc/tcc',\n 'tcc.buildVersion': '3.10.1',\n 'tcc.buildDate': '2020-10-23T23:21:36.906Z',\n 'tcc.splitioUrl': 'https://img1.wsimg.com/wrhs/153b0ee5f69840fe239a01574097118b/splitio.min.js',\n 'tcc.splitioApiKey': '26b1lpi1u5ifu0ug7hj9t68j43qi0b1sulf6',\n 'tcc.ttiUrl': 'https://img6.wsimg.com/wrhs/19613ac22420404c34b7162ef50370cf/tti.min.js'\n});\n\nexport default _config;\n", "'use strict';\n\nexports.__esModule = true;\n\nvar _object = require('../helper/object');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SchemaHandler = function () {\n function SchemaHandler(schemaHelper) {\n _classCallCheck(this, SchemaHandler);\n\n this.schemaHelper = schemaHelper;\n }\n\n // Abstract\n\n\n SchemaHandler.prototype.preProcess = function preProcess() {};\n\n SchemaHandler.prototype.load = function load(schemaType, schemaVersion, sinks, data, extras) {\n this.schemaType = schemaType;\n this.schemaVersion = schemaVersion;\n this.sinks = ['ALL'].concat(sinks);\n this.data = data;\n this.extras = extras ? extras : {};\n this.preProcess();\n this.process();\n };\n\n SchemaHandler.prototype.process = function process(sinkFnMap) {\n var _this = this;\n\n if (this.sinks && this.sinks.length > 0) {\n (0, _object.map)(sinkFnMap, function (sink, fn) {\n if (_this.sinks.indexOf(sink) !== -1) {\n fn(_this.data[sink]);\n }\n });\n }\n };\n\n return SchemaHandler;\n}();\n\nexports.default = SchemaHandler;", "'use strict';\n\nexports.__esModule = true;\n\nvar _object = require('./object');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PropertySet = function () {\n function PropertySet(properties) {\n _classCallCheck(this, PropertySet);\n\n this.properties = properties || {};\n }\n\n PropertySet.prototype.clear = function clear() {\n this.properties = {};\n };\n\n PropertySet.prototype.get = function get(name) {\n if (this.properties.hasOwnProperty(name)) {\n return this.properties[name];\n }\n };\n\n PropertySet.prototype.set = function set(name, value) {\n this.properties[name] = value;\n };\n\n PropertySet.prototype.isSet = function isSet(name) {\n if (this.properties.hasOwnProperty(name)) {\n return true;\n }\n };\n\n PropertySet.prototype.delete = function _delete(name) {\n delete this.properties[name];\n };\n\n PropertySet.prototype.getProperties = function getProperties(fnIgnore) {\n var returnProps = {};\n var _fnIgnore = function _fnIgnore() {\n return false;\n };\n if (!fnIgnore && typeof fnIgnore === 'function') {\n _fnIgnore = fnIgnore;\n }\n (0, _object.map)(this.properties, function (key, value) {\n if (_fnIgnore(key)) {\n return;\n }\n returnProps[key] = value;\n });\n return returnProps;\n };\n\n PropertySet.prototype.merge = function merge(properties) {\n var _this = this;\n\n var mergeObject = properties;\n if (mergeObject instanceof PropertySet) {\n mergeObject = properties.getProperties();\n }\n (0, _object.map)(mergeObject, function (key, value) {\n _this.set(key, value);\n });\n };\n\n return PropertySet;\n}();\n\nexports.default = PropertySet;", "'use strict';\n\nexports.__esModule = true;\nexports._cryptOrUndefined = exports._getDelegationClaims = exports._getInfoTokenClaim = exports._getInfoTokenClaims = exports.getUserId = exports.updateAuthTokens = exports.isEmployee = exports.isDelegated = exports.isAuthenticated = exports.getShopperId = exports.getUserRealm = exports.getCustomerId = exports.getFederationPartnerId = exports.getEmployeeId = exports.getDelegateEmployeeId = exports.getDelegateCustomerId = exports.getClaimFromInfoToken = undefined;\n\nvar _cookie = require('./cookie');\n\nvar _crypto = require('./crypto');\n\nvar _authInfoToken = {};\n\nvar _authRealms = ['idp', 'jomax'];\n\nvar _authRealmIdMap = {\n idp: 'info_shopperId',\n jomax: 'info_accountName'\n};\n\nvar _isTokenEmpty = function _isTokenEmpty(token) {\n return Object.keys(token).length < 1;\n};\n\n// Fetch the info_token for a particular realm from the browser\nvar _getInfoTokenClaims = function _getInfoTokenClaims(realm) {\n var claims = {};\n var cookieName = 'info_' + realm;\n var cookie = (0, _cookie.findCookie)(cookieName);\n if (cookie) {\n try {\n claims = JSON.parse(cookie);\n } catch (err) {} // eslint-disable-line no-empty\n }\n return claims;\n};\n\n// Finds/updates _authInfoToken with the newest auth token.\n// If none are found, the _authInfoToken variable is cleared.\nvar updateAuthTokens = function updateAuthTokens() {\n var token = {};\n for (var i = 0; i < _authRealms.length; i++) {\n var realm = _authRealms[i];\n var infoToken = _getInfoTokenClaims(realm);\n\n // Update the info token if its newer or not currently defined\n if (!_isTokenEmpty(infoToken) && (_isTokenEmpty(token) || token.iat < infoToken.iat)) {\n token = infoToken;\n }\n }\n\n _authInfoToken = token;\n};\n\nvar isAuthenticated = function isAuthenticated() {\n return !_isTokenEmpty(_authInfoToken);\n};\n\n// boolean value of whether the authenticated\n// user is in a delegation scenario\nvar isDelegated = function isDelegated() {\n if (!isAuthenticated()) {\n return false;\n }\n\n var authType = _authInfoToken.auth;\n return authType && authType !== 'basic';\n};\n\n// Boolean value of whether an employee token is found\n// on the browser or the newest token is an employee\n// delegation scenario\nvar isEmployee = function isEmployee() {\n if (!isAuthenticated()) {\n return false;\n }\n\n var tokenType = _authInfoToken.typ;\n var authType = _authInfoToken.auth;\n // Check if the latest token is for jomax\n if (tokenType && tokenType === 'jomax') {\n return true;\n }\n\n // Check if the latest token is an employee impersonation\n if (authType && authType !== 'basic' && authType.charAt(0) === 'e') {\n return true;\n }\n\n // Check if there is a jomax token on the browser\n var jomaxToken = _getInfoTokenClaims('jomax');\n return !_isTokenEmpty(jomaxToken);\n};\n\n// Returns the delegate's (parent's) claims, if found.\nvar _getDelegationClaims = function _getDelegationClaims(currentClaims) {\n if ('del' in currentClaims) {\n return _getDelegationClaims(currentClaims.del);\n }\n return currentClaims;\n};\n\nvar _cryptOrUndefined = function _cryptOrUndefined(encrypt, value) {\n if (!encrypt) {\n // If we're not encrypting... just return the value\n return value;\n }\n\n if (value) {\n // Return encrypted value\n return (0, _crypto.sha256)(value);\n }\n};\n\n// Fetch a claim from a delegation token\n// (This will parse the token recursively)\nvar getDelegateClaim = function getDelegateClaim(claim, encrypt) {\n if (isAuthenticated()) {\n var authType = _authInfoToken.auth;\n if (authType !== 'basic') {\n var delegationClaims = _getDelegationClaims(_authInfoToken);\n return _cryptOrUndefined(encrypt, delegationClaims[claim]);\n }\n }\n};\n\n// Fetch the jomax (employee) username from the current token\nvar getDelegateEmployeeId = function getDelegateEmployeeId(encrypt) {\n return getDelegateClaim(_authRealmIdMap.jomax, encrypt);\n};\n\n// Returns the employee id if a jomax token is found\n// If the newest token is an employee delegation token,\n// the employee id will be returned.\nvar getEmployeeId = function getEmployeeId(encrypt) {\n if (isAuthenticated()) {\n var tokenType = _authInfoToken.typ;\n var authType = _authInfoToken.auth;\n var idClaimName = _authRealmIdMap.jomax;\n\n // Check if the latest token is for jomax\n if (tokenType && tokenType === 'jomax') {\n return _cryptOrUndefined(encrypt, _authInfoToken[idClaimName]);\n }\n\n // Check if the latest token is an employee impersonation\n if (authType && authType !== 'basic' && authType.charAt(0) === 'e') {\n return getDelegateEmployeeId(encrypt);\n }\n\n // Check if there is a jomax token on the browser\n var jomaxToken = _getInfoTokenClaims('jomax');\n if (!_isTokenEmpty(jomaxToken)) {\n return _cryptOrUndefined(encrypt, jomaxToken[idClaimName]);\n }\n }\n};\n\n// Search an auth token for a particular claim\nvar _getInfoTokenClaim = function _getInfoTokenClaim(tokenClaims, claim, type) {\n var tokenType = tokenClaims.typ;\n if (typeof type !== 'undefined' && tokenType && tokenType !== type) {\n return;\n }\n\n var rVal = void 0;\n var authType = tokenClaims.auth;\n // If this is a delegation token, search\n // sub claims recursively\n if (authType && authType !== 'basic') {\n var subClaims = tokenClaims[authType];\n rVal = _getInfoTokenClaim(subClaims, claim, type);\n } else {\n rVal = tokenClaims[claim];\n }\n\n return rVal;\n};\n\n// Get the customer id for the user who is delegated into\n// the current user.\nvar getDelegateCustomerId = function getDelegateCustomerId(encrypt) {\n return getDelegateClaim('info_cid', encrypt);\n};\n\n// Get the customer id from the newest auth token\nvar getCustomerId = function getCustomerId(encrypt) {\n if (isAuthenticated()) {\n // Search the info token for the customer id claim\n return _cryptOrUndefined(encrypt, _getInfoTokenClaim(_authInfoToken, 'info_cid'));\n }\n};\n\n// Fetches the appropriate ID for the newest auth token.\n// If it's a delegation token, the subordinate's\n// (child's) ID will be returned.\nvar getUserId = function getUserId(encrypt) {\n if (isAuthenticated()) {\n var tokenType = _authInfoToken.typ;\n\n // For the auth type (idp vs pass vs jomax), lookup the\n // name of the claim that holds the customer id\n var claimToLookup = _authRealmIdMap[tokenType];\n\n // Search the info token for the customer id claim\n return _cryptOrUndefined(encrypt, _getInfoTokenClaim(_authInfoToken, claimToLookup));\n }\n};\n\n// Fetches the shopper ID for the newest auth token.\n// If it's a delegation token, the subordinate's\n// (child's) ID will be returned.\nvar getShopperId = function getShopperId(encrypt) {\n if (isAuthenticated()) {\n var tokenType = _authInfoToken.typ;\n if (tokenType === 'idp') {\n return _cryptOrUndefined(encrypt, _getInfoTokenClaim(_authInfoToken, 'info_shopperId'));\n }\n }\n};\n\n// Fetches the claim for the newest auth token.\n// If it's a delegation token, the subordinate's\n// (child's) claim will be searched.\nvar getClaimFromInfoToken = function getClaimFromInfoToken(claimName) {\n if (isAuthenticated()) {\n return _getInfoTokenClaim(_authInfoToken, claimName);\n }\n};\n\n// First tries to fetch the fpid for the newest auth tokken.\n// If not found, fallback/fetch the fpid from the brand cookie\nvar getFederationPartnerId = function getFederationPartnerId() {\n if (isAuthenticated()) {\n var fpid = _getInfoTokenClaim(_authInfoToken, 'fpid');\n if (!fpid) {\n var tokenType = _authInfoToken.typ;\n if (typeof tokenType !== 'undefined') {\n fpid = (0, _cookie.findCookie)('brand_' + tokenType);\n }\n }\n return fpid;\n }\n};\n\n// Fetches the realm for the newest auth token.\n// Regardless of whether it's a delegate token,\n// the subordinate (child) user's realm is on the root.\n// https://confluence.godaddy.com/display/AUTH/Token+Claims\nvar getUserRealm = function getUserRealm() {\n if (isAuthenticated()) {\n return _authInfoToken.typ;\n }\n};\n\nexports.getClaimFromInfoToken = getClaimFromInfoToken;\nexports.getDelegateCustomerId = getDelegateCustomerId;\nexports.getDelegateEmployeeId = getDelegateEmployeeId;\nexports.getEmployeeId = getEmployeeId;\nexports.getFederationPartnerId = getFederationPartnerId;\nexports.getCustomerId = getCustomerId;\nexports.getUserRealm = getUserRealm;\nexports.getShopperId = getShopperId;\nexports.isAuthenticated = isAuthenticated;\nexports.isDelegated = isDelegated;\nexports.isEmployee = isEmployee;\nexports.updateAuthTokens = updateAuthTokens;\nexports.getUserId = getUserId;\n\n// Private exports for testing\n\nexports._getInfoTokenClaims = _getInfoTokenClaims;\nexports._getInfoTokenClaim = _getInfoTokenClaim;\nexports._getDelegationClaims = _getDelegationClaims;\nexports._cryptOrUndefined = _cryptOrUndefined;", "import PropertySet from '@exp/exp-utils/helper/property';\n\nconst _pageProperties = new PropertySet();\n\nexport default _pageProperties;\n", "import PropertySet from '@exp/exp-utils/helper/property';\n\nconst trackingValues = new PropertySet();\n\nexport default trackingValues;\n", "//\n// tData Object has the format [[key1, value1], [key2, value2]]\n// tData String has the format key1,value1^key2,value2\n//\n\nimport { error } from '@exp/exp-utils/helper/logger';\nimport { isArray } from '@exp/exp-utils/helper/array';\nimport { parseValue, parseString, cleanKeyNames, stringify } from '@exp/exp-utils/helper/object';\nimport PropertySet from '@exp/exp-utils/helper/property';\n\nconst getObjFromTDataList = (tData) => {\n const result = {};\n if (isArray(tData)) {\n for (let i = 0; i < tData.length; i++) {\n const kvPair = tData[i];\n if (isArray(kvPair)) {\n result[kvPair[0]] = parseValue(kvPair);\n }\n }\n }\n return result;\n};\n\nconst getObjFromTDataString = (tDataString) => {\n return parseString(tDataString, '^', ',');\n};\n\nclass TData extends PropertySet {\n\n setTDataString(tDataString) {\n super.merge(getObjFromTDataString(tDataString));\n }\n\n stringify() {\n const properties = this.getProperties();\n cleanKeyNames(properties, '.', '_');\n\n const result = stringify(properties, '^', ',');\n\n if (result) {\n return result;\n }\n }\n\n set(name, value) {\n if (typeof value !== 'object' && {}.toString.call(value) !== '[object Function]') {\n super.set(name, value);\n } else {\n error(`Invalid key/value pair found in Traffic's custom properties (tData). Objects, arrays, and functions are not supported.\\n\\nKey: '${name}' Value: '${value}' Type: '${typeof value}'.`);\n }\n }\n}\n\nexport default TData;\nexport {\n getObjFromTDataList,\n getObjFromTDataString\n};\n", "import { setCookie, getCookieValue } from '@exp/exp-utils/helper/cookie';\nimport { stringify } from '@exp/exp-utils/helper/object';\nimport { createGuid } from '@tcc/shared/src/helpers/guid';\n\nimport VisitHelper from '@tcc/shared/src/helpers/visitHelper';\n\nclass VisitHelperTcc extends VisitHelper {\n\n getVisitInfo() {\n let visitorGuid = getCookieValue('visitor', 'vid');\n let visitGuid = getCookieValue('fb_sessiontraffic', 'pathway');\n\n if (typeof (visitGuid) === 'undefined') {\n visitGuid = createGuid();\n\n // Do not set S_TOUCH or V_DATE with client side timestamps\n // Traffic server will populate server-side timestamps if null or\n // empty...pc must be set to '0' or V_DATE does not populate...\n const fbSessionTraffic = {\n S_TOUCH: '',\n pathway: visitGuid,\n V_DATE: '',\n pc: '0'\n };\n\n const fbSessionCookieVal = stringify(fbSessionTraffic, '&', '=');\n setCookie('pathway', visitGuid, 20, '/');\n setCookie('fb_sessiontraffic', fbSessionCookieVal, 20, '/');\n }\n if (typeof (visitorGuid) === 'undefined') {\n visitorGuid = visitGuid;\n\n const cookieVal = `vid=${visitorGuid}`;\n setCookie('visitor', cookieVal, 525600, '/');\n }\n return {\n visitorGuid,\n visitGuid\n };\n }\n}\n\nexport default VisitHelperTcc;\n", "'use strict';\n\nexports.__esModule = true;\n\nvar _property = require('./property');\n\nvar _property2 = _interopRequireDefault(_property);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The object generated using this class should be\n// initialized with any default configuration values\n// as soon as your application starts. You can then\n// use that object to fetch any global configurations.\n\nvar config = new _property2.default();\n\nexports.default = config;", "'use strict';\n\nexports.__esModule = true;\n\nvar _browser = require('./browser');\n\nvar _window = require('./window');\n\nvar _array = require('./array');\n\nvar _logger = require('./logger');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DataLayer = function () {\n function DataLayer(dataLayerName) {\n _classCallCheck(this, DataLayer);\n\n this.dataLayerName = dataLayerName;\n this.dataLayerLog = [];\n this.asyncCommands = [];\n this.loaded = false;\n\n // This will contain any records that were logged to\n // to the global dataLayer BEFORE traffic was loaded.\n var asyncDataLayer = (0, _browser.getWindow)()[this.dataLayerName];\n if (asyncDataLayer) {\n this.asyncCommands = asyncDataLayer;\n }\n\n // Update the global dataLayer to use this class\n (0, _window.setWindowVar)(this.dataLayerName, this);\n this.dataLayer = (0, _browser.getWindow)()[this.dataLayerName];\n }\n\n DataLayer.prototype.start = function start() {\n // Process all records that were added before TCC initialized\n this.loadAsyncCommands();\n };\n\n DataLayer.prototype.pushLog = function pushLog(cmd) {\n if (process.env.NODE_ENV !== 'production') {\n (0, _logger.debug)('>>> Push to', this.dataLayerName, 'with', cmd);\n }\n (0, _array.logToArray)(this.dataLayerLog, cmd);\n };\n\n // Abstract\n\n\n DataLayer.prototype.process = function process() {};\n\n DataLayer.prototype.push = function push(cmd) {\n // If the datalayer is not loaded (i.e. the document is not yet loaded), push to the asyncCommands\n if (!this.loaded) {\n this.asyncCommands.push(cmd);\n } else {\n this.process(cmd);\n }\n };\n\n DataLayer.prototype.loadAsyncCommands = function loadAsyncCommands() {\n while (this.asyncCommands.length > 0) {\n this.process(this.asyncCommands.shift());\n }\n this.loaded = true;\n };\n\n return DataLayer;\n}();\n\nexports.default = DataLayer;", "import { getClickEventData as getBrowserClickEventData } from '@exp/exp-utils/helper/browser';\nimport { map as objectMap } from '@exp/exp-utils/helper/object';\n\n/* Shared Transformation Functions */\n\nconst emptyStringForUndefined = (output) => {\n objectMap(output, (filter) => {\n if (typeof output[filter] === 'undefined') {\n output[filter] = '';\n }\n });\n return output;\n};\n\nconst filterLogType = (input) => {\n return input.length > 10 ? input.substr(0, 10) : input || '';\n};\n\nconst getPackagesForGA = (data) => {\n if (!data.pkgs) return data;\n\n const pkgList = [];\n for (let i = 0; i < data.pkgs.length; i++) {\n if (data.pkgs[i].package_id) {\n pkgList.push(data.pkgs[i].package_id);\n }\n }\n\n // Cleanup GA doesn't need the raw pkg obj\n delete data.pkgs;\n\n // Set Datakey for filterMap\n data.package_id = pkgList.join(',');\n\n return data;\n};\n\n// Support V2 CJ purchase transformations\nconst _transformCjValues = (data) => {\n if (!data.items) return;\n\n [\n 'product_id',\n 'product_price_usd',\n 'product_quantity'\n ].forEach((name) => {\n\n // Init Arrays\n data['cj_' + name] = [];\n\n // Populate Arrays for any items with a true cj flag\n data.items.forEach((item) => {\n if (item.cj === 'true') {\n data['cj_' + name].push(item[name]);\n }\n });\n\n });\n\n return data;\n};\n\n// Supports all V1 purchase transformations\n// TODO Brandon 11/16/2018 Remove after Cart moves to V2 Purchase\n// https://jira.godaddy.com/browse/EXP-1107\nconst transformForTealium = (data) => {\n const values = data.items || data.pkgs;\n\n for (let i = 0; i < values.length; i++) {\n const keys = Object.keys(values[i]);\n for (let j = 0; j < keys.length; j++) {\n const key = keys[j];\n data[key] = data[key] || [];\n const value = values[i][key];\n if (typeof value !== 'undefined') {\n data[key].push(value);\n }\n }\n }\n\n // Cleanup, Tealium doesn't need the raw data\n (data.items) ? delete data.items : delete data.pkgs;\n\n return data;\n};\n\n// Supports V2 purchase transformations\nconst transformForTealiumV2 = (data) => {\n const values = data.items || data.pkgs;\n\n // Handles all array creations except CJ\n values.forEach((ecommItem) => {\n Object.keys(ecommItem).forEach((key) => {\n data[key] = data[key] || [];\n data[key].push(ecommItem[key] || '');\n });\n });\n\n // Handle CJ Array Creations\n _transformCjValues(data);\n\n // Cleanup, Tealium doesn't need the raw data\n ['items', 'pkgs', 'properties'].forEach((key) => {\n if (data[key] === values) delete data[key];\n });\n delete data.cj;\n\n return data;\n};\n\n// Used with V1 Generic Conversions. Used to unnest the props passed in the\n// properties object before sending to Tealium.\nconst unnestProperties = (data) => {\n if (!data.properties) return data;\n\n Object.keys(data.properties).forEach((key) => {\n data[key] = data.properties[key] || '';\n });\n\n delete data.properties;\n\n return data;\n};\n\n// Returns calculated new_vs_renewal if dependent sibling properties are available\nconst calcNewVsRenewal = (_, siblings) => {\n if (isNaN(parseFloat(siblings.order_total_new_usd)) || isNaN(parseFloat(siblings.order_total_renewal_usd)))\n return;\n\n // loop through productEvals and set newVsRenewal string\n let newVsRenewal;\n objectMap({\n 'new-and-renewal-products': (parseFloat(siblings.order_total_new_usd) > 0 && parseFloat(siblings.order_total_renewal_usd) > 0),\n 'new-product-only': (parseFloat(siblings.order_total_new_usd) > 0 && parseFloat(siblings.order_total_renewal_usd) === 0),\n 'renewal-product-only': (parseFloat(siblings.order_total_new_usd) === 0 && parseFloat(siblings.order_total_renewal_usd) > 0),\n 'unknown-products': (parseFloat(siblings.order_total_new_usd) === 0 && parseFloat(siblings.order_total_renewal_usd) === 0)\n }, (key, value) => {\n if (value === true)\n newVsRenewal = key;\n });\n\n return newVsRenewal;\n};\n\n// Returns calculated eid if dependent sibling properties are available\nconst calcPurchaseEid = (_, siblings) => {\n if (!siblings.new_customer || !siblings.payment_pending || !siblings.new_vs_renewal)\n return;\n\n const cartType = siblings.cart_type ? siblings.cart_type : 'modular-cart';\n const newCustomer = siblings.new_customer === 'true' ? 'new-customer_' : 'existing-customer_';\n const paymentPending = siblings.payment_pending === 'true' ? 'payment-pending_' : 'payment-processed_';\n return `ecomm.payments.transaction.${newCustomer}${paymentPending}${siblings.new_vs_renewal}.${cartType}.success`;\n};\n\nconst validateEid = (input) => {\n let eid = input.eid;\n if (!eid) {\n eid = getBrowserClickEventData(input.dom_element, input.dom_event).e_id;\n }\n if (!eid) {\n throw 'Either eid or dom_element parameters are required';\n }\n return input;\n};\n\nexport {\n calcPurchaseEid,\n calcNewVsRenewal,\n emptyStringForUndefined,\n filterLogType,\n getPackagesForGA,\n transformForTealium,\n transformForTealiumV2,\n unnestProperties,\n validateEid\n};\n\nexport {\n _transformCjValues\n};\n", "import PropertySet from '@exp/exp-utils/helper/property';\n\nconst _experiments = new PropertySet();\n\nexport default _experiments;\n", "import { libraryLoaded } from '@exp/exp-utils/helper/window';\nimport { getWindow, getDocument, isSupported } from '@exp/exp-utils/helper/browser';\nimport { log, error } from '@exp/exp-utils/helper/logger';\n\nimport SchemaHelper from '@exp/exp-utils/schema/schemaHelper';\n\nimport { getPerformanceData, observePerfMetrics } from '@tcc/shared/src/performance/performance';\n\nimport config from '@tcc/shared/src/helpers/config';\nimport trackingValues from '@tcc/shared/src/traffic/trackingValues';\nimport loadHelper from '@tcc/shared/src/helpers/load';\n\nimport { writePolicyCookie } from '@tcc/shared/src/helpers/policy';\nimport { handleOrderConfirmation } from './helpers/ecomm';\nimport { init as initConfigManager } from '@tcc/shared/src/configManager';\nimport { init as initEventSink } from '@tcc/shared/src/traffic/eventSend';\nimport { init as initExpDataLayer } from '@tcc/shared/src/experiments/experimentDataLayer';\nimport { init as initTrafficDataLayer } from '@tcc/shared/src/traffic/trafficDataLayer';\nimport { init as initEventListener } from '@tcc/shared/src/events/eventListener';\nimport { init as initSplitIo } from './splitio/splitio';\nimport { init as initTealium } from './tealium/tealium';\nimport { initGtag, initDatalayer as initGaDatalayer } from './ga/ga';\nimport { init as initTTI } from './tti/tti';\n\nimport page from '@tcc/shared/src/traffic/eventPageProperties';\nimport { initializeReferrer } from '@tcc/shared/src/traffic/eventProperties';\nimport experimentSchema from './experiments/experimentSchema';\nimport VisitHelperTcc from './helpers/visitHelperTcc';\n\n// Initialize the whole shootin match. Note that order is important for data layer init\nlet initialized = false;\n\nconst _tccInit = () => {\n if (!initialized) {\n initialized = true;\n\n // Load order below is *IMPORTANT*\n\n // Kickoff perf metrics first so that we can capture entries that will fire early\n observePerfMetrics();\n\n // Delay push to GA, Traffic, and Tealium sinks until load event\n loadHelper.init(\n getDocument().readyState === 'complete',\n (triggerOnLoad) => {\n getWindow().addEventListener('load', triggerOnLoad);\n }\n );\n\n // Set the referrer property before GA is initialized\n // Prevents a race condition where GA config and be created before\n // the first pageview event is process and sets the referrer in the property page.\n initializeReferrer(page);\n\n // Ensure the GA datalayer is initialized with a config record\n // before gtag has a chance to download.\n initGaDatalayer();\n\n // GA will only be initialized after the document has loaded and\n // will not be loaded for pass (productivity) pages\n if (config.get('tcc.realm') !== 'pass') {\n loadHelper.registerOnLoadFn(initGtag);\n }\n\n // Populates visit GUIDs immediately if missing\n const visitHelper = new VisitHelperTcc();\n\n // Traffic events will only be sent after the document has loaded.\n loadHelper.registerOnLoadFn(() => {\n initEventSink(visitHelper);\n });\n\n // Tealium events will only be sent after the document has loaded.\n loadHelper.registerOnLoadFn(initTealium);\n\n // Load TTI library if not disabled by page\n if (config.get('tcc.loadTTI')) {\n loadHelper.registerOnLoadFn(initTTI);\n }\n\n // Applications can force SplitIO to initialize immediately\n if (config.get('tcc.loadSplitIO')) {\n initSplitIo();\n }\n\n // Expose tracking values on the window\n getWindow()._tccTrackingValues = trackingValues.properties;\n\n // Load Exp first as trfq commands will push to the ExperimentDataLayer\n initExpDataLayer(new SchemaHelper(experimentSchema), visitHelper);\n initTrafficDataLayer();\n\n initEventListener();\n loadHelper.registerOnLoadFn(handleOrderConfirmation);\n\n if (!config.get('tcc.manualPagePerf')) {\n // Only send performance data after the document has loaded\n loadHelper.registerOnLoadFn(() => {\n getPerformanceData('auto');\n });\n }\n\n log('TCC STARTED', config.getProperties());\n }\n};\n\n// Only load if the browser is supported\nif (isSupported()) {\n // Load library only once on page... Throw an error if attempted to load more then once\n if (libraryLoaded()) {\n error('TCC Library has already been loaded on page');\n } else {\n // Initialize configs so that we can determine if the library was disabled\n initConfigManager();\n\n // Set the policy cookie\n writePolicyCookie();\n\n // Do not init if turned off\n if (config.get('tcc.status') !== 'off') {\n // We should init only when visible\n const doc = getDocument();\n if (doc.visibilityState !== 'prerender') {\n _tccInit();\n } else {\n doc.addEventListener('visibilitychange', () => {\n if (doc.visibilityState !== 'prerender' && doc.visibilityState !== 'unloaded') {\n _tccInit();\n }\n });\n }\n }\n }\n}\n", "'use strict';\n\nexports.__esModule = true;\n\nvar _schemaDefinitionBlocks = require('./schemaDefinitionBlocks');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SchemaHelper = function () {\n function SchemaHelper(commandSchemaDefinitions) {\n _classCallCheck(this, SchemaHelper);\n\n this.commandSchemaDefinitions = commandSchemaDefinitions;\n }\n\n SchemaHelper.prototype.handleSchema = function handleSchema(name, type, version, inputData, extras, sinksOverride) {\n // An exception will be thrown if the schema does not exist\n var schemaDefinition = new _schemaDefinitionBlocks.SchemaDefinitionBlock(this.commandSchemaDefinitions, name, type, version);\n\n if (schemaDefinition.schema.handler) {\n var sinks = sinksOverride || schemaDefinition.schema.sinks || [];\n var data = schemaDefinition.parse(inputData, sinks);\n\n // Pass current helper into the handler so that the handler can call another schema, if needed\n var handler = new schemaDefinition.schema.handler(this);\n handler.load(schemaDefinition.type, schemaDefinition.version, sinks, data, extras);\n }\n };\n\n return SchemaHelper;\n}();\n\nexports.default = SchemaHelper;", "import LoadHelper from '@exp/exp-utils/helper/load';\nconst _pageLoadHelper = new LoadHelper();\n\nexport default _pageLoadHelper;\n", "'use strict';\n\nexports.__esModule = true;\n\nvar _logger = require('./logger');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _isFn = function _isFn(fn) {\n return fn && {}.toString.call(fn) === '[object Function]';\n};\n\nvar LoadHelper = function () {\n function LoadHelper() {\n _classCallCheck(this, LoadHelper);\n }\n\n LoadHelper.prototype._executeFn = function _executeFn(fn) {\n try {\n fn();\n } catch (e) {\n (0, _logger.error)('Exception while executing onLoad callback', fn, e);\n }\n };\n\n LoadHelper.prototype._triggerOnLoad = function _triggerOnLoad() {\n this._loaded = true;\n for (var i = 0; i < this._onLoadFns.length; i++) {\n this._executeFn(this._onLoadFns[i]);\n }\n };\n\n LoadHelper.prototype.registerOnLoadFn = function registerOnLoadFn(fn) {\n if (_isFn(fn)) {\n // If the onLoad has already triggered, execute the fn immediately\n if (this._loaded) {\n this._executeFn(fn);\n } else {\n this._onLoadFns.push(fn);\n }\n } else if (process.env.NODE_ENV !== 'production') {\n (0, _logger.error)('Callback passed to registerOnLoadFn is not a valid function', fn);\n }\n };\n\n LoadHelper.prototype.init = function init(isLoaded, notLoadedCb) {\n this._loaded = false;\n this._onLoadFns = [];\n\n // If already loaded, set _loaded=true so that functions\n // are processed immediately after they're registered\n if (isLoaded) {\n this._loaded = true;\n } else {\n notLoadedCb(this._triggerOnLoad.bind(this));\n }\n };\n\n return LoadHelper;\n}();\n\nexports.default = LoadHelper;", "var v35 = require('./lib/v35.js');\nvar sha1 = require('./lib/sha1');\nmodule.exports = v35('v5', 0x50, sha1);\n", "var bytesToUuid = require('./bytesToUuid');\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {\n bytes.push(parseInt(hex, 16));\n });\n\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n var bytes = new Array(str.length);\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n return bytes;\n}\n\nmodule.exports = function(name, version, hashfunc) {\n var generateUUID = function(value, namespace, buf, offset) {\n var off = buf && offset || 0;\n\n if (typeof(value) == 'string') value = stringToBytes(value);\n if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);\n\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');\n\n // Per 4.3\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off+idx] = bytes[idx];\n }\n }\n\n return buf || bytesToUuid(bytes);\n };\n\n // Function#name is not settable on some platforms (#270)\n try {\n generateUUID.name = name;\n } catch (err) {\n }\n\n // Pre-defined namespaces, per Appendix C\n generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\n generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\n return generateUUID;\n};\n", "/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\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++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n", "// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\n'use strict';\n\nfunction f(s, x, y, z) {\n switch (s) {\n case 0: return (x & y) ^ (~x & z);\n case 1: return x ^ y ^ z;\n case 2: return (x & y) ^ (x & z) ^ (y & z);\n case 3: return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return (x << n) | (x>>> (32 - n));\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof(bytes) == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n bytes = new Array(msg.length);\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n\n var l = bytes.length/4 + 2;\n var N = Math.ceil(l/16);\n var M = new Array(N);\n\n for (var i=0; i>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n }\n\n return [\n H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff,\n H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff,\n H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff,\n H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff,\n H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff\n ];\n}\n\nmodule.exports = sha1;\n", "import { setCookie } from '@exp/exp-utils/helper/cookie';\n\nimport cmdLogPageRequest from '../../../tcc/src/traffic/methods/cmdLogPageRequest';\nimport cmdLogPageEvent from '../../../tcc/src/traffic/methods/cmdLogPageEvent';\nimport cmdLog from '../../../tcc/src/traffic/methods/cmdLog';\nimport cmdGetTrackingValues from '../../../tcc/src/traffic/methods/cmdGetTrackingValues';\nimport cmdLogPagePerf from '../../../tcc/src/traffic/methods/cmdLogPagePerf';\nimport cmdLogImpression from '../../../tcc/src/traffic/methods/cmdLogImpression';\n\n// Do init for the module\nsetCookie('traffic', '', 20, '/');\n\n// Methods used for the traffic data layer process are published through here\nexport { cmdLogPageRequest, cmdLogPageEvent, cmdLog, cmdGetTrackingValues, cmdLogPagePerf, cmdLogImpression };\n", "import { getWindow } from '@exp/exp-utils/helper/browser';\n\nconst cmdLogPageRequest = (pathname) => {\n getWindow()._expDataLayer.push({\n schema: 'add_page_request',\n version: 'v1',\n data: {\n virtual_path: pathname }});\n};\n\nexport default cmdLogPageRequest;\n", "import { getWindow } from '@exp/exp-utils/helper/browser';\nimport { getObjFromTDataList } from '@tcc/shared/src/helpers/tdata';\n\nconst cmdLogPageEvent = (eventDesc, eid, usrin, domElement, domEvent) => {\n getWindow()._expDataLayer.push({\n schema: 'add_event',\n version: 'v1',\n data: {\n type: eventDesc,\n eid: eid,\n custom_properties: getObjFromTDataList(usrin),\n dom_element: domElement,\n dom_event: domEvent }});\n};\n\nexport default cmdLogPageEvent;\n", "import { getWindow } from '@exp/exp-utils/helper/browser';\n\nconst cmdLog = (eventDesc, propertyObject) => {\n getWindow()._expDataLayer.push({\n schema: 'add_perf',\n version: 'v1',\n data: {\n type: eventDesc,\n properties: propertyObject }});\n};\n\nexport default cmdLog;\n", "import { getWindow } from '@exp/exp-utils/helper/browser';\n\nconst cmdGetTrackingValues = (callback) => {\n getWindow()._expDataLayer.push({\n schema: 'get_tracking_values',\n version: 'v1',\n data: {\n callback: callback }});\n};\n\nexport default cmdGetTrackingValues;\n", "import { getWindow } from '@exp/exp-utils/helper/browser';\n\nconst cmdLogPagePerf = () => {\n getWindow()._expDataLayer.push({\n schema: 'add_page_perf',\n version: 'v1'\n });\n};\n\nexport default cmdLogPagePerf;\n", "import { getWindow } from '@exp/exp-utils/helper/browser';\nimport { getObjFromTDataList } from '@tcc/shared/src/helpers/tdata';\n\nconst cmdLogImpression = (eid, usrin, domElement) => {\n getWindow()._expDataLayer.push({\n schema: 'add_impression',\n version: 'v1',\n data: {\n eid: eid,\n properties: getObjFromTDataList(usrin),\n dom_element: domElement }});\n};\n\nexport default cmdLogImpression;\n", "// Abstract class\nclass VisitHelper {\n // be overwritten by TCC and TCCL\n getVisitInfo() {\n return;\n }\n}\n\nexport default VisitHelper;\n", "import { PropertyDefinitionBlock, ObjectDefinitionBlock, CollectionDefinitionBlock, CalculatedDefinitionBlock } from '@exp/exp-utils/schema/schemaDefinitionBlocks';\n\nimport * as schemaTransforms from '@tcc/shared/src/experiments/experimentSchemaTransforms';\n\n// Handlers\nimport AddPagePerfHandler from '@tcc/shared/src/experiments/handlers/addPagePerf';\nimport AddPerfHandler from '@tcc/shared/src/experiments/handlers/addPerf';\nimport AddEventHandlerTcc from './handlers/addEventTcc';\nimport AddExperimentAssignment from './handlers/addExperimentAssignment';\nimport AddPromotion from './handlers/addPromotion';\nimport AddEcommEvent from './handlers/addEcommEvent';\nimport AddPageRequestTcc from './handlers/addPageRequestTcc';\nimport AddImpression from './handlers/addImpression';\nimport AddVirtualPagePerf from './handlers/addVirtualPagePerf';\nimport GetTrackingValues from './handlers/getTrackingValues';\nimport AddGenericConversion from './handlers/addGenericConversion';\nimport GetVariantForExperiment from './handlers/getVariantForExperiment';\n\n/*\nFor documentation on how to use the schema framework, refer to\nhttps://github.secureserver.net/Experimentation/exp-utils/blob/master/test/schema/example/exampleSchema.js\n*/\n\n/* Shared Transform Key Maps */\n\nconst _valueTransformMap = {\n ALL: 'value',\n EVENT_SVC: 'ecomm_value',\n TEALIUM: 'order_total_usd' };\n\nconst _productPriceTransformMap = {\n ALL: 'price',\n TEALIUM: 'product_price_usd' };\n\nconst _currencyTransformMap = {\n ALL: 'currency',\n TEALIUM: 'order_currency' };\n\nconst _itcTransformMap = {\n ALL: 'item_tracking_code',\n GA: 'item_tracking_code_product',\n EVENT_SVC: 'itemTrackingCode' };\n\n/* Shared Object Schemas */\n\nconst _allSchemaObj = () => {\n return [\n new PropertyDefinitionBlock('custom_properties')\n .optional()\n .sinks(['EVENT_SVC'])\n ];\n};\n\nconst _experimentAssignmentObj = () => {\n return [\n new PropertyDefinitionBlock('experiment_id')\n .required(),\n new PropertyDefinitionBlock('variant_id')\n .required(),\n new PropertyDefinitionBlock('content_id')\n .optional(),\n new PropertyDefinitionBlock('experiment_source')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ];\n};\n\nconst _eventObjV2 = () => {\n return [\n new PropertyDefinitionBlock('eid')\n .required(),\n new PropertyDefinitionBlock('href')\n .optional(),\n new PropertyDefinitionBlock('tcode')\n .optional(),\n new PropertyDefinitionBlock('tms')\n .optional(),\n new PropertyDefinitionBlock('ci')\n .optional(),\n new PropertyDefinitionBlock('properties')\n .optional()\n ];\n};\n\nconst _eventObjV1 = () => {\n return [\n new PropertyDefinitionBlock('eid')\n .optional(),\n new PropertyDefinitionBlock('properties')\n .optional(),\n new PropertyDefinitionBlock('dom_element')\n .optional(),\n new PropertyDefinitionBlock('dom_event')\n .optional()\n ];\n};\n\nconst _promotionObj = (eventObj) => {\n return [\n new PropertyDefinitionBlock('id')\n .required()\n .sinks(['GA']),\n new PropertyDefinitionBlock('name')\n .optional()\n .sinks(['GA']),\n new PropertyDefinitionBlock('creative_name')\n .optional()\n .sinks(['GA']),\n new PropertyDefinitionBlock('creative_slot')\n .optional()\n .sinks(['GA']),\n new ObjectDefinitionBlock()\n .substitute(eventObj)\n .sinks(['EVENT_SVC'])\n ];\n};\n\nconst _ecommEidObj = (staticEid) => {\n return [\n new CalculatedDefinitionBlock('eid')\n .transform(staticEid)\n .transformKeys({ EVENT_SVC: 'e_id' }),\n new PropertyDefinitionBlock('eid_label')\n .optional()\n .transformKeys({ EVENT_SVC: 'event_label' })\n ];\n};\n\nconst _cartTypeProperty = () => {\n return new PropertyDefinitionBlock('cart_type')\n .optional()\n .sinks(['GA', 'EVENT_SVC']);\n};\n\n// prdct supports v1 purchase\n// TODO Brandon 11/16/2018 Remove after Cart moves to V2 Purchase\n// https://jira.godaddy.com/browse/EXP-1107\nconst _productObj = () => {\n return [\n new PropertyDefinitionBlock('id')\n .required()\n .transformKeys({ TEALIUM: 'product_id' }),\n new PropertyDefinitionBlock('quantity')\n .required()\n .transformKeys({ TEALIUM: 'product_quantity' }),\n new PropertyDefinitionBlock('name')\n .optional()\n .sinks(['GA', 'EVENT_SVC']),\n new PropertyDefinitionBlock('brand')\n .optional()\n .sinks(['GA', 'EVENT_SVC']),\n new PropertyDefinitionBlock('variant')\n .optional()\n .sinks(['GA', 'EVENT_SVC']),\n new PropertyDefinitionBlock('coupon')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n ];\n};\n\n// Support Purchase V1\n// TODO Brandon 11/16/2018 Remove after Cart moves to V2 Purchase\n// https://jira.godaddy.com/browse/EXP-1107\nconst _cartProductObj = (itemExtensions) => {\n return [\n _cartTypeProperty(),\n new PropertyDefinitionBlock('currency')\n .optional()\n .transformKeys(_currencyTransformMap),\n new PropertyDefinitionBlock('coupon')\n .optional()\n .transformKeys({ TEALIUM: 'source_code' }),\n\n // In addition to the fields defined by the 'product' map, the\n // objects in this collection will also require the price field.\n new CollectionDefinitionBlock().map('items', _productObj())\n .extend([\n // This is an example of the 'product' object being extended\n // to require additional properties\n new PropertyDefinitionBlock('full_product_name')\n .optional()\n .sinks(['TEALIUM'])\n .transformKeys({ TEALIUM: 'product_name' }),\n new PropertyDefinitionBlock('cj_product_id')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('cj_product_price_usd')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('cj_product_quantity')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('item_tracking_code')\n .optional()\n .transformKeys(_itcTransformMap),\n new PropertyDefinitionBlock('product_category_id')\n .optional()\n .sinks(['TEALIUM'])\n .transformKeys({ TEALIUM: 'product_category' }),\n new PropertyDefinitionBlock('category')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n ].concat(itemExtensions))\n .transform({ EVENT_SVC: [JSON.stringify] })\n ];\n};\n\n// Supports Purchase V1\n// TODO Brandon 11/16/2018 Remove after Cart moves to V2 Purchase\n// https://jira.godaddy.com/browse/EXP-1107\nconst _gaPurchaseObj = () => {\n return [\n new PropertyDefinitionBlock('transaction_id')\n .required()\n .transformKeys({ TEALIUM: 'order_id' }),\n new PropertyDefinitionBlock('activation_redirect')\n .optional(),\n new PropertyDefinitionBlock('first_order')\n .optional(),\n new PropertyDefinitionBlock('new_customer')\n .optional(),\n new PropertyDefinitionBlock('order_discount_usd')\n .optional()\n .transformKeys({ TEALIUM: 'order_discount' }),\n new PropertyDefinitionBlock('order_total_new_usd')\n .optional()\n .doNotOutput('GA'),\n new PropertyDefinitionBlock('order_total_renewal_usd')\n .optional()\n .doNotOutput('GA'),\n new PropertyDefinitionBlock('order_from_website')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('page_type')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('order_region')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('payment_pending')\n .optional(),\n new PropertyDefinitionBlock('payment_processor')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_cartProductObj([\n // _cartProductObj accepts an array of properties to extend the items object map\n new PropertyDefinitionBlock('price')\n .required()\n .transformKeys(_productPriceTransformMap)\n ]))\n .extend([\n new PropertyDefinitionBlock('currency')\n .required()\n .transformKeys(_currencyTransformMap),\n new PropertyDefinitionBlock('value')\n .required()\n .transformKeys(_valueTransformMap)\n ])\n .transform({\n TEALIUM: [schemaTransforms.transformForTealium]\n })\n ];\n};\n\nconst _purchaseCommon = () => {\n return [\n new CalculatedDefinitionBlock('new_vs_renewal')\n .sinks(['GA', 'EVENT_SVC'])\n .transform(schemaTransforms.calcNewVsRenewal),\n new CalculatedDefinitionBlock('eid')\n .sinks(['GA', 'EVENT_SVC'])\n .transform(schemaTransforms.calcPurchaseEid)\n .transformKeys({ EVENT_SVC: 'e_id' })\n ];\n};\n\nconst _checkoutProductObj = (staticEid) => {\n return [\n // Extend the cart_prdct object with extra properties\n new ObjectDefinitionBlock().substitute(_cartProductObj([\n // _cartProductObj accepts an array of properties to extend the items object map\n new PropertyDefinitionBlock('price')\n .optional()\n .transformKeys(_productPriceTransformMap)\n ])).extend([\n // This is extending the root object, not any of the object maps (such as items or packages)\n new PropertyDefinitionBlock('checkout_step')\n .required(),\n new PropertyDefinitionBlock('checkout_option')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_ecommEidObj(staticEid))\n .sinks(['GA', 'EVENT_SVC'])\n ])\n ];\n};\n\n// supports v1 add_to_cart, v1 product_impression and v2 purchase\nconst _baseProductObj = () => {\n return [\n new PropertyDefinitionBlock('id')\n .required()\n .transformKeys({ TEALIUM: 'product_id' }),\n new PropertyDefinitionBlock('qt')\n .required()\n .transformKeys({ ALL: 'quantity', TEALIUM: 'product_quantity' }),\n new PropertyDefinitionBlock('ca')\n .optional()\n .transformKeys({ ALL: 'category', TEALIUM: 'product_category_name' }),\n new PropertyDefinitionBlock('br')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n .transformKeys({ ALL: 'brand' }),\n new PropertyDefinitionBlock('va')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n .transformKeys({ ALL: 'variant' }),\n new PropertyDefinitionBlock('cc')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n .transformKeys({ ALL: 'coupon' }),\n new PropertyDefinitionBlock('pr')\n .optional()\n .transformKeys(_productPriceTransformMap)\n ];\n};\n\n// V1 Product Impression and Add To Cart Product Map\nconst _ecommProductObj = () => {\n return [\n new CollectionDefinitionBlock().map('items', _baseProductObj())\n .extend([\n new PropertyDefinitionBlock('name')\n .optional()\n .sinks(['GA', 'EVENT_SVC']),\n new PropertyDefinitionBlock('itc')\n .optional()\n .transformKeys(_itcTransformMap)\n ])\n .transform({ EVENT_SVC: [JSON.stringify] })\n ];\n};\n\n// V2 Purchase Product Map\nconst _purchaseProductObj = () => {\n return [\n new CollectionDefinitionBlock().map('items', _baseProductObj()).extend([\n new PropertyDefinitionBlock('pr')\n .required()\n .transformKeys(_productPriceTransformMap),\n new PropertyDefinitionBlock('prcaid')\n .optional()\n .sinks(['TEALIUM'])\n .transformKeys({ TEALIUM: 'product_category' }),\n new PropertyDefinitionBlock('cj')\n .optional()\n .sinks(['TEALIUM']),\n new PropertyDefinitionBlock('pritc')\n .optional()\n .transformKeys(_itcTransformMap)\n ]).transform({ EVENT_SVC: [JSON.stringify] })\n ];\n};\n\n// Supports v1 add_to_cart, v1 product_impression and v2 purchase\nconst _packageObj = () => {\n return [\n new PropertyDefinitionBlock('pkgid')\n .optional()\n .transformKeys({ ALL: 'package_id', EVENT_SVC: 'id' }),\n new PropertyDefinitionBlock('pkgpr')\n .optional()\n .transformKeys({ EVENT_SVC: 'price', TEALIUM: 'package_price_usd' }),\n new PropertyDefinitionBlock('pkgca')\n .optional()\n .transformKeys({ EVENT_SVC: 'category', TEALIUM: 'package_category' }),\n new PropertyDefinitionBlock('pkgqt')\n .optional()\n .transformKeys({ EVENT_SVC: 'quantity', TEALIUM: 'package_quantity' })\n ];\n};\n\n// V1 Product Impression and Add To Cart Product map\nconst _ecommPackageObj = () => {\n return [\n new CollectionDefinitionBlock().map('pkgs', _packageObj())\n .transform({ EVENT_SVC: [JSON.stringify] })\n .transformKeys({ EVENT_SVC: 'packages' })\n ];\n};\n\n// V2 Purchase data map\nconst _purchaseObj = () => {\n return [\n new PropertyDefinitionBlock('cu')\n .required()\n .transformKeys(_currencyTransformMap),\n new PropertyDefinitionBlock('ti')\n .required()\n .transformKeys({ ALL: 'transaction_id', TEALIUM: 'order_id' }),\n new PropertyDefinitionBlock('tr')\n .required()\n .transformKeys(_valueTransformMap),\n new PropertyDefinitionBlock('tcc')\n .optional()\n .transformKeys({ ALL: 'coupon', TEALIUM: 'source_code' }),\n new PropertyDefinitionBlock('fo')\n .optional()\n .transformKeys({ ALL: 'first_order' }),\n new PropertyDefinitionBlock('nc')\n .optional()\n .transformKeys({ ALL: 'new_customer' }),\n new PropertyDefinitionBlock('tdr')\n .optional()\n .transformKeys({ ALL: 'order_discount_usd' }),\n new PropertyDefinitionBlock('tr_new')\n .optional()\n .doNotOutput('GA')\n .transformKeys({ ALL: 'order_total_new_usd' }),\n new PropertyDefinitionBlock('tr_renew')\n .optional()\n .doNotOutput('GA')\n .transformKeys({ ALL: 'order_total_renewal_usd' }),\n new PropertyDefinitionBlock('pp')\n .optional()\n .transformKeys({ ALL: 'payment_pending' }),\n new PropertyDefinitionBlock('psrc')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n .transformKeys({ ALL: 'payment_processor' }),\n new ObjectDefinitionBlock()\n .substitute(_ecommPackageObj())\n .transform({\n TEALIUM: [schemaTransforms.transformForTealiumV2]\n }),\n new ObjectDefinitionBlock()\n .substitute(_purchaseProductObj())\n .transform({\n TEALIUM: [schemaTransforms.transformForTealiumV2]\n })\n ];\n};\n\nconst navTimingObj = () => {\n return [\n new PropertyDefinitionBlock('navigationStart').required(),\n new PropertyDefinitionBlock('fetchStart').optional(),\n new PropertyDefinitionBlock('domainLookupStart').optional(),\n new PropertyDefinitionBlock('domainLookupEnd').optional(),\n new PropertyDefinitionBlock('connectStart').optional(),\n new PropertyDefinitionBlock('connectEnd').optional(),\n new PropertyDefinitionBlock('requestStart').optional(),\n new PropertyDefinitionBlock('responseStart').optional(),\n new PropertyDefinitionBlock('responseEnd').optional(),\n new PropertyDefinitionBlock('domLoading').optional(),\n new PropertyDefinitionBlock('domInteractive').optional(),\n new PropertyDefinitionBlock('domContentLoaded').optional(),\n new PropertyDefinitionBlock('domComplete').optional(),\n new PropertyDefinitionBlock('loadEventStart').required(),\n new PropertyDefinitionBlock('loadEventEnd').optional(),\n new PropertyDefinitionBlock('transferSize').optional(),\n new PropertyDefinitionBlock('encodedBodySize').optional(),\n new PropertyDefinitionBlock('decodedBodySize').optional()\n ];\n};\n\nconst genericConversionObj = () => {\n return [\n new ObjectDefinitionBlock().map('properties', [\n new PropertyDefinitionBlock('virtual_order_id')\n .optional().\n transformKeys({ TEALIUM: 'order_id' }),\n new PropertyDefinitionBlock('app_name')\n .optional(),\n new PropertyDefinitionBlock('package_id')\n .optional(),\n new PropertyDefinitionBlock('package_category')\n .optional()\n ]),\n new PropertyDefinitionBlock('area')\n .doNotOutput()\n .required(),\n new PropertyDefinitionBlock('product')\n .doNotOutput()\n .required(),\n new PropertyDefinitionBlock('revenue')\n .doNotOutput()\n .required(),\n new PropertyDefinitionBlock('action')\n .doNotOutput()\n .required(),\n new CalculatedDefinitionBlock('eid')\n .transform((_, siblings) => {\n return `tcc.conversion.${siblings.area}.${siblings.product}.${siblings.revenue}.${siblings.action}`;\n })\n ];\n};\n\nconst _getVariantForExpObj = () => {\n return [\n new PropertyDefinitionBlock('experiment_id')\n .required(),\n new PropertyDefinitionBlock('callback')\n .required(),\n new PropertyDefinitionBlock('attributes')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ];\n};\n\nconst _experimentAssignmentSchema = () => {\n return {\n // Becauses this schema handler calls the add_event handler,\n // the sink defined here will override the add_event schema sink\n sinks: ['GA', 'EVENT_SVC'],\n handler: AddExperimentAssignment,\n data: [\n new ObjectDefinitionBlock()\n .substitute(_experimentAssignmentObj())\n ]\n };\n};\n\nconst _promoClickSchema = (eventObj) => {\n return {\n handler: AddPromotion,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock()\n .substitute(_promotionObj(eventObj))\n .transform({ GA: [(input) => {\n return { promotions: [input] };\n }] }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n };\n};\n\nconst _promoImpressionSchema = (eventObj) => {\n return {\n handler: AddPromotion,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new CollectionDefinitionBlock()\n .map('impressions', _promotionObj(eventObj))\n .transformKeys({ ALL: 'promotions' }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n };\n};\n\nconst _addEventSchema = (eventObj) => {\n return {\n handler: AddEventHandlerTcc,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new PropertyDefinitionBlock('type')\n .required()\n .transform({ ALL: [schemaTransforms.filterLogType] }),\n new ObjectDefinitionBlock()\n .substitute(eventObj)\n .transform({ ALL: [schemaTransforms.validateEid] }),\n new PropertyDefinitionBlock('event_label').optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n };\n};\n\nconst _addImpressionSchema = (eventObj) => {\n return {\n handler: AddImpression,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock()\n .substitute(eventObj)\n .transform({ ALL: [schemaTransforms.validateEid] }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n };\n};\n\n/* Command Schemas */\n\nconst commandSchemaDefinitions = {\n add_event: {\n v1: _addEventSchema(_eventObjV1()),\n v2: _addEventSchema(_eventObjV2())\n },\n add_generic_conversion: {\n v1: {\n handler: AddGenericConversion,\n sinks: ['GA', 'EVENT_SVC', 'TEALIUM'],\n data: [\n new ObjectDefinitionBlock()\n .substitute(genericConversionObj())\n .transform({\n TEALIUM: [schemaTransforms.unnestProperties]\n }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n }\n },\n add_impression: {\n v1: _addImpressionSchema(_eventObjV1()),\n v2: _addImpressionSchema(_eventObjV2())\n },\n add_page_request: {\n v1: {\n handler: AddPageRequestTcc,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new PropertyDefinitionBlock('virtual_path')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n }\n },\n add_virtual_page_perf: {\n v1: {\n handler: AddVirtualPagePerf,\n sinks: ['EVENT_SVC'],\n data: [\n new PropertyDefinitionBlock('virtual_path')\n .required(),\n new ObjectDefinitionBlock()\n .map('timing_metrics', navTimingObj()),\n new PropertyDefinitionBlock('perf_mark_name')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n }\n },\n add_page_perf: {\n v1: {\n handler: AddPagePerfHandler,\n data: [\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ],\n // add_page_perf still depends on add_perf in a legacy way.\n // If you need to control where the output for this schema will go,\n // adjust the 'add_perf' output group\n sinks: ['EVENT_SVC']\n }\n },\n // Ad-hoc perf interface.\n // add_page_perf reuses this schema to log perf data\n // Helper libraries / consumers use this to log virtual page requests\n add_perf: {\n v1: {\n handler: AddPerfHandler,\n sinks: ['EVENT_SVC'],\n data: [\n new PropertyDefinitionBlock('type')\n .required()\n .transform({ ALL: [schemaTransforms.filterLogType] }),\n new PropertyDefinitionBlock('properties')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n }\n },\n get_tracking_values: {\n v1: {\n handler: GetTrackingValues,\n data: [\n new PropertyDefinitionBlock('callback').required()\n ]\n }\n },\n get_variant_for_experiment: {\n v1: {\n handler: GetVariantForExperiment,\n data: _getVariantForExpObj()\n },\n v2: {\n handler: GetVariantForExperiment,\n data: [\n new ObjectDefinitionBlock()\n .substitute(_getVariantForExpObj()).extend([\n new PropertyDefinitionBlock('traffic_type')\n .required(),\n new PropertyDefinitionBlock('configuration')\n .optional()\n ])\n ]\n }\n },\n // DEPRECATED. Use add_experiment_assignment\n add_experiment: {\n v1: {\n handler: AddExperimentAssignment,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock()\n .substitute(_experimentAssignmentObj()).extend([\n new PropertyDefinitionBlock('experiment_type').optional()\n ])\n ]\n }\n },\n add_experiment_assignment: [\n {\n type: 'abn',\n v1: _experimentAssignmentSchema()\n },\n {\n type: 'mvt',\n v1: _experimentAssignmentSchema()\n }\n ],\n add_promotion: [\n {\n type: 'click',\n v1: _promoClickSchema(_eventObjV1()),\n v2: _promoClickSchema(_eventObjV2())\n },\n {\n type: 'impression',\n v1: _promoImpressionSchema(_eventObjV1()),\n v2: _promoImpressionSchema(_eventObjV2())\n }\n ],\n add_ecomm_event: [\n {\n type: 'product_impression',\n v1: {\n handler: AddEcommEvent,\n sinks: ['TEALIUM', 'EVENT_SVC'],\n data: [\n new PropertyDefinitionBlock('el')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n .transformKeys({ GA: 'eid_label', EVENT_SVC: 'event_label' }),\n new CalculatedDefinitionBlock('eid')\n .sinks(['GA', 'EVENT_SVC'])\n .transform('gpd.exp.tcc.product-impression.success')\n .transformKeys({ EVENT_SVC: 'e_id' }),\n new ObjectDefinitionBlock().substitute(_ecommProductObj())\n .transform({\n TEALIUM: [schemaTransforms.transformForTealiumV2]\n }),\n new ObjectDefinitionBlock().substitute(_ecommPackageObj())\n .transform({\n GA: [schemaTransforms.getPackagesForGA],\n TEALIUM: [schemaTransforms.transformForTealiumV2]\n }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj()),\n _cartTypeProperty()\n ]\n }\n },\n {\n type: 'add_to_cart',\n v1: {\n handler: AddEcommEvent,\n sinks: ['GA', 'TEALIUM', 'EVENT_SVC'],\n data: [\n new PropertyDefinitionBlock('el')\n .optional()\n .sinks(['GA', 'EVENT_SVC'])\n .transformKeys({ GA: 'eid_label', EVENT_SVC: 'event_label' }),\n new CalculatedDefinitionBlock('eid')\n .sinks(['GA', 'EVENT_SVC'])\n .transform('gpd.exp.tcc.add-to-cart.success')\n .transformKeys({ EVENT_SVC: 'e_id' }),\n new ObjectDefinitionBlock()\n .substitute(_ecommProductObj())\n .transform({\n TEALIUM: [schemaTransforms.transformForTealiumV2]\n }),\n new ObjectDefinitionBlock()\n .substitute(_ecommPackageObj())\n .transform({\n GA: [schemaTransforms.getPackagesForGA],\n TEALIUM: [schemaTransforms.transformForTealiumV2]\n }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj()),\n _cartTypeProperty()\n ]\n }\n },\n {\n type: 'remove_from_cart',\n v1: {\n handler: AddEcommEvent,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock().substitute(\n _ecommEidObj('gpd.exp.tcc.remove-from-cart.success')),\n new PropertyDefinitionBlock('currency')\n .optional(),\n new PropertyDefinitionBlock('value')\n .optional()\n .transformKeys(_valueTransformMap),\n new CollectionDefinitionBlock().map('items', _productObj())\n .extend([\n new PropertyDefinitionBlock('price')\n .optional()\n .transformKeys(_productPriceTransformMap)\n ])\n .transform({ EVENT_SVC: [JSON.stringify] }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj()),\n _cartTypeProperty()\n ]\n }\n },\n {\n type: 'begin_checkout',\n v1: {\n handler: AddEcommEvent,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock().substitute(_checkoutProductObj(\n 'gpd.exp.tcc.begin-checkout.success')),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n }\n },\n {\n type: 'checkout_progress',\n v1: {\n handler: AddEcommEvent,\n sinks: ['GA', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock().substitute(_checkoutProductObj(\n 'gpd.exp.tcc.checkout-progress.success')).extend([\n new PropertyDefinitionBlock('payment_processor')\n .optional(),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ])\n ]\n }\n },\n {\n type: 'purchase',\n v1: {\n handler: AddEcommEvent,\n sinks: ['GA', 'TEALIUM', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock()\n .substitute(_gaPurchaseObj())\n .extend(_purchaseCommon())\n .transform({ TEALIUM: [schemaTransforms.emptyStringForUndefined] }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n },\n v2: {\n handler: AddEcommEvent,\n sinks: ['GA', 'TEALIUM', 'EVENT_SVC'],\n data: [\n new ObjectDefinitionBlock()\n .substitute(_purchaseObj())\n .extend(_purchaseCommon())\n .transform({\n GA: [schemaTransforms.getPackagesForGA],\n TEALIUM: [schemaTransforms.emptyStringForUndefined]\n }),\n new ObjectDefinitionBlock()\n .substitute(_allSchemaObj())\n ]\n }\n }]\n};\n\nexport default commandSchemaDefinitions;\n", "import SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { getPerformanceData } from '../../../../shared/src/performance/performance';\n\nclass AddPagePerfHandler extends SchemaHandler {\n process() {\n super.process({\n EVENT_SVC: (input) => { this._handleEventSvc(input); }\n });\n }\n\n _handleEventSvc(input) {\n getPerformanceData('manual', input.custom_properties);\n }\n}\n\nexport default AddPagePerfHandler;\n", "import { createEventProperties, addEventProperties, createTData } from '../../../../shared/src/traffic/eventProperties';\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { sendEvent } from '../../../../shared/src/traffic/eventSend';\n\nclass AddPerfHandler extends SchemaHandler {\n\n process() {\n super.process({\n EVENT_SVC: () => { this._handleEventSvc(); }\n });\n }\n\n _handleEventSvc() {\n sendEvent(this.pageEvent.getProperties(), '/b.aspx', 'GET');\n }\n\n preProcess() {\n this.pageEvent = createEventProperties('page.log', createTData(this.data));\n\n addEventProperties(this.pageEvent, this.data.ALL.type);\n\n // Hard vs Soft navigation (normal page request vs virtual page request)\n this.pageEvent.set('nav_type', this.data.ALL.nav_type);\n\n // This handler is reused by multiple perf interfaces and is kept\n // around for legacy functionality (primarily SPAs)\n if (typeof this.data.ALL.properties === 'object') {\n this.pageEvent.merge(this.data.ALL.properties);\n }\n\n // Merge datalayer extras, which includes an identifier to\n // correlate the hit between downstream systems (hit_id)\n this.pageEvent.merge(this.extras);\n }\n}\n\nexport default AddPerfHandler;\n", "import { encodeProperties } from '@exp/exp-utils/helper/url';\nimport { map, stringify } from '@exp/exp-utils/helper/object';\nimport { setCookie } from '@exp/exp-utils/helper/cookie';\nimport { merge as objectMerge } from '@exp/exp-utils/helper/object';\n\nimport { sendPageEvent as sendGAPageEvent } from '../../ga/ga';\n\nimport { setReferCookie } from '@tcc/shared/src/helpers/visit';\n\nimport AddEventHandlerV1 from '@tcc/shared/src/experiments/handlers/addEvent';\n\n// All eventtypes are shortened down to 10 characters.\n// Therefore, the below events should not exceed 10 characters.\n// https://confluence.godaddy.com/display/CKPT/Non+Interactive+Events\nconst nonInteractiveEvents = [\n 'impression', 'experiment', 'load', 'apicall',\n 'split-test', 'redux', 'change', 'custom',\n 'impress', 'blur', 'view', 'applog', 'show',\n 'success', 'perf', 'loaded', 'clicktaleu', 'notify',\n 'clicktale', 'consent', 'timing'];\n\nclass AddEventHandlerTcc extends AddEventHandlerV1 {\n\n preProcess() {\n super.preProcess();\n this._setNonInteraction();\n }\n\n _setNonInteraction() {\n this.nonInteraction = nonInteractiveEvents.indexOf(this.data.ALL.type.toLowerCase()) !== -1;\n if (!this.nonInteraction) {\n setReferCookie(\n this.pageEvent.get('e_id'),\n this.pageEvent.get('usrin'),\n this.pageEvent.get('tcode'),\n this.pageEvent.get('ci'),\n this.pageEvent.get('tms'),\n // Client-side session identifier.\n this.pageEvent.get('corrid'));\n }\n }\n\n process() {\n super.process({\n GA: () => { this._handleGA(); }\n });\n }\n\n _handleGA() {\n // Send 'Event' record to Google Analytics\n sendGAPageEvent(this.pageEvent.get('e_id'), this.pageEvent.getProperties(), objectMerge(this.tData.getProperties(), this.extras), this.nonInteraction);\n }\n\n _setReferCookie(eid, usrin, tcode, ci, tms, corrid) {\n const dataProps = {};\n // delete refer cookie\n setCookie('tcc_refer', '', -1, '/');\n if (eid) {\n dataProps.refer_e_id = eid;\n }\n if (usrin) {\n dataProps.refer_usrin = usrin;\n }\n if (tcode) {\n dataProps.refer_tcode = tcode;\n }\n if (ci) {\n dataProps.refer_ci = ci;\n }\n if (tms) {\n dataProps.refer_tms = tms;\n }\n if (corrid) {\n dataProps.refer_corrid = corrid;\n }\n map(dataProps, () => {\n const encodedProperties = encodeProperties(dataProps);\n setCookie('tcc_refer', stringify(encodedProperties, '&', '='), 5, '/');\n return true;\n });\n }\n}\n\nexport default AddEventHandlerTcc;\n", "\nimport { error } from '@exp/exp-utils/helper/logger';\nimport { merge as objectMerge } from '@exp/exp-utils/helper/object';\nimport { getClickEventData as getBrowserClickEventData } from '@exp/exp-utils/helper/browser';\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { createEventProperties, addEventProperties, createTData } from '../../../../shared/src/traffic/eventProperties';\nimport { sendEvent } from '../../../../shared/src/traffic/eventSend';\n\nclass AddEventHandler extends SchemaHandler {\n process(sinkFnMap) {\n // Don't process event if event contains invalid characters\n if (!this._validateEIDCharacters(this.pageEvent.get('e_id'))) return;\n\n // Validate EID formating after ensuring event is not going to be dropped.\n this._validateEIDFormat(this.pageEvent.get('e_id'));\n\n super.process(\n objectMerge({\n EVENT_SVC: () => { this._handleEventSvc(); }\n }, sinkFnMap));\n }\n\n _handleEventSvc() {\n sendEvent(this.pageEvent.getProperties(), '/pageEvents.aspx', 'GET');\n }\n\n _validateEIDFormat(eId) {\n const validEID = /^([a-z0-9_\\-]+)\\.([a-z0-9_\\-]+)\\.(([a-z0-9_\\/\\-]+)\\.)?([a-z0-9_\\/\\-]+)\\.([a-z0-9_\\-]+)\\.([a-z0-9_\\-]+)$/g;\n const isValid = eId && eId.match(validEID) && eId.length <= 500;\n if (!isValid) {\n error('Invalid e_ID naming syntax for', eId, 'See', 'https://confluence.godaddy.com/display/CKPT/Event+Naming+and+Formats');\n }\n return !!isValid;\n }\n\n _validateEIDCharacters(eId) {\n const invalidCharacters = /[^a-z0-9\\_\\/\\.\\-]/g;\n const hasInvalidCharacters = eId && eId.match(invalidCharacters);\n if (hasInvalidCharacters) {\n error(`Invalid characters in e_ID: ${eId} The event has been DROPPED. See https://confluence.godaddy.com/display/CKPT/Event+Naming+and+Formats`);\n }\n\n return !hasInvalidCharacters;\n }\n\n preProcess() {\n this.tData = createTData(this.data);\n\n // Some pages might still be using the deprecated property \"properties\" as custom properties\n this.tData.merge(this.data.ALL.properties);\n\n this.pageEvent = createEventProperties('page.event', this.tData);\n addEventProperties(this.pageEvent, this.data.ALL.type);\n\n // We will only accept the dom_element and dom_event in the v1 schema\n this.pageEvent.merge(getBrowserClickEventData(this.data.ALL.dom_element, this.data.ALL.dom_event));\n\n // in the v2 schema, the click event data is supplied as a property\n this.pageEvent.merge({\n href: this.data.ALL.href,\n tcode: this.data.ALL.tcode,\n tms: this.data.ALL.tms,\n ci: this.data.ALL.ci\n });\n\n // override dom element attributes with those passed in.\n if (this.data.ALL.eid) {\n this.pageEvent.set('e_id', this.data.ALL.eid);\n }\n\n // Use event_label provided from schema (if provided) before one provided in tdata (if provided)\n const eventLabel = this.data.ALL.event_label || this.tData.getProperties().event_label;\n if (eventLabel) {\n this.pageEvent.set('event_label', eventLabel);\n }\n\n // Convert EID to lower case characters\n this.pageEvent.set('e_id', this.pageEvent.get('e_id').toLowerCase());\n\n // Merge datalayer extras, which includes an identifier to\n // correlate the hit between downstream systems (hit_id)\n this.pageEvent.merge(this.extras);\n }\n}\n\nexport default AddEventHandler;\n", "import SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\nimport { merge } from '@exp/exp-utils/helper/object';\n\nimport trackingValues from '@tcc/shared/src/traffic/trackingValues';\n\nimport experimentTracker from '../experimentTracking';\n\nconst eidPrefix = 'traffic.tcc.instrumentation';\n\nclass AddExperimentAssignmentHandler extends SchemaHandler { // eslint-disable-line id-length\n\n preProcess() {}\n\n process() {\n super.process({\n ALL: (input) => { this._handle(input); }\n });\n }\n\n _handle(input) {\n // call the 'add_event' schema\n this.schemaHelper.handleSchema('add_event', undefined, 'v1', {\n type: 'experiment',\n eid: `${eidPrefix}.experiment.add_experiment`,\n // Merge to properties rather than custom_properties UNTIL getVariantForExperiment is ripped out of TCC\n properties: merge({\n experiment_type: this.schemaType || input.experiment_type,\n experiment_id: input.experiment_id,\n experiment_source: input.experiment_source,\n variant_id: input.variant_id,\n content_id: input.content_id\n // Custom properties are only mapped to the event service sink rather than GA's input, however,\n // we reuse them for GA here as part of building custom dimensions.\n }, this.sinks.includes('EVENT_SVC') ? this.data.EVENT_SVC.custom_properties : {})\n },\n this.extras,\n // this schema's sinks will override add_event's sinks\n this.sinks);\n\n experimentTracker.set(input.experiment_id, input.variant_id);\n trackingValues.set('experiments', experimentTracker.getProperties());\n }\n}\n\nexport default AddExperimentAssignmentHandler;\n", "import { merge as objectMerge } from '@exp/exp-utils/helper/object';\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { validateEid } from '@tcc/shared/src/experiments/experimentSchemaTransforms';\n\nimport { sendEcommerceEvent as sendGaEcommerceEvent } from '../../ga/ga';\nimport { createTData } from '@tcc/shared/src/traffic/eventProperties';\n\nclass AddPromotionHandler extends SchemaHandler {\n process() {\n super.process({\n EVENT_SVC: (input) => { this._handleEventSvc(input); },\n GA: (input) => { this._handleGA(input); }\n });\n }\n\n preProcess() {\n if (this.schemaType === 'click') {\n this.eid = 'traffic.tcc.instrumentation.internal_promotion.click';\n this.event_category = 'internal_promotion_click';\n this.gaType = 'select_content';\n } else if (this.schemaType === 'impression') {\n this.eid = 'traffic.tcc.instrumentation.internal_promotion.impression';\n this.event_category = 'internal_promotion_impression';\n this.gaType = 'view_promotion';\n }\n this.tData = createTData(this.data);\n }\n\n _handleGA(input) {\n const filterMap = objectMerge(this.tData.getProperties(), this.extras);\n const gaData = objectMerge(this.extras, input, {\n eid: this.eid,\n event_category: this.event_category });\n sendGaEcommerceEvent(this.gaType, gaData, filterMap);\n }\n\n _logTrafficEvent(type, input) {\n try {\n // will throw an exception if the eid is not provided as a parameter or\n // within the provided dom_element\n validateEid(input);\n\n const addEventVersion = this.schemaVersion === 'v1' ? 'v1' : 'v2';\n // call the 'add_event' schema\n this.schemaHelper.handleSchema(\n 'add_event',\n undefined,\n addEventVersion,\n objectMerge({ type: type }, input),\n this.extras,\n // only send traffic as the output group, else another GA hit would be fired\n ['EVENT_SVC']);\n } catch (error) {\n // No need to do anything here. For \"add_promotion\", eid is not required.\n // We simply won't send the record to GA if the eid is not provided.\n }\n }\n\n _handleEventSvc(input) {\n if (input.promotions) {\n for (let i = 0; i < input.promotions.length; i++) {\n this._logTrafficEvent(this.schemaType, input.promotions[i]);\n }\n } else {\n this._logTrafficEvent(this.schemaType, input);\n }\n }\n}\n\nexport default AddPromotionHandler;\n", "import { merge as objectMerge } from '@exp/exp-utils/helper/object';\n\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\nimport { sendEvent } from '../../../../shared/src/traffic/eventSend';\n\nimport { sendEcommerceEvent as sendGaEcommerceEvent } from '../../ga/ga';\nimport { sendEcommerceEvent as sendTealiumEcommerceEvent } from '../../tealium/tealium';\nimport { createEventProperties, addEventProperties, createTData } from '../../../../shared/src/traffic/eventProperties';\n\nlet _isDuplicatePurchase = false;\n\nclass AddEcommEventHandler extends SchemaHandler {\n preProcess() {\n if (this.schemaType === 'purchase') {\n if (_isDuplicatePurchase) {\n throw 'cmd: LogEcommEvent duplicate purchase event detected, ignoring duplicate';\n }\n _isDuplicatePurchase = true;\n }\n\n this._buildEvent();\n }\n\n process() {\n super.process({\n TEALIUM: (input) => { this._handleTealium(input); },\n GA: (input) => { this._handleGA(input); },\n EVENT_SVC: (input) => { this._handleEventSvc(input); }\n });\n }\n\n _handleTealium(input) {\n sendTealiumEcommerceEvent(this.schemaType, input);\n }\n\n _handleGA(input) {\n sendGaEcommerceEvent(this.schemaType, input, objectMerge(this.tData.getProperties(), this.extras));\n }\n\n _handleEventSvc(input) {\n sendEvent(objectMerge(this.pageEvent.getProperties(), input), '/pageEvents.aspx', 'GET');\n }\n\n _buildEvent() {\n this.tData = createTData(this.data);\n\n // In order to maintain purchase events going to legacy, we need to use 'page.event' when sending purchase events\n // However, lets use the current schema type when this is not an event which needs to go to legacy.\n this.pageEvent = createEventProperties(this.schemaType === 'purchase' ?\n 'page.event' : this.schemaType, this.tData);\n\n addEventProperties(this.pageEvent, 'ecommerce');\n\n // Merge datalayer extras, which includes an identifier to\n // correlate the hit between downstream systems (hit_id)\n this.pageEvent.merge(this.extras);\n }\n}\n\nconst _setDuplicatePurchaseFlag = (value) => {\n _isDuplicatePurchase = value;\n};\n\nexport default AddEcommEventHandler;\n\n// Private exports for testing\nexport { _setDuplicatePurchaseFlag };\n", "import AddPageRequestV1 from '@tcc/shared/src/experiments/handlers/addPageRequest';\n\nimport { sendPageView as sendGaPageView } from '../../ga/ga';\nimport { merge } from '@exp/exp-utils/helper/object';\n\nclass AddPageRequestTcc extends AddPageRequestV1 {\n process() {\n super.process({\n GA: (input) => { this._handleGA(input); }\n });\n }\n\n _handleGA(input) {\n // Send 'Page View' record to Google Analytics\n sendGaPageView(input.virtual_path, merge(this.tData.getProperties(), this.extras));\n }\n}\n\nexport default AddPageRequestTcc;\n", "import { debug } from '@exp/exp-utils/helper/logger';\n\nimport { getWindow, getDocument, formatPageName } from '@exp/exp-utils/helper/browser';\nimport { getCookieValues, setCookie } from '@exp/exp-utils/helper/cookie';\nimport { getCleanQueryString } from '@exp/exp-utils/helper/url';\nimport { merge as objectMerge } from '@exp/exp-utils/helper/object';\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { sendEvent } from '../../../../shared/src/traffic/eventSend';\nimport page from '../../../../shared/src/traffic/eventPageProperties';\n\nimport { createEventProperties, createTData } from '../../../../shared/src/traffic/eventProperties';\n\nlet lastPathName;\n\nclass AddPageRequestHandler extends SchemaHandler {\n process(sinkFnMap) {\n super.process(objectMerge({\n EVENT_SVC: () => { this._handleEventSvc(); }\n }, sinkFnMap));\n\n }\n\n _handleEventSvc() {\n sendEvent(page.getProperties(), '/image.aspx', 'GET');\n }\n\n _getViewProperties() {\n const v = {};\n const win = getWindow();\n const doc = getDocument();\n\n v.browx = win.innerWidth ? win.innerWidth : doc.body.offsetWidth;\n v.browy = win.innerHeight ? win.innerHeight : doc.body.offsetHeight;\n v.resx = win.screen.width;\n v.resy = win.screen.height;\n v.cdepth = win.screen.colorDepth;\n\n return v;\n }\n\n preProcess() {\n\n // Build tData object\n this.tData = createTData(this.data);\n\n // Add generic event properties\n page.merge(createEventProperties('page.request', this.tData));\n\n let pathname = this.data.ALL.virtual_path;\n\n if (typeof (pathname) === 'undefined') {\n // Send just the pathname to Traffic unless a virtual page was specified\n pathname = getWindow().location.pathname;\n } else {\n page.set('virtual_path', pathname);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n debug('cmd: LogPageRequest invoked with path', pathname);\n }\n\n if (lastPathName === pathname) {\n throw 'cmd: LogPageRequest duplicate page request detected, ignoring duplicate path';\n }\n lastPathName = pathname;\n\n page.set('page', formatPageName(pathname));\n page.set('hw', getWindow().history.length);\n\n // merge properties from browser view stats\n page.merge(this._getViewProperties());\n\n // get query string from URL\n const qs = getCleanQueryString();\n if (qs) {\n page.set('querystring', qs);\n }\n\n page.merge(getCookieValues('tcc_refer'));\n setCookie('tcc_refer', '', -1, '/');\n\n // Merge datalayer extras, which includes an identifier to\n // correlate the hit between downstream systems (hit_id)\n page.merge(this.extras);\n }\n}\n\nexport default AddPageRequestHandler;\n", "import SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nclass AddImpressionHandler extends SchemaHandler {\n process() {\n super.process({\n ALL: () => { this._handle(); }\n });\n }\n\n _handle() {\n // call the 'add_event' schema\n\n const addEventVersion = this.schemaVersion === 'v1' ? 'v1' : 'v2';\n this.schemaHelper.handleSchema('add_event', undefined, addEventVersion, {\n type: 'impression',\n eid: this.data.ALL.eid,\n properties: this.data.ALL.properties,\n custom_properties: this.data.EVENT_SVC.custom_properties,\n dom_element: this.data.ALL.dom_element\n },\n this.extras,\n // this schema's sinks will override add_event's sinks\n this.sinks);\n }\n}\n\nexport default AddImpressionHandler;\n", "import { merge as objectMerge } from '@exp/exp-utils/helper/object';\nimport { getWindow as getBrowserWindow } from '@exp/exp-utils/helper/browser';\n\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nclass AddVirtualPagePerfHandler extends SchemaHandler {\n process() {\n super.process({\n ALL: (input) => { this._handle(input); }\n });\n }\n\n _handle(input) {\n // call the 'add_perf' schema\n this.schemaHelper.handleSchema('add_perf', undefined, 'v1', {\n type: 'pageperf',\n properties: objectMerge(input.timing_metrics, {\n nav_type: 'soft',\n page: input.virtual_path }),\n custom_properties: this.data.EVENT_SVC.custom_properties\n },\n this.extras,\n // this schema's sinks will override add_perf's sinks\n this.sinks);\n\n // Set a performance mark if name is provided and an error did not occur while processing\n // the virtual perf event.\n const w = getBrowserWindow();\n if (input.perf_mark_name && w.performance && w.performance.mark) {\n w.performance.mark(input.perf_mark_name);\n }\n }\n}\n\nexport default AddVirtualPagePerfHandler;\n", "import SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport page from '@tcc/shared/src/traffic/eventPageProperties';\n\nimport { getClientId } from '../../ga/tracker';\n\nimport experimentTracker from '../experimentTracking';\nimport VisitHelper from '../../helpers/visitHelperTcc';\n\nclass GetTrackingValuesHandler extends SchemaHandler {\n process() {\n super.process({\n ALL: () => { this._handle(); }\n });\n }\n\n _handle() {\n const obj = {};\n\n const visitHelper = new VisitHelper();\n const visitInfo = visitHelper.getVisitInfo();\n\n obj.vg = visitInfo.visitGuid;\n obj.vtg = visitInfo.visitorGuid;\n\n // An identifier used to tie together page request and page events. This value changes with every page request.\n obj.corrid = page.get('corrid');\n\n // KVP of all experiment/variant IDs\n obj.experiments = experimentTracker.getProperties();\n\n // Map GA client ID\n obj.gauid = getClientId();\n\n if (typeof this.data.ALL.callback === 'function') {\n this.data.ALL.callback(obj);\n }\n }\n}\n\nexport default GetTrackingValuesHandler;\n", "import { merge as objectMerge } from '@exp/exp-utils/helper/object';\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { sendPageEvent } from '../../ga/ga';\nimport { sendGenericConversion } from '../../tealium/tealium';\nimport { createTData } from '@tcc/shared/src/traffic/eventProperties';\n\nclass AddGenericConversion extends SchemaHandler {\n process() {\n super.process({\n TEALIUM: (input) => { this._handleTealium(input); },\n GA: (input) => { this._handleGA(input); },\n EVENT_SVC: (input) => { this._handleEventSvc(input); }\n });\n }\n\n _handleGA(input) {\n sendPageEvent(input.eid, input, objectMerge(this.extras, createTData(this.data).getProperties()), true);\n }\n\n _handleTealium(input) {\n sendGenericConversion(input);\n }\n\n _handleEventSvc(input) {\n this.schemaHelper.handleSchema(\n 'add_event',\n undefined,\n 'v1',\n objectMerge({ type: 'genConv' }, input),\n this.extras,\n // This call should only go to the event service\n // The current handler will handle calls to GA/Tealium\n ['EVENT_SVC']);\n }\n}\n\nexport default AddGenericConversion;\n", "import { error } from '@exp/exp-utils/helper/logger';\nimport SchemaHandler from '@exp/exp-utils/schema/schemaHandler';\n\nimport { getVariantId } from '../../splitio/splitio';\n\nclass GetVariantForExperimentHandler extends SchemaHandler { // eslint-disable-line id-length\n\n process() {\n super.process({\n ALL: (input) => { this._handleSplitio(input); }\n });\n }\n\n _handleSplitio(input) {\n error('The `get_variant_for_experiment` Traffic interface is being deprecated. Please migrate to the Hivemind SDK.', 'https://github.secureserver.net/hivemind/hivemind-onboarding#hivemind-sdks');\n getVariantId(input.experiment_id, input.attributes, input.traffic_type, input.configuration, ((variantId) => {\n input.callback(variantId);\n }).bind(this));\n }\n}\n\nexport default GetVariantForExperimentHandler;\n" ], "names": [ "webpackUniversalModuleDefinition", "root", "factory", "exports", "module", "define", "amd", "window", "installedModules", "__webpack_require__", "m", "__esModule", "_errorInit", "_logInit", "error", "info", "debug", "log", "undefined", "_environment", "_browser", "_len", "arguments", "length", "args", "Array", "_key", "console", "getWindow", "isProduction", "Function", "prototype", "bind", "call", "apply", "_len3", "_key3", "_len2", "_key2", "isDebug", "_config", "merge", "tcc.listenerDisabled", "tcc.manualPagePerf", "tcc.loadTTI", "tcc.eventDelayMs", "tcc.perfDelayMs", "tcc.consentDelayMs", "tcc.gaAccountDev", "tcc.gaAccountTest", "tcc.gaAccountProd", "tcc.buildEnv", "tcc.buildName", "tcc.buildVersion", "tcc.buildDate", "tcc.splitioUrl", "tcc.splitioApiKey", "tcc.ttiUrl", "_object", "SchemaHandler", "preProcess", "load", "schemaType", "schemaVersion", "sinks", "data", "extras", "this", "concat", "process", "sinkFnMap", "_this", "map", "sink", "fn", "indexOf", "schemaHelper", "_classCallCheck", "instance", "Constructor", "TypeError", "default", "PropertySet", "clear", "properties", "get", "name", "hasOwnProperty", "set", "value", "isSet", "delete", "getProperties", "fnIgnore", "returnProps", "_fnIgnore", "key", "mergeObject", "_cryptOrUndefined", "_getDelegationClaims", "_getInfoTokenClaim", "_getInfoTokenClaims", "getUserId", "updateAuthTokens", "isEmployee", "isDelegated", "isAuthenticated", "getShopperId", "getUserRealm", "getCustomerId", "getFederationPartnerId", "getEmployeeId", "getDelegateEmployeeId", "getDelegateCustomerId", "getClaimFromInfoToken", "_cookie", "_crypto", "_authInfoToken", "_authRealms", "_authRealmIdMap", "idp", "jomax", "_isTokenEmpty", "token", "Object", "keys", "realm", "claims", "cookieName", "cookie", "findCookie", "JSON", "parse", "err", "currentClaims", "del", "encrypt", "sha256", "getDelegateClaim", "claim", "auth", "delegationClaims", "tokenClaims", "type", "tokenType", "typ", "rVal", "authType", "subClaims", "claimName", "idClaimName", "jomaxToken", "fpid", "i", "infoToken", "iat", "_pageProperties", "trackingValues", "_logger", "_array", "getObjFromTDataString", "tDataString", "parseString", "TData", "setTDataString", "_PropertySet", "stringify", "cleanKeyNames", "result", "_typeof", "toString", "getObjFromTDataList", "tData", "isArray", "kvPair", "parseValue", "_guid", "VisitHelperTcc", "VisitHelper", "getVisitInfo", "visitorGuid", "getCookieValue", "visitGuid", "fbSessionTraffic", "S_TOUCH", "pathway", "createGuid", "V_DATE", "pc", "fbSessionCookieVal", "setCookie", "cookieVal", "config", "_interopRequireDefault", "obj", "_window", "DataLayer", "start", "loadAsyncCommands", "pushLog", "cmd", "logToArray", "dataLayerLog", "push", "loaded", "asyncCommands", "shift", "dataLayerName", "asyncDataLayer", "setWindowVar", "dataLayer", "_transformCjValues", "items", "forEach", "item", "cj", "calcPurchaseEid", "_", "siblings", "new_customer", "payment_pending", "new_vs_renewal", "cartType", "cart_type", "calcNewVsRenewal", "isNaN", "parseFloat", "order_total_new_usd", "order_total_renewal_usd", "newVsRenewal", "new-and-renewal-products", "new-product-only", "renewal-product-only", "unknown-products", "emptyStringForUndefined", "output", "filter", "filterLogType", "input", "substr", "getPackagesForGA", "pkgs", "pkgList", "package_id", "join", "transformForTealium", "values", "j", "transformForTealiumV2", "ecommItem", "unnestProperties", "validateEid", "eid", "getClickEventData", "dom_element", "dom_event", "e_id", "_experiments", "_performance", "_policy", "_ecomm", "_configManager", "_eventSend", "_experimentDataLayer", "_trafficDataLayer", "_eventListener", "_splitio", "_tealium", "_ga", "_tti", "_eventProperties", "initialized", "_tccInit", "observePerfMetrics", "loadHelper", "init", "getDocument", "readyState", "triggerOnLoad", "addEventListener", "initializeReferrer", "page", "initDatalayer", "registerOnLoadFn", "initGtag", "visitHelper", "initTealium", "initTTI", "_tccTrackingValues", "SchemaHelper", "experimentSchema", "handleOrderConfirmation", "getPerformanceData", "isSupported", "libraryLoaded", "writePolicyCookie", "doc", "visibilityState", "_schemaDefinitionBlocks", "handleSchema", "version", "inputData", "sinksOverride", "schemaDefinition", "SchemaDefinitionBlock", "commandSchemaDefinitions", "schema", "handler", "_pageLoadHelper", "LoadHelper", "_executeFn", "e", "_triggerOnLoad", "_loaded", "_onLoadFns", "isLoaded", "notLoadedCb", "v35", "sha1", "bytesToUuid", "hashfunc", "generateUUID", "namespace", "buf", "offset", "off", "stringToBytes", "str", "bytes", "unescape", "encodeURIComponent", "charCodeAt", "uuidToBytes", "uuid", "replace", "hex", "parseInt", "idx", "DNS", "URL", "byteToHex", "f", "s", "x", "y", "z", "ROTL", "n", "K", "H", "msg", "l", "N", "Math", "ceil", "M", "floor", "W", "t", "a", "b", "c", "d", "T", "cmdLogPageRequest", "cmdLogPageEvent", "cmdLog", "cmdGetTrackingValues", "cmdLogPagePerf", "cmdLogImpression", "pathname", "_expDataLayer", "virtual_path", "_tdata", "eventDesc", "usrin", "domElement", "domEvent", "custom_properties", "propertyObject", "callback", "schemaTransforms", "_valueTransformMap", "ALL", "EVENT_SVC", "TEALIUM", "_productPriceTransformMap", "_currencyTransformMap", "_itcTransformMap", "GA", "_allSchemaObj", "PropertyDefinitionBlock", "optional", "_experimentAssignmentObj", "required", "ObjectDefinitionBlock", "substitute", "_eventObjV2", "_eventObjV1", "_promotionObj", "eventObj", "_ecommEidObj", "staticEid", "CalculatedDefinitionBlock", "transform", "transformKeys", "_cartTypeProperty", "_productObj", "_cartProductObj", "itemExtensions", "CollectionDefinitionBlock", "extend", "_purchaseCommon", "_checkoutProductObj", "_baseProductObj", "_ecommProductObj", "_ecommPackageObj", "_getVariantForExpObj", "_experimentAssignmentSchema", "AddExperimentAssignment", "_promoClickSchema", "AddPromotion", "promotions", "_promoImpressionSchema", "_addEventSchema", "AddEventHandlerTcc", "_addImpressionSchema", "AddImpression", "add_event", "v1", "v2", "add_generic_conversion", "AddGenericConversion", "doNotOutput", "area", "product", "revenue", "action", "add_impression", "add_page_request", "AddPageRequestTcc", "add_virtual_page_perf", "AddVirtualPagePerf", "add_page_perf", "AddPagePerfHandler", "add_perf", "AddPerfHandler", "get_tracking_values", "GetTrackingValues", "get_variant_for_experiment", "GetVariantForExperiment", "add_experiment", "add_experiment_assignment", "add_promotion", "add_ecomm_event", "AddEcommEvent", "_this2", "_SchemaHandler", "_handleEventSvc", "sendEvent", "pageEvent", "createEventProperties", "createTData", "addEventProperties", "nav_type", "_url", "_visit", "nonInteractiveEvents", "AddEventHandlerV1", "_AddEventHandlerV", "_setNonInteraction", "nonInteraction", "toLowerCase", "setReferCookie", "_handleGA", "sendPageEvent", "_setReferCookie", "tcode", "ci", "tms", "corrid", "dataProps", "refer_e_id", "refer_usrin", "refer_tcode", "refer_ci", "refer_tms", "refer_corrid", "encodedProperties", "encodeProperties", "AddEventHandler", "_validateEIDCharacters", "_validateEIDFormat", "eId", "isValid", "match", "hasInvalidCharacters", "href", "eventLabel", "event_label", "AddExperimentAssignmentHandler", "_handle", "eidPrefix", "experiment_type", "experiment_id", "experiment_source", "variant_id", "content_id", "includes", "experimentTracker", "_experimentSchemaTransforms", "AddPromotionHandler", "event_category", "gaType", "filterMap", "gaData", "sendEcommerceEvent", "_logTrafficEvent", "addEventVersion", "_isDuplicatePurchase", "AddEcommEventHandler", "_buildEvent", "_handleTealium", "_setDuplicatePurchaseFlag", "AddPageRequestV1", "_AddPageRequestV", "sendPageView", "lastPathName", "AddPageRequestHandler", "_getViewProperties", "v", "win", "browx", "innerWidth", "body", "offsetWidth", "browy", "innerHeight", "offsetHeight", "resx", "screen", "width", "resy", "height", "cdepth", "colorDepth", "location", "formatPageName", "history", "qs", "getCleanQueryString", "getCookieValues", "AddImpressionHandler", "AddVirtualPagePerfHandler", "timing_metrics", "w", "perf_mark_name", "performance", "mark", "_tracker", "GetTrackingValuesHandler", "visitInfo", "vg", "vtg", "experiments", "gauid", "getClientId", "sendGenericConversion", "GetVariantForExperimentHandler", "_handleSplitio", "getVariantId", "attributes", "traffic_type", "configuration", "variantId", "getter", "o", "defineProperty", "enumerable", "r", "Symbol", "toStringTag", "mode", "ns", "create", "object", "property", "p", "moduleId", "modules" ], "mappings": "CAAA,SAAAA,EAAAC,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,QAAAA,OAAAC,IACAD,OAAA,MAAA,GAAAH,GACA,iBAAAC,QACAA,QAAA,OAAAD,IAEAD,EAAA,OAAAC,IARA,CASCK,OAAA,WACD,OCTAC,EAAA,GA4BAC,EAAAC,wsJC3BAP,EAAAQ,YAAA,EACAR,EAAAS,WAAAT,EAAAU,SAAAV,EAAAW,MAAAX,EAAAY,KAAAZ,EAAAa,MAAAb,EAAAc,IAAAC,UAEA,IAAAC,EAAmBV,EAAQ,IAE3BW,EAAeX,EAAQ,GAEvBI,EAAA,WACA,IAAA,IAAAQ,EAAAC,UAAAC,OAAAC,EAAAC,MAAAJ,GAAAK,EAAA,EAAiEA,EAAAL,EAAaK,IAC9EF,EAAAE,GAAAJ,UAAAI,GAGA,IAAAC,GAAA,EAAAP,EAAAQ,aAAAD,QACA,QAAA,EAAAR,EAAAU,iBAAAF,GAAAA,EAAAV,IACAa,SAAAC,UAAAC,KACAF,SAAAC,UAAAC,KAAAC,KAAAN,EAAAV,IAAAU,GAEA,WACAG,SAAAC,UAAAG,MAAAD,KAAAN,EAAAV,IAAAU,EAAAH,IAGA,cAGAP,EAAAJ,IAYAD,EAAA,WACA,IAAA,IAAAuB,EAAAb,UAAAC,OAAAC,EAAAC,MAAAU,GAAAC,EAAA,EAAoEA,EAAAD,EAAeC,IACnFZ,EAAAY,GAAAd,UAAAc,GAGA,IAAAT,GAAA,EAAAP,EAAAQ,aAAAD,QACA,QAAA,EAAAR,EAAAU,iBAAAF,GAAAA,EAAAb,MACAgB,SAAAC,UAAAC,KACAF,SAAAC,UAAAC,KAAAC,KAAAN,EAAAb,MAAAa,GAEA,WACAG,SAAAC,UAAAG,MAAAD,KAAAN,EAAAb,MAAAa,EAAAH,IAGA,cAGAV,EAAAF,IAEAT,EAAAc,IAAAA,EACAd,EAAAa,MA9BA,WACA,IAAA,IAAAqB,EAAAf,UAAAC,OAAAC,EAAAC,MAAAY,GAAAC,EAAA,EAAoEA,EAAAD,EAAeC,IACnFd,EAAAc,GAAAhB,UAAAgB,IAGA,EAAAnB,EAAAoB,YACAtB,EAAAiB,MAAA,KAAAV,IAyBArB,EAAAY,KAAAE,EACAd,EAAAW,MAAAA,EAIAX,EAAAU,SAAAA,EACAV,EAAAS,WAAAA,gDCjEA,0DAAAH,EAAA,KAEA+B,EAAAA,QAAQC,MAAM,CACZC,wBAAwB,EACxBC,sBAAsB,EACtBC,eAAe,EAEfC,mBAAoB,GACpBC,kBAAmB,IACnBC,qBAAsB,IAEtBC,mBAAoB,iBACpBC,oBAAqB,iBACrBC,oBAAqB,iBAErBC,eAAgB,aAChBC,gBAAiB,WACjBC,mBAAoB,SACpBC,gBAAiB,2BACjBC,iBAAkB,8EAClBC,oBAAqB,uCACrBC,aAAc,sFAGDjB,EAAAA,sCCtBfrC,EAAAQ,YAAA,EAEA,IAAA+C,EAAcjD,EAAQ,GAItB,IAAAkD,GAUAA,EAAA5B,UAAA6B,WAAA,aAEAD,EAAA5B,UAAA8B,KAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAC,KAAAL,WAAAA,EACAK,KAAAJ,cAAAA,EACAI,KAAAH,MAAA,CAAA,OAAAI,OAAAJ,GACAG,KAAAF,KAAAA,EACAE,KAAAD,OAAAA,GAAA,GACAC,KAAAP,aACAO,KAAAE,WAGAV,EAAA5B,UAAAsC,QAAA,SAAAC,GACA,IAAAC,EAAAJ,KAEAA,KAAAH,OAAA,EAAAG,KAAAH,MAAAzC,SACA,EAAAmC,EAAAc,KAAAF,EAAA,SAAAG,EAAAC,IACAH,EAAAP,MAAAW,QAAAF,IACAC,EAAAH,EAAAN,KAAAQ,OAMAd,GAjCA,SAAAA,EAAAiB,IAHA,SAAAC,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,MAAA,IAAAC,UAAA,qCAI3FH,CAAAV,KAAAR,GAEAQ,KAAAS,aAAAA,EAiCAzE,EAAA8E,QAAAtB,syFC3CAxD,EAAAQ,YAAA,EAEA,IAAA+C,EAAcjD,EAAQ,GAItB,IAAAyE,GAOAA,EAAAnD,UAAAoD,MAAA,WACAhB,KAAAiB,WAAA,IAGAF,EAAAnD,UAAAsD,IAAA,SAAAC,GACA,GAAAnB,KAAAiB,WAAAG,eAAAD,GACA,OAAAnB,KAAAiB,WAAAE,IAIAJ,EAAAnD,UAAAyD,IAAA,SAAAF,EAAAG,GACAtB,KAAAiB,WAAAE,GAAAG,GAGAP,EAAAnD,UAAA2D,MAAA,SAAAJ,GACA,GAAAnB,KAAAiB,WAAAG,eAAAD,GACA,OAAA,GAIAJ,EAAAnD,UAAA4D,OAAA,SAAAL,UACAnB,KAAAiB,WAAAE,IAGAJ,EAAAnD,UAAA6D,cAAA,SAAAC,GACA,IAAAC,EAAA,GACAC,EAAA,WACA,OAAA,GAWA,OATAF,GAAA,mBAAAA,IACAE,EAAAF,IAEA,EAAAnC,EAAAc,KAAAL,KAAAiB,WAAA,SAAAY,EAAAP,GACAM,EAAAC,KAGAF,EAAAE,GAAAP,KAEAK,GAGAZ,EAAAnD,UAAAU,MAAA,SAAA2C,GACA,IAAAb,EAAAJ,KAEA8B,EAAAb,EACAa,aAAAf,IACAe,EAAAb,EAAAQ,kBAEA,EAAAlC,EAAAc,KAAAyB,EAAA,SAAAD,EAAAP,GACAlB,EAAAiB,IAAAQ,EAAAP,MAIAP,GA3DA,SAAAA,EAAAE,IAHA,SAAAP,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,MAAA,IAAAC,UAAA,qCAI3FH,CAAAV,KAAAe,GAEAf,KAAAiB,WAAAA,GAAA,GA2DAjF,EAAA8E,QAAAC,gCCrEA/E,EAAAQ,YAAA,EACAR,EAAA+F,kBAAA/F,EAAAgG,qBAAAhG,EAAAiG,mBAAAjG,EAAAkG,oBAAAlG,EAAAmG,UAAAnG,EAAAoG,iBAAApG,EAAAqG,WAAArG,EAAAsG,YAAAtG,EAAAuG,gBAAAvG,EAAAwG,aAAAxG,EAAAyG,aAAAzG,EAAA0G,cAAA1G,EAAA2G,uBAAA3G,EAAA4G,cAAA5G,EAAA6G,sBAAA7G,EAAA8G,sBAAA9G,EAAA+G,sBAAAhG,UAEA,IAAAiG,EAAc1G,EAAQ,GAEtB2G,EAAc3G,EAAQ,IAEtB4G,EAAA,GAEAC,EAAA,CAAA,MAAA,SAEAC,EAAA,CACAC,IAAA,iBACAC,MAAA,oBAGAC,EAAA,SAAAC,GACA,OAAAC,OAAAC,KAAAF,GAAApG,OAAA,GAIA8E,EAAA,SAAAyB,GACA,IAAAC,EAAA,GACAC,EAAA,QAAAF,EACAG,GAAA,EAAAd,EAAAe,YAAAF,GACA,GAAAC,EACA,IACAF,EAAAI,KAAAC,MAAAH,GACK,MAAAI,IAEL,OAAAN,GAoBArB,EAAA,WACA,OAAAgB,EAAAL,IAwCAlB,EAAA,SAAAA,EAAAmC,GACA,MAAA,QAAAA,EACAnC,EAAAmC,EAAAC,KAEAD,GAGApC,EAAA,SAAAsC,EAAA/C,GACA,OAAA+C,EAKA/C,GAEA,EAAA2B,EAAAqB,QAAAhD,QAFA,EAHAA,GAWAiD,EAAA,SAAAC,EAAAH,GACA,GAAA9B,KAEA,UADAW,EAAAuB,KACA,CACA,IAAAC,EAAA1C,EAAAkB,GACA,OAAAnB,EAAAsC,EAAAK,EAAAF,MAMA3B,EAAA,SAAAwB,GACA,OAAAE,EAAAnB,EAAAE,MAAAe,IA+BApC,EAAA,SAAAA,EAAA0C,EAAAH,EAAAI,GACA,IAAAC,EAAAF,EAAAG,IACA,QAAA,IAAAF,IAAAC,GAAAA,IAAAD,EAAA,CAIA,IAAAG,OAAA,EACAC,EAAAL,EAAAF,KAGA,GAAAO,GAAA,UAAAA,EAAA,CACA,IAAAC,EAAAN,EAAAK,GACAD,EAAA9C,EAAAgD,EAAAT,EAAAI,QAEAG,EAAAJ,EAAAH,GAGA,OAAAO,IA+EA/I,EAAA+G,sBA/BA,SAAAmC,GACA,GAAA3C,IACA,OAAAN,EAAAiB,EAAAgC,IA8BAlJ,EAAA8G,sBA3EA,SAAAuB,GACA,OAAAE,EAAA,WAAAF,IA2EArI,EAAA6G,sBAAAA,EACA7G,EAAA4G,cA5HA,SAAAyB,GACA,GAAA9B,IAAA,CACA,IAAAsC,EAAA3B,EAAA4B,IACAE,EAAA9B,EAAAuB,KACAU,EAAA/B,EAAAE,MAGA,GAAAuB,GAAA,UAAAA,EACA,OAAA9C,EAAAsC,EAAAnB,EAAAiC,IAIA,GAAAH,GAAA,UAAAA,GAAA,KAAAA,EAAA,GACA,OAAAnC,EAAAwB,GAIA,IAAAe,EAAAlD,EAAA,SACA,IAAAqB,EAAA6B,GACA,OAAArD,EAAAsC,EAAAe,EAAAD,MA0GAnJ,EAAA2G,uBA3BA,WACA,GAAAJ,IAAA,CACA,IAAA8C,EAAApD,EAAAiB,EAAA,QACA,IAAAmC,EAAA,CACA,IAAAR,EAAA3B,EAAA4B,SACA,IAAAD,IACAQ,GAAA,EAAArC,EAAAe,YAAA,SAAAc,IAGA,OAAAQ,IAmBArJ,EAAA0G,cA1EA,SAAA2B,GACA,GAAA9B,IAEA,OAAAR,EAAAsC,EAAApC,EAAAiB,EAAA,cAwEAlH,EAAAyG,aAZA,WACA,GAAAF,IACA,OAAAW,EAAA4B,KAWA9I,EAAAwG,aAlDA,SAAA6B,GACA,GAAA9B,KAEA,QADAW,EAAA4B,IAEA,OAAA/C,EAAAsC,EAAApC,EAAAiB,EAAA,oBA+CAlH,EAAAuG,gBAAAA,EACAvG,EAAAsG,YA5MA,WACA,IAAAC,IACA,OAAA,EAGA,IAAAyC,EAAA9B,EAAAuB,KACA,OAAAO,GAAA,UAAAA,GAuMAhJ,EAAAqG,WAjMA,WACA,IAAAE,IACA,OAAA,EAGA,IAAAsC,EAAA3B,EAAA4B,IACAE,EAAA9B,EAAAuB,KAEA,GAAAI,GAAA,UAAAA,EACA,OAAA,EAIA,GAAAG,GAAA,UAAAA,GAAA,KAAAA,EAAA,GACA,OAAA,EAIA,IAAAI,EAAAlD,EAAA,SACA,OAAAqB,EAAA6B,IA+KApJ,EAAAoG,iBAnOA,WAEA,IADA,IAAAoB,EAAA,GACA8B,EAAA,EAAiBA,EAAAnC,EAAA/F,OAAwBkI,IAAA,CACzC,IACAC,EAAArD,EADAiB,EAAAmC,KAIA/B,EAAAgC,KAAAhC,EAAAC,IAAAA,EAAAgC,IAAAD,EAAAC,OACAhC,EAAA+B,GAIArC,EAAAM,GAwNAxH,EAAAmG,UAvEA,SAAAkC,GACA,GAAA9B,IAAA,CACA,IAAAsC,EAAA3B,EAAA4B,IAOA,OAAA/C,EAAAsC,EAAApC,EAAAiB,EAHAE,EAAAyB,OAqEA7I,EAAAkG,oBAAAA,EACAlG,EAAAiG,mBAAAA,EACAjG,EAAAgG,qBAAAA,EACAhG,EAAA+F,kBAAAA,gDC9QA,IAAM0D,EAAkB,wDAFxBnJ,EAAA,IAE4ByE,mBAEb0E,03SCFf,IAAMC,EAAiB,wDAFvBpJ,EAAA,IAE2ByE,mBAEZ2E,urCCCfC,EAAArJ,EAAA,GACAsJ,EAAAtJ,EAAA,GACAiD,EAAAjD,EAAA,yDACAA,EAAA,IAEA,MAaMuJ,EAAwB,SAACC,GAC7B,OAAO,EAAAvG,EAAAwG,aAAYD,EAAa,IAAK,MAGjCE,mUAAcjF,EAAAA,qBAElBkF,wBAAeH,GACbI,EAAAtI,UAAMU,MAANR,KAAAkC,KAAY6F,EAAsBC,iBAGpCK,qBACE,IAAMlF,EAAajB,KAAKyB,iBACxB,EAAAlC,EAAA6G,eAAcnF,EAAY,IAAK,KAE/B,IAAMoF,GAAS,EAAA9G,EAAA4G,WAAUlF,EAAY,IAAK,KAE1C,GAAIoF,EACF,OAAOA,eAIXhF,aAAIF,EAAMG,GACa,iBAAjB,IAAOA,EAAP,YAAAgF,EAAOhF,KAAkD,sBAA5B,GAAGiF,SAASzI,KAAKwD,GAChD4E,EAAAtI,UAAMyD,IAANvD,KAAAkC,KAAUmB,EAAMG,IAEhB,EAAAqE,EAAAhJ,OAAA,mIAAyIwE,EAAzI,aAA0JG,EAA1J,kBAAA,IAAkLA,EAAlL,YAAAgF,EAAkLhF,IAAlL,iVAKS0E,IAEbQ,oBA7C0B,SAACC,GAC3B,IAAMJ,EAAS,GACf,IAAI,EAAAT,EAAAc,SAAQD,GACV,IAAK,IAAInB,EAAI,EAAGA,EAAImB,EAAMrJ,OAAQkI,IAAK,CACrC,IAAMqB,EAASF,EAAMnB,IACjB,EAAAM,EAAAc,SAAQC,KACVN,EAAOM,EAAO,KAAM,EAAApH,EAAAqH,YAAWD,IAIrC,OAAON,KAoCPR,sBAAAA,gDCxDF,IAAA7C,EAAA1G,EAAA,GACAiD,EAAAjD,EAAA,GACAuK,EAAAvK,EAAA,0DAEAA,EAAA,WAEMwK,mUAAuBC,EAAAA,qBAE3BC,wBACE,IAAIC,GAAc,EAAAjE,EAAAkE,gBAAe,UAAW,OACxCC,GAAY,EAAAnE,EAAAkE,gBAAe,oBAAqB,WAEpD,QAA2B,IAAfC,EAA4B,CAMtC,IAAMC,EAAmB,CACvBC,QAAS,GACTC,QAPFH,GAAY,EAAAN,EAAAU,cAQVC,OAAQ,GACRC,GAAI,KAGAC,GAAqB,EAAAnI,EAAA4G,WAAUiB,EAAkB,IAAK,MAC5D,EAAApE,EAAA2E,WAAU,UAAWR,EAAW,GAAI,MACpC,EAAAnE,EAAA2E,WAAU,oBAAqBD,EAAoB,GAAI,KAEzD,QAA6B,IAAjBT,EAA8B,CAGxC,IAAMW,EAAAA,QAFNX,EAAcE,IAGd,EAAAnE,EAAA2E,WAAU,UAAWC,EAAW,OAAQ,KAE1C,MAAO,CACLX,YAAAA,EACAE,UAAAA,8UAKSL,0lFCxCf9K,EAAAQ,YAAA,EAaA,IAAAqL,EAAA,IAPA,SAAAC,EAAAC,GAAsC,OAAAA,GAAAA,EAAAvL,WAAAuL,EAAA,CAAuCjH,QAAAiH,GAF7ED,CAFgBxL,EAAQ,IAWxBwE,SAEA9E,EAAA8E,QAAA+G,+pUCfA7L,EAAAQ,YAAA,EAEA,IAAAS,EAAeX,EAAQ,GAEvB0L,EAAc1L,EAAQ,IAEtBsJ,EAAatJ,EAAQ,GAEPA,EAAQ,GAItB,IAAA2L,GAqBAA,EAAArK,UAAAsK,MAAA,WAEAlI,KAAAmI,qBAGAF,EAAArK,UAAAwK,QAAA,SAAAC,IAIA,EAAAzC,EAAA0C,YAAAtI,KAAAuI,aAAAF,IAMAJ,EAAArK,UAAAsC,QAAA,aAEA+H,EAAArK,UAAA4K,KAAA,SAAAH,GAEArI,KAAAyI,OAGAzI,KAAAE,QAAAmI,GAFArI,KAAA0I,cAAAF,KAAAH,IAMAJ,EAAArK,UAAAuK,kBAAA,WACA,KAAA,EAAAnI,KAAA0I,cAAAtL,QACA4C,KAAAE,QAAAF,KAAA0I,cAAAC,SAEA3I,KAAAyI,QAAA,GAGAR,GArDA,SAAAA,EAAAW,IAHA,SAAAlI,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,MAAA,IAAAC,UAAA,qCAI3FH,CAAAV,KAAAiI,GAEAjI,KAAA4I,cAAAA,EACA5I,KAAAuI,aAAA,GACAvI,KAAA0I,cAAA,GAKA,IAAAG,GAJA7I,KAAAyI,QAAA,EAIAxL,EAAAQ,aAAAuC,KAAA4I,eACAC,IACA7I,KAAA0I,cAAAG,IAIA,EAAAb,EAAAc,cAAA9I,KAAA4I,cAAA5I,MACAA,KAAA+I,WAAA,EAAA9L,EAAAQ,aAAAuC,KAAA4I,eAuCA5M,EAAA8E,QAAAmH,y4CCvEA,IAAAhL,EAAAX,EAAA,GACAiD,EAAAjD,EAAA,GAqCM0M,EAAqB,SAAClJ,GAC1B,GAAKA,EAAKmJ,MAoBV,MAlBA,CACE,aACA,oBACA,oBACAC,QAAQ,SAAC/H,GAGTrB,EAAK,MAAQqB,GAAQ,GAGrBrB,EAAKmJ,MAAMC,QAAQ,SAACC,GACF,SAAZA,EAAKC,IACPtJ,EAAK,MAAQqB,GAAMqH,KAAKW,EAAKhI,QAM5BrB,KA4GPuJ,gBAtBsB,SAACC,EAAGC,GAC1B,GAAKA,EAASC,cAAiBD,EAASE,iBAAoBF,EAASG,eAArE,CAGA,IAAMC,EAAWJ,EAASK,UAAYL,EAASK,UAAY,eAG3D,MAAA,+BAF8C,SAA1BL,EAASC,aAA0B,gBAAkB,uBACrB,SAA7BD,EAASE,gBAA6B,mBAAqB,sBACdF,EAASG,eAA7E,IAA+FC,EAA/F,eAgBAE,iBA3CuB,SAACP,EAAGC,GAC3B,IAAIO,MAAMC,WAAWR,EAASS,wBAAyBF,MAAMC,WAAWR,EAASU,0BAAjF,CAIA,IAAIC,OAAAA,EAWJ,OAVA,EAAA3K,EAAAc,KAAU,CACR8J,2BAAwE,EAA3CJ,WAAWR,EAASS,sBAA2E,EAA/CD,WAAWR,EAASU,yBACjGG,mBAAgE,EAA3CL,WAAWR,EAASS,sBAA6E,IAAjDD,WAAWR,EAASU,yBACzFI,uBAAsE,IAA7CN,WAAWR,EAASS,sBAA6E,EAA/CD,WAAWR,EAASU,yBAC/FK,mBAAkE,IAA7CP,WAAWR,EAASS,sBAA+E,IAAjDD,WAAWR,EAASU,0BAC1F,SAACpI,EAAKP,IACO,IAAVA,IACF4I,EAAerI,KAGZqI,MA4BPK,wBApK8B,SAACC,GAM/B,OALA,EAAAjL,EAAAc,KAAUmK,EAAQ,SAACC,GACa,oBAAnBD,EAAOC,KAChBD,EAAOC,GAAU,MAGdD,KA+JPE,cA5JoB,SAACC,GACrB,OAAsB,GAAfA,EAAMvN,OAAcuN,EAAMC,OAAO,EAAG,IAAMD,GAAS,MA4J1DE,iBAzJuB,SAAC/K,GACxB,IAAKA,EAAKgL,KAAM,OAAOhL,EAGvB,IADA,IAAMiL,EAAU,GACPzF,EAAI,EAAGA,EAAIxF,EAAKgL,KAAK1N,OAAQkI,IAChCxF,EAAKgL,KAAKxF,GAAG0F,YACfD,EAAQvC,KAAK1I,EAAKgL,KAAKxF,GAAG0F,YAU9B,cALOlL,EAAKgL,KAGZhL,EAAKkL,WAAaD,EAAQE,KAAK,KAExBnL,KA0IPoL,oBA3G0B,SAACpL,GAG3B,IAFA,IAAMqL,EAASrL,EAAKmJ,OAASnJ,EAAKgL,KAEzBxF,EAAI,EAAGA,EAAI6F,EAAO/N,OAAQkI,IAEjC,IADA,IAAM5B,EAAOD,OAAOC,KAAKyH,EAAO7F,IACvB8F,EAAI,EAAGA,EAAI1H,EAAKtG,OAAQgO,IAAK,CACpC,IAAMvJ,EAAM6B,EAAK0H,GACjBtL,EAAK+B,GAAO/B,EAAK+B,IAAQ,GACzB,IAAMP,EAAQ6J,EAAO7F,GAAGzD,QACH,IAAVP,GACTxB,EAAK+B,GAAK2G,KAAKlH,GAQrB,OAFCxB,EAAKmJ,aAAgBnJ,EAAKmJ,aAAenJ,EAAKgL,KAExChL,KA0FPuL,sBAtF4B,SAACvL,GAC7B,IAAMqL,EAASrL,EAAKmJ,OAASnJ,EAAKgL,KAmBlC,OAhBAK,EAAOjC,QAAQ,SAACoC,GACd7H,OAAOC,KAAK4H,GAAWpC,QAAQ,SAACrH,GAC9B/B,EAAK+B,GAAO/B,EAAK+B,IAAQ,GACzB/B,EAAK+B,GAAK2G,KAAK8C,EAAUzJ,IAAQ,QAKrCmH,EAAmBlJ,GAGnB,CAAC,QAAS,OAAQ,cAAcoJ,QAAQ,SAACrH,GACnC/B,EAAK+B,KAASsJ,UAAerL,EAAK+B,YAEjC/B,EAAKsJ,GAELtJ,KAmEPyL,iBA9DuB,SAACzL,GACxB,OAAKA,EAAKmB,aAEVwC,OAAOC,KAAK5D,EAAKmB,YAAYiI,QAAQ,SAACrH,GACpC/B,EAAK+B,GAAO/B,EAAKmB,WAAWY,IAAQ,YAG/B/B,EAAKmB,YAELnB,KAsDP0L,YApBkB,SAACb,GACnB,IAAIc,EAAMd,EAAMc,IAIhB,KAFEA,EADGA,IACG,EAAAxO,EAAAyO,mBAAyBf,EAAMgB,YAAahB,EAAMiB,WAAWC,MAGnE,KAAM,oDAER,OAAOlB,KAgBP3B,mBAAAA,gDCjLF,IAAM8C,EAAe,wDAFrBxP,EAAA,IAEyByE,mBAEV+K,gCCJf,IAAA9D,EAAA1L,EAAA,IACAW,EAAAX,EAAA,GACAqJ,EAAArJ,EAAA,OAEAA,EAAA,KAEAyP,EAAAzP,EAAA,QAEAA,EAAA,QACAA,EAAA,SACAA,EAAA,KAEA0P,EAAA1P,EAAA,IACA2P,EAAA3P,EAAA,IACA4P,EAAA5P,EAAA,IACA6P,EAAA7P,EAAA,IACA8P,EAAA9P,EAAA,IACA+P,EAAA/P,EAAA,IACAgQ,EAAAhQ,EAAA,IACAiQ,EAAAjQ,EAAA,IACAkQ,EAAAlQ,EAAA,IACAmQ,EAAAnQ,EAAA,IACAoQ,EAAApQ,EAAA,QAEAA,EAAA,KACAqQ,EAAArQ,EAAA,QACAA,EAAA,SACAA,EAAA,wDAGA,IAAIsQ,GAAc,EAEZC,EAAW,WACf,IAAKD,EAAa,CAChBA,GAAc,GAKd,EAAAb,EAAAe,sBAGAC,EAAAA,QAAWC,KACoB,cAA7B,EAAA/P,EAAAgQ,eAAcC,WACd,SAACC,IACC,EAAAlQ,EAAAQ,aAAY2P,iBAAiB,OAAQD,MAOzC,EAAAR,EAAAU,oBAAmBC,EAAAA,UAInB,EAAAb,EAAAc,iBAIgC,SAA5B1F,EAAAA,QAAO3G,IAAI,cACb6L,EAAAA,QAAWS,iBAAiBC,EAAAA,UAI9B,IAAMC,EAAc,IAAI5G,EAAAA,QAGxBiG,EAAAA,QAAWS,iBAAiB,YAC1B,EAAArB,EAAAa,MAAcU,KAIhBX,EAAAA,QAAWS,iBAAiBG,EAAAA,MAGxB9F,EAAAA,QAAO3G,IAAI,gBACb6L,EAAAA,QAAWS,iBAAiBI,EAAAA,MAI1B/F,EAAAA,QAAO3G,IAAI,qBACb,EAAAqL,EAAAS,SAIF,EAAA/P,EAAAQ,aAAYoQ,mBAAqBnI,EAAAA,QAAezE,YAGhD,EAAAmL,EAAAY,MAAiB,IAAIc,EAAAA,QAAaC,EAAAA,SAAmBL,IACrD,EAAArB,EAAAW,SAEA,EAAAV,EAAAU,QACAD,EAAAA,QAAWS,iBAAiBQ,EAAAA,yBAEvBnG,EAAAA,QAAO3G,IAAI,uBAEd6L,EAAAA,QAAWS,iBAAiB,YAC1B,EAAAzB,EAAAkC,oBAAmB,WAIvB,EAAAtI,EAAA7I,KAAI,cAAe+K,EAAAA,QAAOpG,mBAK9B,IAAI,EAAAxE,EAAAiR,eAEF,IAAI,EAAAlG,EAAAmG,kBACF,EAAAxI,EAAAhJ,OAAM,oDASN,IANA,EAAAuP,EAAAc,SAGA,EAAAhB,EAAAoC,qBAGiC,QAA7BvG,EAAAA,QAAO3G,IAAI,cAAyB,CAEtC,IAAMmN,GAAM,EAAApR,EAAAgQ,eACgB,cAAxBoB,EAAIC,gBACNzB,IAEAwB,EAAIjB,iBAAiB,mBAAoB,WACX,cAAxBiB,EAAIC,iBAA2D,aAAxBD,EAAIC,iBAC7CzB,qCC7HZ7Q,EAAAQ,YAAA,EAEA,IAAA+R,EAA8BjS,EAAQ,IAItC,IAAAwR,GAOAA,EAAAlQ,UAAA4Q,aAAA,SAAArN,EAAAyD,EAAA6J,EAAAC,EAAA3O,EAAA4O,GAEA,IAAAC,EAAA,IAAAL,EAAAM,sBAAA7O,KAAA8O,yBAAA3N,EAAAyD,EAAA6J,GAEA,GAAAG,EAAAG,OAAAC,QAAA,CACA,IAAAnP,EAAA8O,GAAAC,EAAAG,OAAAlP,OAAA,GACAC,EAAA8O,EAAA3K,MAAAyK,EAAA7O,GAGA,IAAA+O,EAAAG,OAAAC,QAAAhP,MACAN,KAAAkP,EAAAhK,KAAAgK,EAAAH,QAAA5O,EAAAC,EAAAC,KAIA+N,GApBA,SAAAA,EAAAgB,IAHA,SAAApO,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,MAAA,IAAAC,UAAA,qCAI3FH,CAAAV,KAAA8N,GAEA9N,KAAA8O,yBAAAA,EAoBA9S,EAAA8E,QAAAgN,gDC/BA,IAAMmB,EAAkB,wDADxB3S,EAAA,KAC4B4S,mBAEbD,gCCDfjT,EAAAQ,YAAA,EAEA,IAAAmJ,EAAcrJ,EAAQ,GAItB,IAIA4S,GAKAA,EAAAtR,UAAAuR,WAAA,SAAA5O,GACA,IACAA,IACK,MAAA6O,IACL,EAAAzJ,EAAAhJ,OAAA,4CAAA4D,EAAA6O,KAIAF,EAAAtR,UAAAyR,eAAA,WACArP,KAAAsP,SAAA,EACA,IAAA,IAAAhK,EAAA,EAAmBA,EAAAtF,KAAAuP,WAAAnS,OAA4BkI,IAC/CtF,KAAAmP,WAAAnP,KAAAuP,WAAAjK,KAIA4J,EAAAtR,UAAA4P,iBAAA,SAAAjN,GAxBA,IAAAA,GAAAA,EAyBAA,IAxBiB,sBAAjB,GAAiBgG,SAAAzI,KAAAyC,KA0BjBP,KAAAsP,QACAtP,KAAAmP,WAAA5O,GAEAP,KAAAuP,WAAA/G,KAAAjI,KAOA2O,EAAAtR,UAAAoP,KAAA,SAAAwC,EAAAC,GACAzP,KAAAsP,SAAA,EACAtP,KAAAuP,WAAA,GAIAC,EACAxP,KAAAsP,SAAA,EAEAG,EAAAzP,KAAAqP,eAAAxR,KAAAmC,QAIAkP,GA7CA,SAAAA,KAPA,SAAAxO,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,MAAA,IAAAC,UAAA,qCAQ3FH,CAAAV,KAAAkP,GA+CAlT,EAAA8E,QAAAoO,stIC7DA,IAAAQ,EAAUpT,EAAQ,IAClBqT,EAAWrT,EAAQ,IACnBL,EAAAD,QAAA0T,EAAA,KAAA,GAAAC,oBCFA,IAAAC,EAAkBtT,EAAQ,IAqB1BL,EAAAD,QAAA,SAAAmF,EAAAsN,EAAAoB,GACA,IAAAC,EAAA,SAAAxO,EAAAyO,EAAAC,EAAAC,GACA,IAAAC,EAAAF,GAAAC,GAAA,EAKA,GAHA,iBAAA,IAAA3O,EAbA,SAAA6O,EAAAC,GAGA,IADA,IAAAC,EAAA/S,OADA8S,EAAAE,SAAAC,mBAAAH,KACAhT,QACAkI,EAAA,EAAiBA,EAAA8K,EAAAhT,OAAgBkI,IACjC+K,EAAA/K,GAAA8K,EAAAI,WAAAlL,GAEA,OAAA+K,EAOAF,CAAA7O,IACA,iBAAA,IAAAyO,EAxBA,SAAAU,EAAAC,GAEA,IAAAL,EAAA,GAKA,OAJAK,EAAAC,QAAA,kBAA8B,SAAAC,GAC9BP,EAAA7H,KAAAqI,SAAAD,EAAA,OAGAP,EAiBAI,CAAAV,KAEAzS,MAAAoJ,QAAApF,GAAA,MAAAT,UAAA,mCACA,IAAAvD,MAAAoJ,QAAAqJ,IAAA,KAAAA,EAAA3S,OAAA,MAAAyD,UAAA,+DAGA,IAAAwP,EAAAR,EAAAE,EAAA9P,OAAAqB,IAIA,GAHA+O,EAAA,GAAA,GAAAA,EAAA,GAAA5B,EACA4B,EAAA,GAAA,GAAAA,EAAA,GAAA,IAEAL,EACA,IAAA,IAAAc,EAAA,EAAuBA,EAAA,KAAUA,EACjCd,EAAAE,EAAAY,GAAAT,EAAAS,GAIA,OAAAd,GAAAJ,EAAAS,IAIA,IACAP,EAAA3O,KAAAA,EACG,MAAA+C,IAOH,OAHA4L,EAAAiB,IAAA,uCACAjB,EAAAkB,IAAA,uCAEAlB,kBClDA,IADA,IAAAmB,EAAA,GACA3L,EAAA,EAAeA,EAAA,MAASA,EACxB2L,EAAA3L,IAAAA,EAAA,KAAAiB,SAAA,IAAAqE,OAAA,GAmBA3O,EAAAD,QAhBA,SAAA4T,EAAAI,EAAAC,GACA,IAAA3K,EAAA2K,GAAA,EAGA,MAAA,GAFAgB,EAGAjB,EAAA1K,MAHA2L,EAGAjB,EAAA1K,MAHA2L,EAIAjB,EAAA1K,MAJA2L,EAIAjB,EAAA1K,MAFA,IAFA2L,EAKAjB,EAAA1K,MALA2L,EAKAjB,EAAA1K,MAHA,IAFA2L,EAMAjB,EAAA1K,MANA2L,EAMAjB,EAAA1K,MAJA,IAFA2L,EAOAjB,EAAA1K,MAPA2L,EAOAjB,EAAA1K,MALA,IAFA2L,EAQAjB,EAAA1K,MARA2L,EAQAjB,EAAA1K,MARA2L,EASAjB,EAAA1K,MATA2L,EASAjB,EAAA1K,MATA2L,EAUAjB,EAAA1K,MAVA2L,EAUAjB,EAAA1K,qCCjBA,SAAA4L,EAAAC,EAAAC,EAAAC,EAAAC,GACA,OAAAH,GACA,KAAA,EAAA,OAAAC,EAAAC,GAAAD,EAAAE,EACA,KAAA,EAAA,OAAAF,EAAAC,EAAAC,EACA,KAAA,EAAA,OAAAF,EAAAC,EAAAD,EAAAE,EAAAD,EAAAC,EACA,KAAA,EAAA,OAAAF,EAAAC,EAAAC,GAIA,SAAAC,EAAAH,EAAAI,GACA,OAAAJ,GAAAI,EAAAJ,IAAA,GAAAI,EA0EAvV,EAAAD,QAvEA,SAAA2T,EAAAU,GACA,IAAAoB,EAAA,CAAA,WAAA,WAAA,WAAA,YACAC,EAAA,CAAA,WAAA,WAAA,WAAA,UAAA,YAEA,GAAA,iBAAA,EAAA,CACA,IAAAC,EAAArB,SAAAC,mBAAAF,IACAA,EAAA/S,MAAAqU,EAAAvU,QACA,IAAA,IAAAkI,EAAA,EAAmBA,EAAAqM,EAAAvU,OAAgBkI,IAAA+K,EAAA/K,GAAAqM,EAAAnB,WAAAlL,GAGnC+K,EAAA7H,KAAA,KAEA,IAAAoJ,EAAAvB,EAAAjT,OAAA,EAAA,EACAyU,EAAAC,KAAAC,KAAAH,EAAA,IACAI,EAAA1U,MAAAuU,GAEA,IAAAvM,EAAA,EAAeA,EAAAuM,EAAKvM,IAAA,CACpB0M,EAAA1M,GAAAhI,MAAA,IACA,IAAA,IAAA8N,EAAA,EAAiBA,EAAA,GAAMA,IACvB4G,EAAA1M,GAAA8F,GACAiF,EAAA,GAAA/K,EAAA,EAAA8F,IAAA,GACAiF,EAAA,GAAA/K,EAAA,EAAA8F,EAAA,IAAA,GACAiF,EAAA,GAAA/K,EAAA,EAAA8F,EAAA,IAAA,EACAiF,EAAA,GAAA/K,EAAA,EAAA8F,EAAA,GAQA,IAJA4G,EAAAH,EAAA,GAAA,IAAA,GAAAxB,EAAAjT,OAAA,GACA0U,WAAoBE,EAAAH,EAAA,GAAA,IAAAC,KAAAG,MAAAD,EAAAH,EAAA,GAAA,KACpBG,EAAAH,EAAA,GAAA,IAAA,GAAAxB,EAAAjT,OAAA,GAAA,WAEAkI,EAAA,EAAeA,EAAAuM,EAAKvM,IAAA,CAGpB,IAFA,IAAA4M,EAAA5U,MAAA,IAEA6U,EAAA,EAAiBA,EAAA,GAAMA,IAAAD,EAAAC,GAAAH,EAAA1M,GAAA6M,GACvB,IAAAA,EAAA,GAAkBA,EAAA,GAAMA,IACxBD,EAAAC,GAAAZ,EAAAW,EAAAC,EAAA,GAAAD,EAAAC,EAAA,GAAAD,EAAAC,EAAA,IAAAD,EAAAC,EAAA,IAAA,GAGA,IAAAC,EAAAV,EAAA,GACAW,EAAAX,EAAA,GACAY,EAAAZ,EAAA,GACAa,EAAAb,EAAA,GACAtC,EAAAsC,EAAA,GAEA,IAAAS,EAAA,EAAiBA,EAAA,GAAMA,IAAA,CACvB,IAAAhB,EAAAW,KAAAG,MAAAE,EAAA,IACAK,EAAAjB,EAAAa,EAAA,GAAAlB,EAAAC,EAAAkB,EAAAC,EAAAC,GAAAnD,EAAAqC,EAAAN,GAAAe,EAAAC,KAAA,EACA/C,EAAAmD,EACAA,EAAAD,EACAA,EAAAf,EAAAc,EAAA,MAAA,EACAA,EAAAD,EACAA,EAAAI,EAGAd,EAAA,GAAAA,EAAA,GAAAU,IAAA,EACAV,EAAA,GAAAA,EAAA,GAAAW,IAAA,EACAX,EAAA,GAAAA,EAAA,GAAAY,IAAA,EACAZ,EAAA,GAAAA,EAAA,GAAAa,IAAA,EACAb,EAAA,GAAAA,EAAA,GAAAtC,IAAA,EAGA,MAAA,CACAsC,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,EAAA,IAAA,IAAAA,EAAA,GACAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,EAAA,IAAA,IAAAA,EAAA,GACAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,EAAA,IAAA,IAAAA,EAAA,GACAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,EAAA,IAAA,IAAAA,EAAA,GACAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,GAAA,IAAAA,EAAA,IAAA,EAAA,IAAA,IAAAA,EAAA,09CCpFA,IAAA1O,EAAA1G,EAAA,OAEAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,yDAGA,EAAA0G,EAAA2E,WAAU,UAAW,GAAI,GAAI,OAGpB8K,kBAAAA,EAAAA,UAAmBC,gBAAAA,EAAAA,UAAiBC,OAAAA,EAAAA,UAAQC,qBAAAA,EAAAA,UAAsBC,eAAAA,EAAAA,UAAgBC,iBAAAA,EAAAA,sDCb3F,IAAA7V,EAAAX,EAAA,aAE0B,SAACyW,IACzB,EAAA9V,EAAAQ,aAAYuV,cAAcxK,KAAK,CAC7BuG,OAAQ,mBACRN,QAAS,KACT3O,KAAM,CACJmT,aAAcF,oDCPpB,IAAA9V,EAAAX,EAAA,GACA4W,EAAA5W,EAAA,cAEwB,SAAC6W,EAAW1H,EAAK2H,EAAOC,EAAYC,IAC1D,EAAArW,EAAAQ,aAAYuV,cAAcxK,KAAK,CAC7BuG,OAAQ,YACRN,QAAS,KACT3O,KAAM,CACJ8E,KAAMuO,EACN1H,IAAKA,EACL8H,mBAAmB,EAAAL,EAAA1M,qBAAoB4M,GACvCzH,YAAa0H,EACbzH,UAAW0H,oDCZjB,IAAArW,EAAAX,EAAA,aAEe,SAAC6W,EAAWK,IACzB,EAAAvW,EAAAQ,aAAYuV,cAAcxK,KAAK,CAC7BuG,OAAQ,WACRN,QAAS,KACT3O,KAAM,CACJ8E,KAAMuO,EACNlS,WAAYuS,oDCRlB,IAAAvW,EAAAX,EAAA,aAE6B,SAACmX,IAC5B,EAAAxW,EAAAQ,aAAYuV,cAAcxK,KAAK,CAC7BuG,OAAQ,sBACRN,QAAS,KACT3O,KAAM,CACJ2T,SAAUA,oDCPhB,IAAAxW,EAAAX,EAAA,aAEuB,YACrB,EAAAW,EAAAQ,aAAYuV,cAAcxK,KAAK,CAC7BuG,OAAQ,gBACRN,QAAS,sDCLb,IAAAxR,EAAAX,EAAA,GACA4W,EAAA5W,EAAA,cAEyB,SAACmP,EAAK2H,EAAOC,IACpC,EAAApW,EAAAQ,aAAYuV,cAAcxK,KAAK,CAC7BuG,OAAQ,iBACRN,QAAS,KACT3O,KAAM,CACJ2L,IAAKA,EACLxK,YAAY,EAAAiS,EAAA1M,qBAAoB4M,GAChCzH,YAAa0H,6mHCTbtM,eAEJC,4JAKaD,giSCRf,IAAAwH,EAAAjS,EAAA,IAEYoX,8JAAZpX,EAAA,SAGAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,SACAA,EAAA,wDASA,IAAMqX,EAAqB,CACzBC,IAAK,QACLC,UAAW,cACXC,QAAS,mBAELC,EAA4B,CAChCH,IAAK,QACLE,QAAS,qBAELE,EAAwB,CAC5BJ,IAAK,WACLE,QAAS,kBAELG,EAAmB,CACvBL,IAAK,qBACLM,GAAI,6BACJL,UAAW,oBAIPM,EAAgB,WACpB,MAAO,CACL,IAAIC,EAAAA,wBAAwB,qBACzBC,WACAxU,MAAM,CAAC,gBAIRyU,EAA2B,WAC/B,MAAO,CACL,IAAIF,EAAAA,wBAAwB,iBACzBG,WACH,IAAIH,EAAAA,wBAAwB,cACzBG,WACH,IAAIH,EAAAA,wBAAwB,cACzBC,WACH,IAAID,EAAAA,wBAAwB,qBACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWN,OAIZO,EAAc,WAClB,MAAO,CACL,IAAIN,EAAAA,wBAAwB,OACzBG,WACH,IAAIH,EAAAA,wBAAwB,QACzBC,WACH,IAAID,EAAAA,wBAAwB,SACzBC,WACH,IAAID,EAAAA,wBAAwB,OACzBC,WACH,IAAID,EAAAA,wBAAwB,MACzBC,WACH,IAAID,EAAAA,wBAAwB,cACzBC,aAIDM,EAAc,WAClB,MAAO,CACL,IAAIP,EAAAA,wBAAwB,OACzBC,WACH,IAAID,EAAAA,wBAAwB,cACzBC,WACH,IAAID,EAAAA,wBAAwB,eACzBC,WACH,IAAID,EAAAA,wBAAwB,aACzBC,aAIDO,EAAgB,SAACC,GACrB,MAAO,CACL,IAAIT,EAAAA,wBAAwB,MACzBG,WACA1U,MAAM,CAAC,OACV,IAAIuU,EAAAA,wBAAwB,QACzBC,WACAxU,MAAM,CAAC,OACV,IAAIuU,EAAAA,wBAAwB,iBACzBC,WACAxU,MAAM,CAAC,OACV,IAAIuU,EAAAA,wBAAwB,iBACzBC,WACAxU,MAAM,CAAC,QACV,IAAI2U,EAAAA,uBACDC,WAAWI,GACXhV,MAAM,CAAC,gBAIRiV,EAAe,SAACC,GACpB,MAAO,CACL,IAAIC,EAAAA,0BAA0B,OAC3BC,UAAUF,GACVG,cAAc,CAAErB,UAAW,SAC9B,IAAIO,EAAAA,wBAAwB,aACzBC,WACAa,cAAc,CAAErB,UAAW,kBAI5BsB,EAAoB,WACxB,OAAO,IAAIf,EAAAA,wBAAwB,aAChCC,WACAxU,MAAM,CAAC,KAAM,eAMZuV,EAAc,WAClB,MAAO,CACL,IAAIhB,EAAAA,wBAAwB,MACzBG,WACAW,cAAc,CAAEpB,QAAS,eAC5B,IAAIM,EAAAA,wBAAwB,YACzBG,WACAW,cAAc,CAAEpB,QAAS,qBAC5B,IAAIM,EAAAA,wBAAwB,QACzBC,WACAxU,MAAM,CAAC,KAAM,cAChB,IAAIuU,EAAAA,wBAAwB,SACzBC,WACAxU,MAAM,CAAC,KAAM,cAChB,IAAIuU,EAAAA,wBAAwB,WACzBC,WACAxU,MAAM,CAAC,KAAM,cAChB,IAAIuU,EAAAA,wBAAwB,UACzBC,WACAxU,MAAM,CAAC,KAAM,gBAOdwV,EAAkB,SAACC,GACvB,MAAO,CACLH,IACA,IAAIf,EAAAA,wBAAwB,YACzBC,WACAa,cAAclB,GACjB,IAAII,EAAAA,wBAAwB,UACzBC,WACAa,cAAc,CAAEpB,QAAS,iBAI5B,IAAIyB,EAAAA,2BAA4BlV,IAAI,QAAS+U,KAC1CI,OAAO,CAGN,IAAIpB,EAAAA,wBAAwB,qBACzBC,WACAxU,MAAM,CAAC,YACPqV,cAAc,CAAEpB,QAAS,iBAC5B,IAAIM,EAAAA,wBAAwB,iBACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,wBACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,uBACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,sBACzBC,WACAa,cAAcjB,GACjB,IAAIG,EAAAA,wBAAwB,uBACzBC,WACAxU,MAAM,CAAC,YACPqV,cAAc,CAAEpB,QAAS,qBAC5B,IAAIM,EAAAA,wBAAwB,YACzBC,WACAxU,MAAM,CAAC,KAAM,eAChBI,OAAOqV,IACRL,UAAU,CAAEpB,UAAW,CAAC7P,KAAKmC,eA6D9BsP,EAAkB,WACtB,MAAO,CACL,IAAIT,EAAAA,0BAA0B,kBAC3BnV,MAAM,CAAC,KAAM,cACboV,UAAUvB,EAAiB7J,kBAC9B,IAAImL,EAAAA,0BAA0B,OAC3BnV,MAAM,CAAC,KAAM,cACboV,UAAUvB,EAAiBrK,iBAC3B6L,cAAc,CAAErB,UAAW,WAI5B6B,EAAsB,SAACX,GAC3B,MAAO,EAEL,IAAIP,EAAAA,uBAAwBC,WAAWY,EAAgB,CAErD,IAAIjB,EAAAA,wBAAwB,SACzBC,WACAa,cAAcnB,MACfyB,OAAO,CAET,IAAIpB,EAAAA,wBAAwB,iBACzBG,WACH,IAAIH,EAAAA,wBAAwB,mBACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWK,EAAaC,IACxBlV,MAAM,CAAC,KAAM,kBAMhB8V,EAAkB,WACtB,MAAO,CACL,IAAIvB,EAAAA,wBAAwB,MACzBG,WACAW,cAAc,CAAEpB,QAAS,eAC5B,IAAIM,EAAAA,wBAAwB,MACzBG,WACAW,cAAc,CAAEtB,IAAK,WAAYE,QAAS,qBAC7C,IAAIM,EAAAA,wBAAwB,MACzBC,WACAa,cAAc,CAAEtB,IAAK,WAAYE,QAAS,0BAC7C,IAAIM,EAAAA,wBAAwB,MACzBC,WACAxU,MAAM,CAAC,KAAM,cACbqV,cAAc,CAAEtB,IAAK,UACxB,IAAIQ,EAAAA,wBAAwB,MACzBC,WACAxU,MAAM,CAAC,KAAM,cACbqV,cAAc,CAAEtB,IAAK,YACxB,IAAIQ,EAAAA,wBAAwB,MACzBC,WACAxU,MAAM,CAAC,KAAM,cACbqV,cAAc,CAAEtB,IAAK,WACxB,IAAIQ,EAAAA,wBAAwB,MACzBC,WACAa,cAAcnB,KAKf6B,EAAmB,WACvB,MAAO,EACL,IAAIL,EAAAA,2BAA4BlV,IAAI,QAASsV,KAC1CH,OAAO,CACN,IAAIpB,EAAAA,wBAAwB,QACzBC,WACAxU,MAAM,CAAC,KAAM,cAChB,IAAIuU,EAAAA,wBAAwB,OACzBC,WACAa,cAAcjB,KAElBgB,UAAU,CAAEpB,UAAW,CAAC7P,KAAKmC,eA4C9B0P,EAAmB,WACvB,MAAO,EACL,IAAIN,EAAAA,2BAA4BlV,IAAI,OAnB/B,CACL,IAAI+T,EAAAA,wBAAwB,SACzBC,WACAa,cAAc,CAAEtB,IAAK,aAAcC,UAAW,OACjD,IAAIO,EAAAA,wBAAwB,SACzBC,WACAa,cAAc,CAAErB,UAAW,QAASC,QAAS,sBAChD,IAAIM,EAAAA,wBAAwB,SACzBC,WACAa,cAAc,CAAErB,UAAW,WAAYC,QAAS,qBACnD,IAAIM,EAAAA,wBAAwB,SACzBC,WACAa,cAAc,CAAErB,UAAW,WAAYC,QAAS,uBAQhDmB,UAAU,CAAEpB,UAAW,CAAC7P,KAAKmC,aAC7B+O,cAAc,CAAErB,UAAW,eA+G5BiC,EAAuB,WAC3B,MAAO,CACL,IAAI1B,EAAAA,wBAAwB,iBACzBG,WACH,IAAIH,EAAAA,wBAAwB,YACzBG,WACH,IAAIH,EAAAA,wBAAwB,cACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWN,OAIZ4B,EAA8B,WAClC,MAAO,CAGLlW,MAAO,CAAC,KAAM,aACdmP,QAASgH,EAAAA,QACTlW,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WAAWH,QAKd2B,EAAoB,SAACpB,GACzB,MAAO,CACL7F,QAASkH,EAAAA,QACTrW,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WAAWG,EAAcC,IACzBI,UAAU,CAAEf,GAAI,CAAC,SAACvJ,GACjB,MAAO,CAAEwL,WAAY,CAACxL,SAE1B,IAAI6J,EAAAA,uBACDC,WAAWN,QAKdiC,EAAyB,SAACvB,GAC9B,MAAO,CACL7F,QAASkH,EAAAA,QACTrW,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAIyV,EAAAA,2BACDlV,IAAI,cAAeuU,EAAcC,IACjCK,cAAc,CAAEtB,IAAK,gBACxB,IAAIY,EAAAA,uBACDC,WAAWN,QAKdkC,EAAkB,SAACxB,GACvB,MAAO,CACL7F,QAASsH,EAAAA,QACTzW,MAAO,CAAC,KAAM,aACdC,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,QACzBG,WACAU,UAAU,CAAErB,IAAK,CAACF,EAAiBhJ,kBACtC,IAAI8J,EAAAA,uBACDC,WAAWI,GACXI,UAAU,CAAErB,IAAK,CAACF,EAAiBlI,eACtC,IAAI4I,EAAAA,wBAAwB,eAAeC,YAC3C,IAAIG,EAAAA,uBACDC,WAAWN,QAKdoC,EAAuB,SAAC1B,GAC5B,MAAO,CACL7F,QAASwH,EAAAA,QACT3W,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WAAWI,GACXI,UAAU,CAAErB,IAAK,CAACF,EAAiBlI,gBACtC,IAAIgJ,EAAAA,uBACDC,WAAWN,QAOdrF,EAA2B,CAC/B2H,UAAW,CACTC,GAAIL,EAAgB1B,KACpBgC,GAAIN,EAAgB3B,MAEtBkC,uBAAwB,CACtBF,GAAI,CACF1H,QAAS6H,EAAAA,QACThX,MAAO,CAAC,KAAM,YAAa,WAC3BC,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WApIF,EACL,IAAID,EAAAA,uBAAwBnU,IAAI,aAAc,CAC5C,IAAI+T,EAAAA,wBAAwB,oBACzBC,WACDa,cAAc,CAAEpB,QAAS,aAC3B,IAAIM,EAAAA,wBAAwB,YACzBC,WACH,IAAID,EAAAA,wBAAwB,cACzBC,WACH,IAAID,EAAAA,wBAAwB,oBACzBC,aAEL,IAAID,EAAAA,wBAAwB,QACzB0C,cACAvC,WACH,IAAIH,EAAAA,wBAAwB,WACzB0C,cACAvC,WACH,IAAIH,EAAAA,wBAAwB,WACzB0C,cACAvC,WACH,IAAIH,EAAAA,wBAAwB,UACzB0C,cACAvC,WACH,IAAIS,EAAAA,0BAA0B,OAC3BC,UAAU,SAAC3L,EAAGC,GACb,MAAA,kBAAyBA,EAASwN,KAAlC,IAA0CxN,EAASyN,QAAnD,IAA8DzN,EAAS0N,QAAvE,IAAkF1N,EAAS2N,WA2GxFjC,UAAU,CACTnB,QAAS,CAACJ,EAAiBnI,qBAE/B,IAAIiJ,EAAAA,uBACDC,WAAWN,QAIpBgD,eAAgB,CACdT,GAAIH,EAAqB5B,KACzBgC,GAAIJ,EAAqB7B,MAE3B0C,iBAAkB,CAChBV,GAAI,CACF1H,QAASqI,EAAAA,QACTxX,MAAO,CAAC,KAAM,aACdC,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,gBACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWN,QAIpBmD,sBAAuB,CACrBZ,GAAI,CACF1H,QAASuI,EAAAA,QACT1X,MAAO,CAAC,aACRC,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,gBACzBG,YACH,IAAIC,EAAAA,uBACDnU,IAAI,iBA5LN,CACL,IAAI+T,EAAAA,wBAAwB,mBAAmBG,WAC/C,IAAIH,EAAAA,wBAAwB,cAAcC,WAC1C,IAAID,EAAAA,wBAAwB,qBAAqBC,WACjD,IAAID,EAAAA,wBAAwB,mBAAmBC,WAC/C,IAAID,EAAAA,wBAAwB,gBAAgBC,WAC5C,IAAID,EAAAA,wBAAwB,cAAcC,WAC1C,IAAID,EAAAA,wBAAwB,gBAAgBC,WAC5C,IAAID,EAAAA,wBAAwB,iBAAiBC,WAC7C,IAAID,EAAAA,wBAAwB,eAAeC,WAC3C,IAAID,EAAAA,wBAAwB,cAAcC,WAC1C,IAAID,EAAAA,wBAAwB,kBAAkBC,WAC9C,IAAID,EAAAA,wBAAwB,oBAAoBC,WAChD,IAAID,EAAAA,wBAAwB,eAAeC,WAC3C,IAAID,EAAAA,wBAAwB,kBAAkBG,WAC9C,IAAIH,EAAAA,wBAAwB,gBAAgBC,WAC5C,IAAID,EAAAA,wBAAwB,gBAAgBC,WAC5C,IAAID,EAAAA,wBAAwB,mBAAmBC,WAC/C,IAAID,EAAAA,wBAAwB,mBAAmBC,aA2K3C,IAAID,EAAAA,wBAAwB,kBACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWN,QAIpBqD,cAAe,CACbd,GAAI,CACF1H,QAASyI,EAAAA,QACT3X,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WAAWN,MAKhBtU,MAAO,CAAC,eAMZ6X,SAAU,CACRhB,GAAI,CACF1H,QAAS2I,EAAAA,QACT9X,MAAO,CAAC,aACRC,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,QACzBG,WACAU,UAAU,CAAErB,IAAK,CAACF,EAAiBhJ,iBACtC,IAAI0J,EAAAA,wBAAwB,cACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWN,QAIpByD,oBAAqB,CACnBlB,GAAI,CACF1H,QAAS6I,EAAAA,QACT/X,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,YAAYG,cAI9CuD,2BAA4B,CAC1BpB,GAAI,CACF1H,QAAS+I,EAAAA,QACTjY,KAAMgW,KAERa,GAAI,CACF3H,QAAS+I,EAAAA,QACTjY,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WAAWqB,KAAwBN,OAAO,CACzC,IAAIpB,EAAAA,wBAAwB,gBACzBG,WACH,IAAIH,EAAAA,wBAAwB,iBACzBC,gBAMb2D,eAAgB,CACdtB,GAAI,CACF1H,QAASgH,EAAAA,QACTnW,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WAAWH,KAA4BkB,OAAO,CAC7C,IAAIpB,EAAAA,wBAAwB,mBAAmBC,gBAKzD4D,0BAA2B,CACzB,CACErT,KAAM,MACN8R,GAAIX,KAEN,CACEnR,KAAM,MACN8R,GAAIX,MAGRmC,cAAe,CACb,CACEtT,KAAM,QACN8R,GAAIT,EAAkBtB,KACtBgC,GAAIV,EAAkBvB,MAExB,CACE9P,KAAM,aACN8R,GAAIN,EAAuBzB,KAC3BgC,GAAIP,EAAuB1B,OAG/ByD,gBAAiB,CACf,CACEvT,KAAM,qBACN8R,GAAI,CACF1H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,UAAW,aACnBC,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,MACzBC,WACAxU,MAAM,CAAC,KAAM,cACbqV,cAAc,CAAEhB,GAAI,YAAaL,UAAW,gBAC/C,IAAImB,EAAAA,0BAA0B,OAC3BnV,MAAM,CAAC,KAAM,cACboV,UAAU,0CACVC,cAAc,CAAErB,UAAW,UAC9B,IAAIW,EAAAA,uBAAwBC,WAAWmB,KACpCX,UAAU,CACTnB,QAAS,CAACJ,EAAiBrI,0BAE/B,IAAImJ,EAAAA,uBAAwBC,WAAWoB,KACpCZ,UAAU,CACTf,GAAI,CAACR,EAAiB7I,kBACtBiJ,QAAS,CAACJ,EAAiBrI,0BAE/B,IAAImJ,EAAAA,uBACDC,WAAWN,KACdgB,OAIN,CACEvQ,KAAM,cACN8R,GAAI,CACF1H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,KAAM,UAAW,aACzBC,KAAM,CACJ,IAAIsU,EAAAA,wBAAwB,MACzBC,WACAxU,MAAM,CAAC,KAAM,cACbqV,cAAc,CAAEhB,GAAI,YAAaL,UAAW,gBAC/C,IAAImB,EAAAA,0BAA0B,OAC3BnV,MAAM,CAAC,KAAM,cACboV,UAAU,mCACVC,cAAc,CAAErB,UAAW,UAC9B,IAAIW,EAAAA,uBACDC,WAAWmB,KACXX,UAAU,CACTnB,QAAS,CAACJ,EAAiBrI,0BAE/B,IAAImJ,EAAAA,uBACDC,WAAWoB,KACXZ,UAAU,CACTf,GAAI,CAACR,EAAiB7I,kBACtBiJ,QAAS,CAACJ,EAAiBrI,0BAE/B,IAAImJ,EAAAA,uBACDC,WAAWN,KACdgB,OAIN,CACEvQ,KAAM,mBACN8R,GAAI,CACF1H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAI0U,EAAAA,uBAAwBC,WAC1BK,EAAa,yCACf,IAAIV,EAAAA,wBAAwB,YACzBC,WACH,IAAID,EAAAA,wBAAwB,SACzBC,WACAa,cAAcvB,IACjB,IAAI4B,EAAAA,2BAA4BlV,IAAI,QAAS+U,KAC1CI,OAAO,CACN,IAAIpB,EAAAA,wBAAwB,SACzBC,WACAa,cAAcnB,KAElBkB,UAAU,CAAEpB,UAAW,CAAC7P,KAAKmC,cAChC,IAAIqO,EAAAA,uBACDC,WAAWN,KACdgB,OAIN,CACEvQ,KAAM,iBACN8R,GAAI,CACF1H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAI0U,EAAAA,uBAAwBC,WAAWiB,EACrC,wCACF,IAAIlB,EAAAA,uBACDC,WAAWN,QAIpB,CACEvP,KAAM,oBACN8R,GAAI,CACF1H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,KAAM,aACdC,KAAM,EACJ,IAAI0U,EAAAA,uBAAwBC,WAAWiB,EACrC,0CAA0CF,OAAO,CACjD,IAAIpB,EAAAA,wBAAwB,qBACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWN,UAKtB,CACEvP,KAAM,WACN8R,GAAI,CACF1H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,KAAM,UAAW,aACzBC,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WApoBJ,CACL,IAAIL,EAAAA,wBAAwB,kBACzBG,WACAW,cAAc,CAAEpB,QAAS,aAC5B,IAAIM,EAAAA,wBAAwB,uBACzBC,WACH,IAAID,EAAAA,wBAAwB,eACzBC,WACH,IAAID,EAAAA,wBAAwB,gBACzBC,WACH,IAAID,EAAAA,wBAAwB,sBACzBC,WACAa,cAAc,CAAEpB,QAAS,mBAC5B,IAAIM,EAAAA,wBAAwB,uBACzBC,WACAyC,YAAY,MACf,IAAI1C,EAAAA,wBAAwB,2BACzBC,WACAyC,YAAY,MACf,IAAI1C,EAAAA,wBAAwB,sBACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,aACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,gBACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,mBACzBC,WACH,IAAID,EAAAA,wBAAwB,qBACzBC,YACH,IAAIG,EAAAA,uBACDC,WAAWY,EAAgB,CAE1B,IAAIjB,EAAAA,wBAAwB,SACzBG,WACAW,cAAcnB,MAElByB,OAAO,CACN,IAAIpB,EAAAA,wBAAwB,YACzBG,WACAW,cAAclB,GACjB,IAAII,EAAAA,wBAAwB,SACzBG,WACAW,cAAcvB,KAElBsB,UAAU,CACTnB,QAAS,CAACJ,EAAiBxI,yBAqlBtBsK,OAAOC,KACPR,UAAU,CAAEnB,QAAS,CAACJ,EAAiBnJ,4BAC1C,IAAIiK,EAAAA,uBACDC,WAAWN,OAGlBwC,GAAI,CACF3H,QAASoJ,EAAAA,QACTvY,MAAO,CAAC,KAAM,UAAW,aACzBC,KAAM,EACJ,IAAI0U,EAAAA,uBACDC,WA1dJ,CACL,IAAIL,EAAAA,wBAAwB,MACzBG,WACAW,cAAclB,GACjB,IAAII,EAAAA,wBAAwB,MACzBG,WACAW,cAAc,CAAEtB,IAAK,iBAAkBE,QAAS,aACnD,IAAIM,EAAAA,wBAAwB,MACzBG,WACAW,cAAcvB,GACjB,IAAIS,EAAAA,wBAAwB,OACzBC,WACAa,cAAc,CAAEtB,IAAK,SAAUE,QAAS,gBAC3C,IAAIM,EAAAA,wBAAwB,MACzBC,WACAa,cAAc,CAAEtB,IAAK,gBACxB,IAAIQ,EAAAA,wBAAwB,MACzBC,WACAa,cAAc,CAAEtB,IAAK,iBACxB,IAAIQ,EAAAA,wBAAwB,OACzBC,WACAa,cAAc,CAAEtB,IAAK,uBACxB,IAAIQ,EAAAA,wBAAwB,UACzBC,WACAyC,YAAY,MACZ5B,cAAc,CAAEtB,IAAK,wBACxB,IAAIQ,EAAAA,wBAAwB,YACzBC,WACAyC,YAAY,MACZ5B,cAAc,CAAEtB,IAAK,4BACxB,IAAIQ,EAAAA,wBAAwB,MACzBC,WACAa,cAAc,CAAEtB,IAAK,oBACxB,IAAIQ,EAAAA,wBAAwB,QACzBC,WACAxU,MAAM,CAAC,KAAM,cACbqV,cAAc,CAAEtB,IAAK,uBACxB,IAAIY,EAAAA,uBACDC,WAAWoB,KACXZ,UAAU,CACTnB,QAAS,CAACJ,EAAiBrI,0BAE/B,IAAImJ,EAAAA,uBACDC,WA3FE,EACL,IAAIc,EAAAA,2BAA4BlV,IAAI,QAASsV,KAAmBH,OAAO,CACrE,IAAIpB,EAAAA,wBAAwB,MACzBG,WACAW,cAAcnB,GACjB,IAAIK,EAAAA,wBAAwB,UACzBC,WACAxU,MAAM,CAAC,YACPqV,cAAc,CAAEpB,QAAS,qBAC5B,IAAIM,EAAAA,wBAAwB,MACzBC,WACAxU,MAAM,CAAC,YACV,IAAIuU,EAAAA,wBAAwB,SACzBC,WACAa,cAAcjB,KAChBgB,UAAU,CAAEpB,UAAW,CAAC7P,KAAKmC,eA6E7B8O,UAAU,CACTnB,QAAS,CAACJ,EAAiBrI,2BA8atBmK,OAAOC,KACPR,UAAU,CACTf,GAAI,CAACR,EAAiB7I,kBACtBiJ,QAAS,CAACJ,EAAiBnJ,4BAE/B,IAAIiK,EAAAA,uBACDC,WAAWN,oBAMTrF,gDCj3Bf,0DAAAxS,EAAA,IAEAyP,EAAAzP,EAAA,UAEMmb,mUAA2BjY,EAAAA,qBAC/BU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ6T,UAAW,SAAClJ,GAAY0N,EAAKE,gBAAgB5N,mBAIjD4N,yBAAgB5N,IACd,EAAAoB,EAAAkC,oBAAmB,SAAUtD,EAAM4I,8VAIxBkE,gQChBf9K,EAAArQ,EAAA,0DACAA,EAAA,IAEA6P,EAAA7P,EAAA,UAEMqb,mUAAuBnY,EAAAA,qBAE3BU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ6T,UAAW,WAAQwE,EAAKE,kCAI5BA,4BACE,EAAApM,EAAAqM,WAAUxY,KAAKyY,UAAUhX,gBAAiB,UAAW,oBAGvDhC,sBACEO,KAAKyY,WAAY,EAAA9L,EAAA+L,uBAAsB,YAAY,EAAA/L,EAAAgM,aAAY3Y,KAAKF,QAEpE,EAAA6M,EAAAiM,oBAAmB5Y,KAAKyY,UAAWzY,KAAKF,KAAK8T,IAAIhP,MAGjD5E,KAAKyY,UAAUpX,IAAI,WAAYrB,KAAKF,KAAK8T,IAAIiF,UAIL,WAApCvS,EAAOtG,KAAKF,KAAK8T,IAAI3S,aACvBjB,KAAKyY,UAAUna,MAAM0B,KAAKF,KAAK8T,IAAI3S,YAKrCjB,KAAKyY,UAAUna,MAAM0B,KAAKD,mVAIf4X,gDCrCf,IAAAmB,EAAAxc,EAAA,GACAiD,EAAAjD,EAAA,GACA0G,EAAA1G,EAAA,GAGAmQ,EAAAnQ,EAAA,IAEAyc,EAAAzc,EAAA,0DAEAA,EAAA,KAKA,MAAM0c,EAAuB,CAC3B,aAAc,aAAc,OAAQ,UACpC,aAAc,QAAS,SAAU,SACjC,UAAW,OAAQ,OAAQ,SAAU,OACrC,UAAW,OAAQ,SAAU,aAAc,SAC3C,YAAa,UAAW,UAEpB1C,mUAA2B2C,EAAAA,qBAE/BxZ,sBACEyZ,EAAAtb,UAAM6B,WAAN3B,KAAAkC,MACAA,KAAKmZ,kCAGPA,8BACEnZ,KAAKoZ,kBAAiBJ,EAAqBxY,QAAQR,KAAKF,KAAK8T,IAAIhP,KAAKyU,eACjErZ,KAAKoZ,iBACR,EAAAL,EAAAO,gBACEtZ,KAAKyY,UAAUvX,IAAI,QACnBlB,KAAKyY,UAAUvX,IAAI,SACnBlB,KAAKyY,UAAUvX,IAAI,SACnBlB,KAAKyY,UAAUvX,IAAI,MACnBlB,KAAKyY,UAAUvX,IAAI,OAEnBlB,KAAKyY,UAAUvX,IAAI,wBAIzBhB,mBAAU,IAAAmY,EAAArY,KACRkZ,EAAAtb,UAAMsC,QAANpC,KAAAkC,KAAc,CACZkU,GAAI,WAAQmE,EAAKkB,4BAIrBA,sBAEE,EAAA9M,EAAA+M,eAAgBxZ,KAAKyY,UAAUvX,IAAI,QAASlB,KAAKyY,UAAUhX,iBAAiB,EAAAlC,EAAAjB,OAAY0B,KAAKyG,MAAMhF,gBAAiBzB,KAAKD,QAASC,KAAKoZ,6BAGzIK,yBAAgBhO,EAAK2H,EAAOsG,EAAOC,EAAIC,EAAKC,GAC1C,IAAMC,EAAY,IAElB,EAAA9W,EAAA2E,WAAU,YAAa,IAAK,EAAG,KAC3B8D,IACFqO,EAAUC,WAAatO,GAErB2H,IACF0G,EAAUE,YAAc5G,GAEtBsG,IACFI,EAAUG,YAAcP,GAEtBC,IACFG,EAAUI,SAAWP,GAEnBC,IACFE,EAAUK,UAAYP,GAEpBC,IACFC,EAAUM,aAAeP,IAE3B,EAAAta,EAAAc,KAAIyZ,EAAW,WACb,IAAMO,GAAoB,EAAAvB,EAAAwB,kBAAiBR,GAE3C,OADA,EAAA9W,EAAA2E,WAAU,aAAa,EAAApI,EAAA4G,WAAUkU,EAAmB,IAAK,KAAM,EAAG,MAC3D,+UAKE/D,mdClFf,IAAA3Q,EAAArJ,EAAA,GACAiD,EAAAjD,EAAA,GACAW,EAAAX,EAAA,yDACAA,EAAA,IAEAqQ,EAAArQ,EAAA,IACA6P,EAAA7P,EAAA,UAEMie,mUAAwB/a,EAAAA,qBAC5BU,iBAAQC,GAAW,IAAAkY,EAAArY,KAEZA,KAAKwa,uBAAuBxa,KAAKyY,UAAUvX,IAAI,WAGpDlB,KAAKya,mBAAmBza,KAAKyY,UAAUvX,IAAI,SAE3CoX,EAAA1a,UAAMsC,QAANpC,KAAAkC,MACE,EAAAT,EAAAjB,OAAY,CACVuV,UAAW,WAAQwE,EAAKE,oBACvBpY,kBAGPoY,4BACE,EAAApM,EAAAqM,WAAUxY,KAAKyY,UAAUhX,gBAAiB,mBAAoB,oBAGhEgZ,4BAAmBC,GACjB,IACMC,EAAUD,GAAOA,EAAIE,MADV,6GAC6BF,EAAItd,QAAU,IAI5D,OAHKud,IACH,EAAAhV,EAAAhJ,OAAM,iCAAkC+d,EAAK,MAAO,0EAE7CC,eAGXH,gCAAuBE,GACrB,IACMG,EAAuBH,GAAOA,EAAIE,MADd,sBAM1B,OAJIC,IACF,EAAAlV,EAAAhJ,OAAA,+BAAqC+d,EAArC,0GAGMG,eAGVpb,sBACEO,KAAKyG,OAAQ,EAAAkG,EAAAgM,aAAY3Y,KAAKF,MAG9BE,KAAKyG,MAAMnI,MAAM0B,KAAKF,KAAK8T,IAAI3S,YAE/BjB,KAAKyY,WAAY,EAAA9L,EAAA+L,uBAAsB,aAAc1Y,KAAKyG,QAC1D,EAAAkG,EAAAiM,oBAAmB5Y,KAAKyY,UAAWzY,KAAKF,KAAK8T,IAAIhP,MAGjD5E,KAAKyY,UAAUna,OAAM,EAAArB,EAAAyO,mBAAyB1L,KAAKF,KAAK8T,IAAIjI,YAAa3L,KAAKF,KAAK8T,IAAIhI,YAGvF5L,KAAKyY,UAAUna,MAAM,CACnBwc,KAAM9a,KAAKF,KAAK8T,IAAIkH,KACpBpB,MAAO1Z,KAAKF,KAAK8T,IAAI8F,MACrBE,IAAK5Z,KAAKF,KAAK8T,IAAIgG,IACnBD,GAAI3Z,KAAKF,KAAK8T,IAAI+F,KAIhB3Z,KAAKF,KAAK8T,IAAInI,KAChBzL,KAAKyY,UAAUpX,IAAI,OAAQrB,KAAKF,KAAK8T,IAAInI,KAI3C,IAAMsP,EAAa/a,KAAKF,KAAK8T,IAAIoH,aAAehb,KAAKyG,MAAMhF,gBAAgBuZ,YACvED,GACF/a,KAAKyY,UAAUpX,IAAI,cAAe0Z,GAIpC/a,KAAKyY,UAAUpX,IAAI,OAAQrB,KAAKyY,UAAUvX,IAAI,QAAQmY,eAItDrZ,KAAKyY,UAAUna,MAAM0B,KAAKD,mVAIfwa,gDCtFf,QAAAje,EAAA,IACAiD,EAAAjD,EAAA,OAEAA,EAAA,SAEAA,EAAA,wDAEA,MAEM2e,mUAAuCzb,EAAAA,qBAE3CC,oCAEAS,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ4T,IAAK,SAACjJ,GAAY0N,EAAK6C,QAAQvQ,mBAInCuQ,iBAAQvQ,GAEN3K,KAAKS,aAAa+N,aAAa,YAAazR,UAAW,KAAM,CAC3D6H,KAAM,aACN6G,IAAQ0P,wDAERla,YAAY,EAAA1B,EAAAjB,OAAM,CAChB8c,gBAAiBpb,KAAKL,YAAcgL,EAAMyQ,gBAC1CC,cAAe1Q,EAAM0Q,cACrBC,kBAAmB3Q,EAAM2Q,kBACzBC,WAAY5Q,EAAM4Q,WAClBC,WAAY7Q,EAAM6Q,YAGjBxb,KAAKH,MAAM4b,SAAS,aAAezb,KAAKF,KAAK+T,UAAUN,kBAAoB,KAEhFvT,KAAKD,OAELC,KAAKH,OAEL6b,EAAAA,QAAkBra,IAAIsJ,EAAM0Q,cAAe1Q,EAAM4Q,YACjD7V,EAAAA,QAAerE,IAAI,cAAeqa,EAAAA,QAAkBja,4VAIzCwZ,gDC5Cf,IAAA1b,EAAAjD,EAAA,yDACAA,EAAA,IAEAqf,EAAArf,EAAA,IAEAmQ,EAAAnQ,EAAA,IACAqQ,EAAArQ,EAAA,UAEMsf,mUAA4Bpc,EAAAA,qBAChCU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ6T,UAAW,SAAClJ,GAAY0N,EAAKE,gBAAgB5N,IAC7CuJ,GAAI,SAACvJ,GAAY0N,EAAKkB,UAAU5O,mBAIpClL,sBAC0B,UAApBO,KAAKL,YACPK,KAAKyL,IAAM,uDACXzL,KAAK6b,eAAiB,2BACtB7b,KAAK8b,OAAS,kBACe,eAApB9b,KAAKL,aACdK,KAAKyL,IAAM,4DACXzL,KAAK6b,eAAiB,gCACtB7b,KAAK8b,OAAS,kBAEhB9b,KAAKyG,OAAQ,EAAAkG,EAAAgM,aAAY3Y,KAAKF,mBAGhCyZ,mBAAU5O,GACR,IAAMoR,GAAY,EAAAxc,EAAAjB,OAAY0B,KAAKyG,MAAMhF,gBAAiBzB,KAAKD,QACzDic,GAAS,EAAAzc,EAAAjB,OAAY0B,KAAKD,OAAQ4K,EAAO,CAC7Cc,IAAKzL,KAAKyL,IACVoQ,eAAgB7b,KAAK6b,kBACvB,EAAApP,EAAAwP,oBAAqBjc,KAAK8b,OAAQE,EAAQD,gBAG5CG,0BAAiBtX,EAAM+F,GACrB,KAGE,EAAAgR,EAAAnQ,aAAYb,GAEZ,IAAMwR,EAAyC,OAAvBnc,KAAKJ,cAAyB,KAAO,KAE7DI,KAAKS,aAAa+N,aAChB,YACAzR,UACAof,GACA,EAAA5c,EAAAjB,OAAY,CAAEsG,KAAMA,GAAQ+F,GAC5B3K,KAAKD,OAEL,CAAC,cACH,MAAOpD,kBAMX4b,yBAAgB5N,GACd,GAAIA,EAAMwL,WACR,IAAK,IAAI7Q,EAAI,EAAGA,EAAIqF,EAAMwL,WAAW/Y,OAAQkI,IAC3CtF,KAAKkc,iBAAiBlc,KAAKL,WAAYgL,EAAMwL,WAAW7Q,SAG1DtF,KAAKkc,iBAAiBlc,KAAKL,WAAYgL,8UAK9BiR,sFCtEf,IAAArc,EAAAjD,EAAA,yDAEAA,EAAA,IACA6P,EAAA7P,EAAA,IAEAmQ,EAAAnQ,EAAA,IACAkQ,EAAAlQ,EAAA,IACAqQ,EAAArQ,EAAA,IAEA,MAAI8f,GAAuB,EAErBC,mUAA6B7c,EAAAA,qBACjCC,sBACE,GAAwB,aAApBO,KAAKL,WAA2B,CAClC,GAAIyc,EACF,KAAM,2EAERA,GAAuB,EAGzBpc,KAAKsc,2BAGPpc,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ8T,QAAS,SAACnJ,GAAY0N,EAAKkE,eAAe5R,IAC1CuJ,GAAI,SAACvJ,GAAY0N,EAAKkB,UAAU5O,IAChCkJ,UAAW,SAAClJ,GAAY0N,EAAKE,gBAAgB5N,mBAIjD4R,wBAAe5R,IACb,EAAA6B,EAAAyP,oBAA0Bjc,KAAKL,WAAYgL,gBAG7C4O,mBAAU5O,IACR,EAAA8B,EAAAwP,oBAAqBjc,KAAKL,WAAYgL,GAAO,EAAApL,EAAAjB,OAAY0B,KAAKyG,MAAMhF,gBAAiBzB,KAAKD,sBAG5FwY,yBAAgB5N,IACd,EAAAwB,EAAAqM,YAAU,EAAAjZ,EAAAjB,OAAY0B,KAAKyY,UAAUhX,gBAAiBkJ,GAAQ,mBAAoB,oBAGpF2R,uBACEtc,KAAKyG,OAAQ,EAAAkG,EAAAgM,aAAY3Y,KAAKF,MAI9BE,KAAKyY,WAAY,EAAA9L,EAAA+L,uBAA0C,aAApB1Y,KAAKL,WAC1C,aAAeK,KAAKL,WAAYK,KAAKyG,QAEvC,EAAAkG,EAAAiM,oBAAmB5Y,KAAKyY,UAAW,aAInCzY,KAAKyY,UAAUna,MAAM0B,KAAKD,mVAQfsc,IAGNG,0BAPyB,SAAClb,GACjC8a,EAAuB9a,iDC5DzB,0DAAAhF,EAAA,KAEAmQ,EAAAnQ,EAAA,IACAiD,EAAAjD,EAAA,SAEM+a,mUAA0BoF,EAAAA,qBAC9Bvc,mBAAU,IAAAmY,EAAArY,KACR0c,EAAA9e,UAAMsC,QAANpC,KAAAkC,KAAc,CACZkU,GAAI,SAACvJ,GAAY0N,EAAKkB,UAAU5O,mBAIpC4O,mBAAU5O,IAER,EAAA8B,EAAAkQ,cAAehS,EAAMsI,cAAc,EAAA1T,EAAAjB,OAAM0B,KAAKyG,MAAMhF,gBAAiBzB,KAAKD,oVAI/DsX,gDClBf/a,EAAA,GAAA,IAEAW,EAAAX,EAAA,GACA0G,EAAA1G,EAAA,GACAwc,EAAAxc,EAAA,GACAiD,EAAAjD,EAAA,OACAA,EAAA,IAEA6P,EAAA7P,EAAA,QACAA,EAAA,KAEAqQ,EAAArQ,EAAA,uDAEA,MAAIsgB,OAAAA,EAEEC,mUAA8Brd,EAAAA,qBAClCU,iBAAQC,GAAW,IAAAkY,EAAArY,KACjBsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,MAAc,EAAAT,EAAAjB,OAAY,CACxBuV,UAAW,WAAQwE,EAAKE,oBACvBpY,iBAILoY,4BACE,EAAApM,EAAAqM,WAAUlL,EAAAA,QAAK7L,gBAAiB,cAAe,oBAGjDqb,8BACE,IAAMC,EAAI,GACJC,GAAM,EAAA/f,EAAAQ,aACN4Q,GAAM,EAAApR,EAAAgQ,eAQZ,OANA8P,EAAEE,MAAQD,EAAIE,WAAaF,EAAIE,WAAa7O,EAAI8O,KAAKC,YACrDL,EAAEM,MAAQL,EAAIM,YAAcN,EAAIM,YAAcjP,EAAI8O,KAAKI,aACvDR,EAAES,KAAOR,EAAIS,OAAOC,MACpBX,EAAEY,KAAOX,EAAIS,OAAOG,OACpBb,EAAEc,OAASb,EAAIS,OAAOK,WAEff,eAGTtd,sBAGEO,KAAKyG,OAAQ,EAAAkG,EAAAgM,aAAY3Y,KAAKF,MAG9BwN,EAAAA,QAAKhP,OAAM,EAAAqO,EAAA+L,uBAAsB,eAAgB1Y,KAAKyG,QAEtD,IAAIsM,EAAW/S,KAAKF,KAAK8T,IAAIX,aAa7B,QAX0B,IAAdF,EAEVA,GAAW,EAAA9V,EAAAQ,aAAYsgB,SAAShL,SAEhCzF,EAAAA,QAAKjM,IAAI,eAAgB0R,GAOvB6J,IAAiB7J,EACnB,KAAM,+EAER6J,EAAe7J,EAEfzF,EAAAA,QAAKjM,IAAI,QAAQ,EAAApE,EAAA+gB,gBAAejL,IAChCzF,EAAAA,QAAKjM,IAAI,MAAM,EAAApE,EAAAQ,aAAYwgB,QAAQ7gB,QAGnCkQ,EAAAA,QAAKhP,MAAM0B,KAAK8c,sBAGhB,IAAMoB,GAAK,EAAApF,EAAAqF,uBACPD,GACF5Q,EAAAA,QAAKjM,IAAI,cAAe6c,GAG1B5Q,EAAAA,QAAKhP,OAAM,EAAA0E,EAAAob,iBAAgB,eAC3B,EAAApb,EAAA2E,WAAU,YAAa,IAAK,EAAG,KAI/B2F,EAAAA,QAAKhP,MAAM0B,KAAKD,mVAIL8c,gDCxFf,0DAAAvgB,EAAA,UAEM+hB,mUAA6B7e,EAAAA,qBACjCU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ4T,IAAK,WAAQyE,EAAK6C,0BAItBA,mBAGE,IAAMiB,EAAyC,OAAvBnc,KAAKJ,cAAyB,KAAO,KAC7DI,KAAKS,aAAa+N,aAAa,YAAazR,UAAWof,EAAiB,CACtEvX,KAAM,aACN6G,IAAKzL,KAAKF,KAAK8T,IAAInI,IACnBxK,WAAYjB,KAAKF,KAAK8T,IAAI3S,WAC1BsS,kBAAmBvT,KAAKF,KAAK+T,UAAUN,kBACvC5H,YAAa3L,KAAKF,KAAK8T,IAAIjI,aAE7B3L,KAAKD,OAELC,KAAKH,kVAIMwe,gDC1Bf,IAAA9e,EAAAjD,EAAA,GACAW,EAAAX,EAAA,yDAEAA,EAAA,UAEMgiB,mUAAkC9e,EAAAA,qBACtCU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ4T,IAAK,SAACjJ,GAAY0N,EAAK6C,QAAQvQ,mBAInCuQ,iBAAQvQ,GAEN3K,KAAKS,aAAa+N,aAAa,WAAYzR,UAAW,KAAM,CAC1D6H,KAAM,WACN3D,YAAY,EAAA1B,EAAAjB,OAAYqM,EAAM4T,eAAgB,CAC5C1F,SAAU,OACVvL,KAAM3C,EAAMsI,eACdM,kBAAmBvT,KAAKF,KAAK+T,UAAUN,mBAEzCvT,KAAKD,OAELC,KAAKH,OAIL,IAAM2e,GAAI,EAAAvhB,EAAAQ,aACNkN,EAAM8T,gBAAkBD,EAAEE,aAAeF,EAAEE,YAAYC,MACzDH,EAAEE,YAAYC,KAAKhU,EAAM8T,2VAKhBH,gDClCf,QAAAhiB,EAAA,QAEAA,EAAA,KAEAsiB,EAAAtiB,EAAA,QAEAA,EAAA,SACAA,EAAA,8DAEMuiB,mUAAiCrf,EAAAA,qBACrCU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ4T,IAAK,WAAQyE,EAAK6C,0BAItBA,mBACE,IAAMnT,EAAM,GAGN+W,GADc,IAAI/X,EAAAA,SACMC,eAE9Be,EAAIgX,GAAKD,EAAU3X,UACnBY,EAAIiX,IAAMF,EAAU7X,YAGpBc,EAAI8R,OAASvM,EAAAA,QAAKpM,IAAI,UAGtB6G,EAAIkX,YAAcvD,EAAAA,QAAkBja,gBAGpCsG,EAAImX,OAAQ,EAAAN,EAAAO,eAE0B,mBAA3Bnf,KAAKF,KAAK8T,IAAIH,UACvBzT,KAAKF,KAAK8T,IAAIH,SAAS1L,8UAKd8W,gDCxCf,IAAAtf,EAAAjD,EAAA,yDACAA,EAAA,IAEAmQ,EAAAnQ,EAAA,IACAkQ,EAAAlQ,EAAA,IACAqQ,EAAArQ,EAAA,UAEMua,mUAA6BrX,EAAAA,qBACjCU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ8T,QAAS,SAACnJ,GAAY0N,EAAKkE,eAAe5R,IAC1CuJ,GAAI,SAACvJ,GAAY0N,EAAKkB,UAAU5O,IAChCkJ,UAAW,SAAClJ,GAAY0N,EAAKE,gBAAgB5N,mBAIjD4O,mBAAU5O,IACR,EAAA8B,EAAA+M,eAAc7O,EAAMc,IAAKd,GAAO,EAAApL,EAAAjB,OAAY0B,KAAKD,QAAQ,EAAA4M,EAAAgM,aAAY3Y,KAAKF,MAAM2B,kBAAkB,gBAGpG8a,wBAAe5R,IACb,EAAA6B,EAAA4S,uBAAsBzU,gBAGxB4N,yBAAgB5N,GACd3K,KAAKS,aAAa+N,aAChB,YACAzR,UACA,MACA,EAAAwC,EAAAjB,OAAY,CAAEsG,KAAM,WAAa+F,GACjC3K,KAAKD,OAGL,CAAC,yVAIQ8W,gDCrCf,IAAAlR,EAAArJ,EAAA,yDACAA,EAAA,IAEAiQ,EAAAjQ,EAAA,UAEM+iB,mUAAuC7f,EAAAA,qBAE3CU,mBAAU,IAAAmY,EAAArY,KACRsY,EAAA1a,UAAMsC,QAANpC,KAAAkC,KAAc,CACZ4T,IAAK,SAACjJ,GAAY0N,EAAKiH,eAAe3U,mBAI1C2U,wBAAe3U,IACb,EAAAhF,EAAAhJ,OAAM,8GAA+G,+EACrH,EAAA4P,EAAAgT,cAAa5U,EAAM0Q,cAAe1Q,EAAM6U,WAAY7U,EAAM8U,aAAc9U,EAAM+U,cAAgB,SAACC,GAC7FhV,EAAM8I,SAASkM,IACd9hB,KAAKmC,kVAIGqf,I5CWf/iB,EAAAgW,EAAAjW,EAGAC,EAAAiW,EAAA,SAAAvW,EAAAmF,EAAAye,GACAtjB,EAAAujB,EAAA7jB,EAAAmF,IACAsC,OAAAqc,eAAA9jB,EAAAmF,EAAA,CAA0C4e,YAAA,EAAA7e,IAAA0e,KAK1CtjB,EAAA0jB,EAAA,SAAAhkB,GACA,oBAAAikB,QAAAA,OAAAC,aACAzc,OAAAqc,eAAA9jB,EAAAikB,OAAAC,YAAA,CAAwD5e,MAAA,WAExDmC,OAAAqc,eAAA9jB,EAAA,aAAA,CAAiDsF,OAAA,KAQjDhF,EAAA6V,EAAA,SAAA7Q,EAAA6e,GAEA,GADA,EAAAA,IAAA7e,EAAAhF,EAAAgF,IACA,EAAA6e,EAAA,OAAA7e,EACA,GAAA,EAAA6e,GAAA,iBAAA7e,GAAAA,GAAAA,EAAA9E,WAAA,OAAA8E,EACA,IAAA8e,EAAA3c,OAAA4c,OAAA,MAGA,GAFA/jB,EAAA0jB,EAAAI,GACA3c,OAAAqc,eAAAM,EAAA,UAAA,CAAyCL,YAAA,EAAAze,MAAAA,IACzC,EAAA6e,GAAA,iBAAA7e,EAAA,IAAA,IAAAO,KAAAP,EAAAhF,EAAAiW,EAAA6N,EAAAve,EAAA,SAAAA,GAAgH,OAAAP,EAAAO,IAAqBhE,KAAA,KAAAgE,IACrI,OAAAue,GAIA9jB,EAAAkV,EAAA,SAAAvV,GACA,IAAA2jB,EAAA3jB,GAAAA,EAAAO,WACA,WAA2B,OAAAP,EAAA,YAC3B,WAAiC,OAAAA,GAEjC,OADAK,EAAAiW,EAAAqN,EAAA,IAAAA,GACAA,GAIAtjB,EAAAujB,EAAA,SAAAS,EAAAC,GAAsD,OAAA9c,OAAA7F,UAAAwD,eAAAtD,KAAAwiB,EAAAC,IAGtDjkB,EAAAkkB,EAAA,GAIAlkB,EAAAA,EAAA6U,EAAA,IA9EA,SAAA7U,EAAAmkB,GAGA,GAAApkB,EAAAokB,GACA,OAAApkB,EAAAokB,GAAAzkB,QAGA,IAAAC,EAAAI,EAAAokB,GAAA,CACAnb,EAAAmb,EACA7O,GAAA,EACA5V,QAAA,IAUA,OANA0kB,EAAAD,GAAA3iB,KAAA7B,EAAAD,QAAAC,EAAAA,EAAAD,QAAAM,GAGAL,EAAA2V,GAAA,EAGA3V,EAAAD,cAvBAK"}