posthog-node 3.1.2 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../node_modules/tslib/tslib.es6.js","../../posthog-core/src/types.ts","../../posthog-core/src/utils.ts","../../posthog-core/src/lz-string.ts","../../posthog-core/src/eventemitter.ts","../../posthog-core/src/index.ts","../../posthog-core/src/storage-memory.ts","../src/fetch.ts","../src/feature-flags.ts","../src/posthog-node.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export type PosthogCoreOptions = {\n // PostHog API host (https://app.posthog.com by default)\n host?: string\n // The number of events to queue before sending to Posthog (flushing)\n flushAt?: number\n // The interval in milliseconds between periodic flushes\n flushInterval?: number\n // If set to false, tracking will be disabled until `optIn` is called\n enable?: boolean\n // Whether to track that `getFeatureFlag` was called (used by Expriements)\n sendFeatureFlagEvent?: boolean\n // Whether to load feature flags when initialised or not\n preloadFeatureFlags?: boolean\n // Option to bootstrap the library with given distinctId and feature flags\n bootstrap?: {\n distinctId?: string\n isIdentifiedId?: boolean\n featureFlags?: Record<string, boolean | string>\n featureFlagPayloads?: Record<string, JsonType>\n }\n // How many times we will retry HTTP requests\n fetchRetryCount?: number\n // The delay between HTTP request retries\n fetchRetryDelay?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // For Session Analysis how long before we expire a session (defaults to 30 mins)\n sessionExpirationTimeSeconds?: number\n // Whether to post events to PostHog in JSON or compressed format\n captureMode?: 'json' | 'form'\n disableGeoip?: boolean\n}\n\nexport enum PostHogPersistedProperty {\n AnonymousId = 'anonymous_id',\n DistinctId = 'distinct_id',\n Props = 'props',\n FeatureFlags = 'feature_flags',\n FeatureFlagPayloads = 'feature_flag_payloads',\n OverrideFeatureFlags = 'override_feature_flags',\n Queue = 'queue',\n OptedOut = 'opted_out',\n SessionId = 'session_id',\n SessionLastTimestamp = 'session_timestamp',\n PersonProperties = 'person_properties',\n GroupProperties = 'group_properties',\n}\n\nexport type PostHogFetchOptions = {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH'\n mode?: 'no-cors'\n credentials?: 'omit'\n headers: { [key: string]: string }\n body?: string\n signal?: AbortSignal\n}\n\n// Check out posthog-js for these additional options and try to keep them in sync\nexport type PosthogCaptureOptions = {\n timestamp?: Date\n disableGeoip?: boolean\n}\n\nexport type PostHogFetchResponse = {\n status: number\n text: () => Promise<string>\n json: () => Promise<any>\n}\n\nexport type PostHogQueueItem = {\n message: any\n callback?: (err: any) => void\n}\n\nexport type PostHogEventProperties = {\n [key: string]: any\n}\n\nexport type PostHogAutocaptureElement = {\n $el_text?: string\n tag_name: string\n href?: string\n nth_child?: number\n nth_of_type?: number\n order?: number\n} & {\n [key: string]: any\n} // Any key prefixed with `attr__` can be added\n\nexport type PostHogDecideResponse = {\n config: { enable_collect_everything: boolean }\n editorParams: { toolbarVersion: string; jsURL: string }\n isAuthenticated: true\n supportedCompression: string[]\n featureFlags: {\n [key: string]: string | boolean\n }\n featureFlagPayloads: {\n [key: string]: JsonType\n }\n errorsWhileComputingFlags: boolean\n sessionRecording: boolean\n}\n\nexport type PosthogFlagsAndPayloadsResponse = {\n featureFlags: PostHogDecideResponse['featureFlags']\n featureFlagPayloads: PostHogDecideResponse['featureFlagPayloads']\n}\n\nexport type JsonType = string | number | boolean | null | { [key: string]: JsonType } | Array<JsonType>\n","export function assert(truthyValue: any, message: string): void {\n if (!truthyValue) {\n throw new Error(message)\n }\n}\n\nexport function removeTrailingSlash(url: string): string {\n return url?.replace(/\\/+$/, '')\n}\n\nexport interface RetriableOptions {\n retryCount?: number\n retryDelay?: number\n retryCheck?: (err: any) => boolean\n}\n\nexport async function retriable<T>(fn: () => Promise<T>, props: RetriableOptions = {}): Promise<T> {\n const { retryCount = 3, retryDelay = 5000, retryCheck = () => true } = props\n let lastError = null\n\n for (let i = 0; i < retryCount + 1; i++) {\n if (i > 0) {\n // don't wait when it's the last try\n await new Promise((r) => setTimeout(r, retryDelay))\n }\n\n try {\n const res = await fn()\n return res\n } catch (e) {\n lastError = e\n if (!retryCheck(e)) {\n throw e\n }\n }\n }\n\n throw lastError\n}\n\n// https://stackoverflow.com/a/8809472\nexport function generateUUID(globalThis?: any): string {\n // Public Domain/MIT\n let d = new Date().getTime() //Timestamp\n let d2 =\n (globalThis && globalThis.performance && globalThis.performance.now && globalThis.performance.now() * 1000) || 0 //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16 //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\n })\n}\n\nexport function currentTimestamp(): number {\n return new Date().getTime()\n}\n\nexport function currentISOTime(): string {\n return new Date().toISOString()\n}\n\nexport function safeSetTimeout(fn: () => void, timeout: number): any {\n // NOTE: we use this so rarely that it is totally fine to do `safeSetTimeout(fn, 0)``\n // rather than setImmediate.\n const t = setTimeout(fn, timeout) as any\n // We unref if available to prevent Node.js hanging on exit\n t?.unref && t?.unref()\n return t\n}\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\n\n// private property\nconst f = String.fromCharCode\nconst keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\nconst baseReverseDic: any = {}\n\nfunction getBaseValue(alphabet: any, character: any): any {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {}\n for (let i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i\n }\n }\n return baseReverseDic[alphabet][character]\n}\n\nexport const LZString = {\n compressToBase64: function (input: any): string {\n if (input == null) {\n return ''\n }\n const res = LZString._compress(input, 6, function (a: any) {\n return keyStrBase64.charAt(a)\n })\n switch (\n res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n case 0:\n return res\n case 1:\n return res + '==='\n case 2:\n return res + '=='\n case 3:\n return res + '='\n }\n },\n\n decompressFromBase64: function (input: any): any {\n if (input == null) {\n return ''\n }\n if (input == '') {\n return null\n }\n return LZString._decompress(input.length, 32, function (index: any) {\n return getBaseValue(keyStrBase64, input.charAt(index))\n })\n },\n\n compress: function (uncompressed: any): any {\n return LZString._compress(uncompressed, 16, function (a: any) {\n return f(a)\n })\n },\n _compress: function (uncompressed: any, bitsPerChar: any, getCharFromInt: any): any {\n if (uncompressed == null) {\n return ''\n }\n const context_dictionary: any = {},\n context_dictionaryToCreate: any = {},\n context_data = []\n\n let i,\n value,\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_val = 0,\n context_data_position = 0,\n ii\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val))\n break\n } else {\n context_data_position++\n }\n }\n return context_data.join('')\n },\n\n decompress: function (compressed: any): any {\n if (compressed == null) {\n return ''\n }\n if (compressed == '') {\n return null\n }\n return LZString._decompress(compressed.length, 32768, function (index: any) {\n return compressed.charCodeAt(index)\n })\n },\n\n _decompress: function (length: any, resetValue: any, getNextValue: any): any {\n const dictionary = [],\n result = [],\n data = { val: getNextValue(0), position: resetValue, index: 1 }\n\n let next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry: any = '',\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i\n }\n\n bits = 0\n maxpower = Math.pow(2, 2)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n switch ((next = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 2:\n return ''\n }\n dictionary[3] = c\n w = c\n result.push(c)\n while (true) {\n if (data.index > length) {\n return ''\n }\n\n bits = 0\n maxpower = Math.pow(2, numBits)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n switch ((c = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 2:\n return result.join('')\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n\n if (dictionary[c]) {\n entry = dictionary[c]\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0)\n } else {\n return null\n }\n }\n result.push(entry)\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0)\n enlargeIn--\n\n w = entry\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n }\n },\n}\n","export class SimpleEventEmitter {\n events: { [key: string]: ((...args: any[]) => void)[] } = {}\n\n constructor() {\n this.events = {}\n }\n\n on(event: string, listener: (...args: any[]) => void): () => void {\n if (!this.events[event]) {\n this.events[event] = []\n }\n this.events[event].push(listener)\n\n return () => {\n this.events[event] = this.events[event].filter((x) => x !== listener)\n }\n }\n\n emit(event: string, payload: any): void {\n for (const listener of this.events[event] || []) {\n listener(payload)\n }\n for (const listener of this.events['*'] || []) {\n listener(event, payload)\n }\n }\n}\n","import {\n PostHogFetchOptions,\n PostHogFetchResponse,\n PostHogQueueItem,\n PostHogAutocaptureElement,\n PostHogDecideResponse,\n PosthogCoreOptions,\n PostHogEventProperties,\n PostHogPersistedProperty,\n PosthogCaptureOptions,\n JsonType,\n} from './types'\nimport {\n assert,\n currentISOTime,\n currentTimestamp,\n generateUUID,\n removeTrailingSlash,\n retriable,\n RetriableOptions,\n safeSetTimeout,\n} from './utils'\nexport * as utils from './utils'\nimport { LZString } from './lz-string'\nimport { SimpleEventEmitter } from './eventemitter'\n\nclass PostHogFetchHttpError extends Error {\n name = 'PostHogFetchHttpError'\n\n constructor(public response: PostHogFetchResponse) {\n super('HTTP error while fetching PostHog: ' + response.status)\n }\n}\n\nclass PostHogFetchNetworkError extends Error {\n name = 'PostHogFetchNetworkError'\n\n constructor(public error: unknown) {\n super('Network error while fetching PostHog', error instanceof Error ? { cause: error } : {})\n }\n}\n\nfunction isPostHogFetchError(err: any): boolean {\n return typeof err === 'object' && (err.name === 'PostHogFetchHttpError' || err.name === 'PostHogFetchNetworkError')\n}\n\nexport abstract class PostHogCoreStateless {\n // options\n private apiKey: string\n host: string\n private flushAt: number\n private flushInterval: number\n private requestTimeout: number\n private captureMode: 'form' | 'json'\n private removeDebugCallback?: () => void\n private debugMode: boolean = false\n private pendingPromises: Record<string, Promise<any>> = {}\n private disableGeoip: boolean = true\n\n private _optoutOverride: boolean | undefined\n\n // internal\n protected _events = new SimpleEventEmitter()\n protected _flushTimer?: any\n protected _retryOptions: RetriableOptions\n\n // Abstract methods to be overridden by implementations\n abstract fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse>\n abstract getLibraryId(): string\n abstract getLibraryVersion(): string\n abstract getCustomUserAgent(): string | void\n\n // This is our abstracted storage. Each implementation should handle its own\n abstract getPersistedProperty<T>(key: PostHogPersistedProperty): T | undefined\n abstract setPersistedProperty<T>(key: PostHogPersistedProperty, value: T | null): void\n\n constructor(apiKey: string, options?: PosthogCoreOptions) {\n assert(apiKey, \"You must pass your PostHog project's api key.\")\n\n this.apiKey = apiKey\n this.host = removeTrailingSlash(options?.host || 'https://app.posthog.com')\n this.flushAt = options?.flushAt ? Math.max(options?.flushAt, 1) : 20\n this.flushInterval = options?.flushInterval ?? 10000\n this.captureMode = options?.captureMode || 'form'\n\n // If enable is explicitly set to false we override the optout\n this._optoutOverride = options?.enable === false\n\n this._retryOptions = {\n retryCount: options?.fetchRetryCount ?? 3,\n retryDelay: options?.fetchRetryDelay ?? 3000,\n retryCheck: isPostHogFetchError,\n }\n this.requestTimeout = options?.requestTimeout ?? 10000 // 10 seconds\n this.disableGeoip = options?.disableGeoip ?? true\n }\n\n protected getCommonEventProperties(): any {\n return {\n $lib: this.getLibraryId(),\n $lib_version: this.getLibraryVersion(),\n }\n }\n\n public get optedOut(): boolean {\n return this.getPersistedProperty(PostHogPersistedProperty.OptedOut) ?? this._optoutOverride ?? false\n }\n\n optIn(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, false)\n }\n\n optOut(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, true)\n }\n\n on(event: string, cb: (...args: any[]) => void): () => void {\n return this._events.on(event, cb)\n }\n\n debug(enabled: boolean = true): void {\n this.removeDebugCallback?.()\n\n this.debugMode = enabled\n\n if (enabled) {\n this.removeDebugCallback = this.on('*', (event, payload) => console.log('PostHog Debug', event, payload))\n }\n }\n\n private buildPayload(payload: { distinct_id: string; event: string; properties?: PostHogEventProperties }): any {\n return {\n distinct_id: payload.distinct_id,\n event: payload.event,\n properties: {\n ...(payload.properties || {}),\n ...this.getCommonEventProperties(), // Common PH props\n },\n }\n }\n\n /***\n *** TRACKING\n ***/\n protected identifyStateless(\n distinctId: string,\n properties?: PostHogEventProperties,\n options?: PosthogCaptureOptions\n ): this {\n // The properties passed to identifyStateless are event properties.\n // To add person properties, pass in all person properties to the `$set` key.\n\n const payload = {\n ...this.buildPayload({\n distinct_id: distinctId,\n event: '$identify',\n properties,\n }),\n }\n\n this.enqueue('identify', payload, options)\n return this\n }\n\n protected captureStateless(\n distinctId: string,\n event: string,\n properties?: { [key: string]: any },\n options?: PosthogCaptureOptions\n ): this {\n const payload = this.buildPayload({ distinct_id: distinctId, event, properties })\n this.enqueue('capture', payload, options)\n\n return this\n }\n\n protected aliasStateless(\n alias: string,\n distinctId: string,\n properties?: { [key: string]: any },\n options?: PosthogCaptureOptions\n ): this {\n const payload = this.buildPayload({\n event: '$create_alias',\n distinct_id: distinctId,\n properties: {\n ...(properties || {}),\n distinct_id: distinctId,\n alias,\n },\n })\n\n this.enqueue('alias', payload, options)\n return this\n }\n\n /***\n *** GROUPS\n ***/\n protected groupIdentifyStateless(\n groupType: string,\n groupKey: string | number,\n groupProperties?: PostHogEventProperties,\n options?: PosthogCaptureOptions,\n distinctId?: string,\n eventProperties?: PostHogEventProperties\n ): this {\n const payload = this.buildPayload({\n distinct_id: distinctId || `$${groupType}_${groupKey}`,\n event: '$groupidentify',\n properties: {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupProperties || {},\n ...(eventProperties || {}),\n },\n })\n\n this.enqueue('capture', payload, options)\n return this\n }\n\n /***\n *** FEATURE FLAGS\n ***/\n\n protected async getDecide(\n distinctId: string,\n groups: Record<string, string | number> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n extraPayload: Record<string, any> = {}\n ): Promise<PostHogDecideResponse | undefined> {\n const url = `${this.host}/decide/?v=3`\n const fetchOptions: PostHogFetchOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n token: this.apiKey,\n distinct_id: distinctId,\n groups,\n person_properties: personProperties,\n group_properties: groupProperties,\n ...extraPayload,\n }),\n }\n return this.fetchWithRetry(url, fetchOptions)\n .then((response) => response.json() as Promise<PostHogDecideResponse>)\n .catch((error) => {\n console.error('Error fetching feature flags', error)\n return undefined\n })\n }\n\n protected async getFeatureFlagStateless(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<boolean | string | undefined> {\n const featureFlags = await this.getFeatureFlagsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n\n if (!featureFlags) {\n // If we haven't loaded flags yet, or errored out, we respond with undefined\n return undefined\n }\n\n let response = featureFlags[key]\n // `/decide` v3 returns all flags\n\n if (response === undefined) {\n // For cases where the flag is unknown, return false\n response = false\n }\n\n // If we have flags we either return the value (true or string) or false\n return response\n }\n\n protected async getFeatureFlagPayloadStateless(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<JsonType | undefined> {\n const payloads = await this.getFeatureFlagPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n\n if (!payloads) {\n return undefined\n }\n\n const response = payloads[key]\n\n // Undefined means a loading or missing data issue. Null means evaluation happened and there was no match\n if (response === undefined) {\n return null\n }\n\n return this._parsePayload(response)\n }\n\n protected async getFeatureFlagPayloadsStateless(\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<PostHogDecideResponse['featureFlagPayloads'] | undefined> {\n const payloads = (\n await this.getFeatureFlagsAndPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n ).payloads\n\n if (payloads) {\n return Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]))\n }\n return payloads\n }\n\n protected _parsePayload(response: any): any {\n try {\n return JSON.parse(response)\n } catch {\n return response\n }\n }\n\n protected async getFeatureFlagsStateless(\n distinctId: string,\n groups: Record<string, string | number> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<PostHogDecideResponse['featureFlags'] | undefined> {\n return (\n await this.getFeatureFlagsAndPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n ).flags\n }\n\n protected async getFeatureFlagsAndPayloadsStateless(\n distinctId: string,\n groups: Record<string, string | number> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<{\n flags: PostHogDecideResponse['featureFlags'] | undefined\n payloads: PostHogDecideResponse['featureFlagPayloads'] | undefined\n }> {\n const extraPayload: Record<string, any> = {}\n if (disableGeoip ?? this.disableGeoip) {\n extraPayload['geoip_disable'] = true\n }\n const decideResponse = await this.getDecide(distinctId, groups, personProperties, groupProperties, extraPayload)\n\n const flags = decideResponse?.featureFlags\n const payloads = decideResponse?.featureFlagPayloads\n\n return {\n flags,\n payloads,\n }\n }\n\n /***\n *** QUEUEING AND FLUSHING\n ***/\n protected enqueue(type: string, _message: any, options?: PosthogCaptureOptions): void {\n if (this.optedOut) {\n this._events.emit(type, `Library is disabled. Not sending event. To re-enable, call posthog.enable()`)\n return\n }\n\n const message = {\n ..._message,\n type: type,\n library: this.getLibraryId(),\n library_version: this.getLibraryVersion(),\n timestamp: options?.timestamp ? options?.timestamp : currentISOTime(),\n }\n\n const addGeoipDisableProperty = options?.disableGeoip ?? this.disableGeoip\n if (addGeoipDisableProperty) {\n if (!message.properties) {\n message.properties = {}\n }\n message['properties']['$geoip_disable'] = true\n }\n\n if (message.distinctId) {\n message.distinct_id = message.distinctId\n delete message.distinctId\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n queue.push({ message })\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n this._events.emit(type, message)\n\n // Flush queued events if we meet the flushAt length\n if (queue.length >= this.flushAt) {\n this.flush()\n }\n\n if (this.flushInterval && !this._flushTimer) {\n this._flushTimer = safeSetTimeout(() => this.flush(), this.flushInterval)\n }\n }\n\n flushAsync(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.flush((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n flush(callback?: (err?: any, data?: any) => void): void {\n if (this._flushTimer) {\n clearTimeout(this._flushTimer)\n this._flushTimer = null\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n if (!queue.length) {\n return callback?.()\n }\n\n const items = queue.splice(0, this.flushAt)\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n const messages = items.map((item) => item.message)\n\n const data = {\n api_key: this.apiKey,\n batch: messages,\n sent_at: currentISOTime(),\n }\n\n const promiseUUID = generateUUID()\n\n const done = (err?: any): void => {\n if (err) {\n this._events.emit('error', err)\n }\n callback?.(err, messages)\n // remove promise from pendingPromises\n delete this.pendingPromises[promiseUUID]\n this._events.emit('flush', messages)\n }\n\n // Don't set the user agent if we're not on a browser. The latest spec allows\n // the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers\n // and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),\n // but browsers such as Chrome and Safari have not caught up.\n const customUserAgent = this.getCustomUserAgent()\n const headers: { [key: string]: string } = {}\n if (customUserAgent) {\n headers['user-agent'] = customUserAgent\n }\n\n const payload = JSON.stringify(data)\n\n const url =\n this.captureMode === 'form'\n ? `${this.host}/e/?ip=1&_=${currentTimestamp()}&v=${this.getLibraryVersion()}`\n : `${this.host}/batch/`\n\n const fetchOptions: PostHogFetchOptions =\n this.captureMode === 'form'\n ? {\n method: 'POST',\n mode: 'no-cors',\n credentials: 'omit',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: `data=${encodeURIComponent(LZString.compressToBase64(payload))}&compression=lz64`,\n }\n : {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: payload,\n }\n const requestPromise = this.fetchWithRetry(url, fetchOptions)\n this.pendingPromises[promiseUUID] = requestPromise\n\n requestPromise\n .then(() => done())\n .catch((err) => {\n done(err)\n })\n }\n\n private async fetchWithRetry(\n url: string,\n options: PostHogFetchOptions,\n retryOptions?: RetriableOptions\n ): Promise<PostHogFetchResponse> {\n ;(AbortSignal as any).timeout ??= function timeout(ms: number) {\n const ctrl = new AbortController()\n setTimeout(() => ctrl.abort(), ms)\n return ctrl.signal\n }\n\n return await retriable(\n async () => {\n let res: PostHogFetchResponse | null = null\n try {\n res = await this.fetch(url, {\n signal: (AbortSignal as any).timeout(this.requestTimeout),\n ...options,\n })\n } catch (e) {\n // fetch will only throw on network errors or on timeouts\n throw new PostHogFetchNetworkError(e)\n }\n if (res.status < 200 || res.status >= 400) {\n throw new PostHogFetchHttpError(res)\n }\n return res\n },\n { ...this._retryOptions, ...retryOptions }\n )\n }\n\n async shutdownAsync(): Promise<void> {\n clearTimeout(this._flushTimer)\n try {\n await this.flushAsync()\n await Promise.all(\n Object.values(this.pendingPromises).map((x) =>\n x.catch(() => {\n // ignore errors as we are shutting down and can't deal with them anyways.\n })\n )\n )\n } catch (e) {\n if (!isPostHogFetchError(e)) {\n throw e\n }\n console.error('Error while shutting down PostHog', e)\n }\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n}\n\nexport abstract class PostHogCore extends PostHogCoreStateless {\n // options\n private sendFeatureFlagEvent: boolean\n private flagCallReported: { [key: string]: boolean } = {}\n\n // internal\n protected _decideResponsePromise?: Promise<PostHogDecideResponse | undefined> // TODO: come back to this, fix typing\n protected _sessionExpirationTimeSeconds: number\n protected sessionProps: PostHogEventProperties = {}\n\n constructor(apiKey: string, options?: PosthogCoreOptions) {\n // Default for stateful mode is to not disable geoip. Only override if explicitly set\n const disableGeoipOption = options?.disableGeoip ?? false\n\n super(apiKey, { ...options, disableGeoip: disableGeoipOption })\n\n this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true\n this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes\n }\n\n protected setupBootstrap(options?: Partial<PosthogCoreOptions>): void {\n if (options?.bootstrap?.distinctId) {\n if (options?.bootstrap?.isIdentifiedId) {\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, options.bootstrap.distinctId)\n } else {\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, options.bootstrap.distinctId)\n }\n }\n\n if (options?.bootstrap?.featureFlags) {\n const activeFlags = Object.keys(options.bootstrap?.featureFlags || {})\n .filter((flag) => !!options.bootstrap?.featureFlags?.[flag])\n .reduce(\n (res: Record<string, string | boolean>, key) => (\n (res[key] = options.bootstrap?.featureFlags?.[key] || false), res\n ),\n {}\n )\n this.setKnownFeatureFlags(activeFlags)\n options?.bootstrap.featureFlagPayloads && this.setKnownFeatureFlagPayloads(options?.bootstrap.featureFlagPayloads)\n }\n }\n\n // NOTE: Props are lazy loaded from localstorage hence the complex getter setter logic\n private get props(): PostHogEventProperties {\n if (!this._props) {\n this._props = this.getPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props)\n }\n return this._props || {}\n }\n\n private set props(val: PostHogEventProperties | undefined) {\n this._props = val\n }\n\n private clearProps(): void {\n this.props = undefined\n this.sessionProps = {}\n }\n\n private _props: PostHogEventProperties | undefined\n\n on(event: string, cb: (...args: any[]) => void): () => void {\n return this._events.on(event, cb)\n }\n\n reset(propertiesToKeep?: PostHogPersistedProperty[]): void {\n const allPropertiesToKeep = [PostHogPersistedProperty.Queue, ...(propertiesToKeep || [])]\n\n // clean up props\n this.clearProps()\n\n for (const key of <(keyof typeof PostHogPersistedProperty)[]>Object.keys(PostHogPersistedProperty)) {\n if (!allPropertiesToKeep.includes(PostHogPersistedProperty[key])) {\n this.setPersistedProperty((PostHogPersistedProperty as any)[key], null)\n }\n }\n }\n\n protected getCommonEventProperties(): any {\n const featureFlags = this.getFeatureFlags()\n\n const featureVariantProperties: Record<string, string | boolean> = {}\n if (featureFlags) {\n for (const [feature, variant] of Object.entries(featureFlags)) {\n featureVariantProperties[`$feature/${feature}`] = variant\n }\n }\n return {\n $active_feature_flags: featureFlags ? Object.keys(featureFlags) : undefined,\n ...featureVariantProperties,\n ...super.getCommonEventProperties(),\n }\n }\n\n public enrichProperties(properties?: PostHogEventProperties): any {\n return {\n ...this.props, // Persisted properties first\n ...this.sessionProps, // Followed by session properties\n ...(properties || {}), // Followed by user specified properties\n ...this.getCommonEventProperties(), // Followed by FF props\n $session_id: this.getSessionId(),\n }\n }\n\n getSessionId(): string | undefined {\n let sessionId = this.getPersistedProperty<string>(PostHogPersistedProperty.SessionId)\n const sessionTimestamp = this.getPersistedProperty<number>(PostHogPersistedProperty.SessionLastTimestamp) || 0\n if (!sessionId || Date.now() - sessionTimestamp > this._sessionExpirationTimeSeconds * 1000) {\n sessionId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, sessionId)\n }\n this.setPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp, Date.now())\n\n return sessionId\n }\n\n resetSessionId(): void {\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, null)\n }\n\n getAnonymousId(): string {\n let anonId = this.getPersistedProperty<string>(PostHogPersistedProperty.AnonymousId)\n if (!anonId) {\n anonId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, anonId)\n }\n return anonId\n }\n\n getDistinctId(): string {\n return this.getPersistedProperty<string>(PostHogPersistedProperty.DistinctId) || this.getAnonymousId()\n }\n\n unregister(property: string): void {\n delete this.props[property]\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n register(properties: { [key: string]: any }): void {\n this.props = {\n ...this.props,\n ...properties,\n }\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n registerForSession(properties: { [key: string]: any }): void {\n this.sessionProps = {\n ...this.sessionProps,\n ...properties,\n }\n }\n\n unregisterForSession(property: string): void {\n delete this.sessionProps[property]\n }\n\n /***\n *** TRACKING\n ***/\n identify(distinctId?: string, properties?: PostHogEventProperties, options?: PosthogCaptureOptions): this {\n const previousDistinctId = this.getDistinctId()\n distinctId = distinctId || previousDistinctId\n\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n const allProperties = this.enrichProperties({\n ...properties,\n $anon_distinct_id: this.getAnonymousId(),\n $set: properties,\n })\n\n if (distinctId !== previousDistinctId) {\n // We keep the AnonymousId to be used by decide calls and identify to link the previousId\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId)\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)\n\n this.reloadFeatureFlags()\n }\n\n super.identifyStateless(distinctId, allProperties, options)\n\n return this\n }\n\n capture(event: string, properties?: { [key: string]: any }, options?: PosthogCaptureOptions): this {\n const distinctId = this.getDistinctId()\n\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n const allProperties = this.enrichProperties(properties)\n\n super.captureStateless(distinctId, event, allProperties, options)\n\n return this\n }\n\n alias(alias: string): this {\n const distinctId = this.getDistinctId()\n\n const allProperties = this.enrichProperties({})\n\n super.aliasStateless(alias, distinctId, allProperties)\n return this\n }\n\n autocapture(\n eventType: string,\n elements: PostHogAutocaptureElement[],\n properties: PostHogEventProperties = {},\n options?: PosthogCaptureOptions\n ): this {\n const distinctId = this.getDistinctId()\n const payload = {\n distinct_id: distinctId,\n event: '$autocapture',\n properties: {\n ...this.enrichProperties(properties),\n $event_type: eventType,\n $elements: elements,\n },\n }\n\n this.enqueue('autocapture', payload, options)\n return this\n }\n\n /***\n *** GROUPS\n ***/\n\n groups(groups: { [type: string]: string | number }): this {\n // Get persisted groups\n const existingGroups = this.props.$groups || {}\n\n this.register({\n $groups: {\n ...existingGroups,\n ...groups,\n },\n })\n\n if (Object.keys(groups).find((type) => existingGroups[type] !== groups[type])) {\n this.reloadFeatureFlags()\n }\n\n return this\n }\n\n group(\n groupType: string,\n groupKey: string | number,\n groupProperties?: PostHogEventProperties,\n options?: PosthogCaptureOptions\n ): this {\n this.groups({\n [groupType]: groupKey,\n })\n\n if (groupProperties) {\n this.groupIdentify(groupType, groupKey, groupProperties, options)\n }\n\n return this\n }\n\n groupIdentify(\n groupType: string,\n groupKey: string | number,\n groupProperties?: PostHogEventProperties,\n options?: PosthogCaptureOptions\n ): this {\n const distinctId = this.getDistinctId()\n\n const eventProperties = this.enrichProperties({})\n\n super.groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties)\n\n return this\n }\n\n /***\n * PROPERTIES\n ***/\n personProperties(properties: { [type: string]: string }): this {\n // Get persisted person properties\n const existingProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.PersonProperties, {\n ...existingProperties,\n ...properties,\n })\n\n return this\n }\n\n groupProperties(properties: { [type: string]: Record<string, string> }): this {\n // Get persisted group properties\n const existingProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n if (Object.keys(existingProperties).length !== 0) {\n Object.keys(existingProperties).forEach((groupType) => {\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType],\n }\n delete properties[groupType]\n })\n }\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.GroupProperties, {\n ...existingProperties,\n ...properties,\n })\n return this\n }\n\n /***\n *** FEATURE FLAGS\n ***/\n private decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse | undefined> {\n if (this._decideResponsePromise) {\n return this._decideResponsePromise\n }\n return this._decideAsync(sendAnonDistinctId)\n }\n\n private async _decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse | undefined> {\n const distinctId = this.getDistinctId()\n const groups = this.props.$groups || {}\n const personProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n const groupProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n const extraProperties = {\n $anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : undefined,\n }\n\n this._decideResponsePromise = super\n .getDecide(distinctId, groups, personProperties, groupProperties, extraProperties)\n .then((res) => {\n if (res?.featureFlags) {\n let newFeatureFlags = res.featureFlags\n let newFeatureFlagPayloads = res.featureFlagPayloads\n if (res.errorsWhileComputingFlags) {\n // if not all flags were computed, we upsert flags instead of replacing them\n const currentFlags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.FeatureFlags\n )\n const currentFlagPayloads = this.getPersistedProperty<PostHogDecideResponse['featureFlagPayloads']>(\n PostHogPersistedProperty.FeatureFlagPayloads\n )\n newFeatureFlags = { ...currentFlags, ...res.featureFlags }\n newFeatureFlagPayloads = { ...currentFlagPayloads, ...res.featureFlagPayloads }\n }\n this.setKnownFeatureFlags(newFeatureFlags)\n this.setKnownFeatureFlagPayloads(newFeatureFlagPayloads)\n }\n\n return res\n })\n .finally(() => {\n this._decideResponsePromise = undefined\n })\n return this._decideResponsePromise\n }\n\n private setKnownFeatureFlags(featureFlags: PostHogDecideResponse['featureFlags']): void {\n this.setPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.FeatureFlags,\n featureFlags\n )\n this._events.emit('featureflags', featureFlags)\n }\n\n private setKnownFeatureFlagPayloads(featureFlagPayloads: PostHogDecideResponse['featureFlagPayloads']): void {\n this.setPersistedProperty<PostHogDecideResponse['featureFlagPayloads']>(\n PostHogPersistedProperty.FeatureFlagPayloads,\n featureFlagPayloads\n )\n }\n\n getFeatureFlag(key: string): boolean | string | undefined {\n const featureFlags = this.getFeatureFlags()\n\n if (!featureFlags) {\n // If we haven't loaded flags yet, or errored out, we respond with undefined\n return undefined\n }\n\n let response = featureFlags[key]\n // `/decide` v3 returns all flags\n\n if (response === undefined) {\n // For cases where the flag is unknown, return false\n response = false\n }\n\n if (this.sendFeatureFlagEvent && !this.flagCallReported[key]) {\n this.flagCallReported[key] = true\n this.capture('$feature_flag_called', {\n $feature_flag: key,\n $feature_flag_response: response,\n })\n }\n\n // If we have flags we either return the value (true or string) or false\n return response\n }\n\n getFeatureFlagPayload(key: string): JsonType | undefined {\n const payloads = this.getFeatureFlagPayloads()\n\n if (!payloads) {\n return undefined\n }\n\n const response = payloads[key]\n\n // Undefined means a loading or missing data issue. Null means evaluation happened and there was no match\n if (response === undefined) {\n return null\n }\n\n return this._parsePayload(response)\n }\n\n getFeatureFlagPayloads(): PostHogDecideResponse['featureFlagPayloads'] | undefined {\n const payloads = this.getPersistedProperty<PostHogDecideResponse['featureFlagPayloads']>(\n PostHogPersistedProperty.FeatureFlagPayloads\n )\n if (payloads) {\n return Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]))\n }\n return payloads\n }\n\n getFeatureFlags(): PostHogDecideResponse['featureFlags'] | undefined {\n let flags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(PostHogPersistedProperty.FeatureFlags)\n const overriddenFlags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.OverrideFeatureFlags\n )\n\n if (!overriddenFlags) {\n return flags\n }\n\n flags = flags || {}\n\n for (const key in overriddenFlags) {\n if (!overriddenFlags[key]) {\n delete flags[key]\n } else {\n flags[key] = overriddenFlags[key]\n }\n }\n\n return flags\n }\n\n getFeatureFlagsAndPayloads(): {\n flags: PostHogDecideResponse['featureFlags'] | undefined\n payloads: PostHogDecideResponse['featureFlagPayloads'] | undefined\n } {\n const flags = this.getFeatureFlags()\n const payloads = this.getFeatureFlagPayloads()\n\n return {\n flags,\n payloads,\n }\n }\n\n isFeatureEnabled(key: string): boolean | undefined {\n const response = this.getFeatureFlag(key)\n if (response === undefined) {\n return undefined\n }\n return !!response\n }\n\n // Used when we want to trigger the reload but we don't care about the result\n reloadFeatureFlags(cb?: (err?: Error, flags?: PostHogDecideResponse['featureFlags']) => void): void {\n this.decideAsync()\n .then((res) => {\n cb?.(undefined, res?.featureFlags)\n })\n .catch((e) => {\n cb?.(e, undefined)\n if (!cb) {\n console.log('[PostHog] Error reloading feature flags', e)\n }\n })\n }\n\n async reloadFeatureFlagsAsync(\n sendAnonDistinctId: boolean = true\n ): Promise<PostHogDecideResponse['featureFlags'] | undefined> {\n return (await this.decideAsync(sendAnonDistinctId))?.featureFlags\n }\n\n onFeatureFlags(cb: (flags: PostHogDecideResponse['featureFlags']) => void): () => void {\n return this.on('featureflags', async () => {\n const flags = this.getFeatureFlags()\n if (flags) {\n cb(flags)\n }\n })\n }\n\n onFeatureFlag(key: string, cb: (value: string | boolean) => void): () => void {\n return this.on('featureflags', async () => {\n const flagResponse = this.getFeatureFlag(key)\n if (flagResponse !== undefined) {\n cb(flagResponse)\n }\n })\n }\n\n overrideFeatureFlag(flags: PostHogDecideResponse['featureFlags'] | null): void {\n if (flags === null) {\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, null)\n }\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, flags)\n }\n}\n\nexport * from './types'\nexport { LZString }\n","import { PostHogPersistedProperty } from './types'\n\nexport class PostHogMemoryStorage {\n private _memoryStorage: { [key: string]: any | undefined } = {}\n\n getProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage[key]\n }\n\n setProperty(key: PostHogPersistedProperty, value: any | null): void {\n this._memoryStorage[key] = value !== null ? value : undefined\n }\n}\n","import axios from 'axios'\nimport { PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\n\n// NOTE: We use axios as a reliable, well supported request library but follow the Fetch API (roughly)\n// So that alternative implementations can be used if desired\nexport const fetch = async (url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> => {\n const res = await axios.request({\n url,\n headers: options.headers,\n method: options.method.toLowerCase(),\n data: options.body,\n signal: options.signal,\n // fetch only throws on network errors, not on HTTP errors\n validateStatus: () => true,\n })\n\n return {\n status: res.status,\n text: async () => res.data,\n json: async () => res.data,\n }\n}\n","import { createHash } from 'rusha'\nimport { FeatureFlagCondition, FlagProperty, PostHogFeatureFlag, PropertyGroup } from './types'\nimport { version } from '../package.json'\nimport { JsonType, PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\nimport { safeSetTimeout } from 'posthog-core/src/utils'\nimport { fetch } from './fetch'\n\n// eslint-disable-next-line\nconst LONG_SCALE = 0xfffffffffffffff\n\nclass ClientError extends Error {\n constructor(message: string) {\n super()\n Error.captureStackTrace(this, this.constructor)\n this.name = 'ClientError'\n this.message = message\n Object.setPrototypeOf(this, ClientError.prototype)\n }\n}\n\nclass InconclusiveMatchError extends Error {\n constructor(message: string) {\n super(message)\n this.name = this.constructor.name\n Error.captureStackTrace(this, this.constructor)\n // instanceof doesn't work in ES3 or ES5\n // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/\n // this is the workaround\n Object.setPrototypeOf(this, InconclusiveMatchError.prototype)\n }\n}\n\ntype FeatureFlagsPollerOptions = {\n personalApiKey: string\n projectApiKey: string\n host: string\n pollingInterval: number\n timeout?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nclass FeatureFlagsPoller {\n pollingInterval: number\n personalApiKey: string\n projectApiKey: string\n featureFlags: Array<PostHogFeatureFlag>\n featureFlagsByKey: Record<string, PostHogFeatureFlag>\n groupTypeMapping: Record<string, string>\n cohorts: Record<string, PropertyGroup>\n loadedSuccessfullyOnce: boolean\n timeout?: number\n host: FeatureFlagsPollerOptions['host']\n poller?: NodeJS.Timeout\n fetch: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n debugMode: boolean = false\n\n constructor({\n pollingInterval,\n personalApiKey,\n projectApiKey,\n timeout,\n host,\n ...options\n }: FeatureFlagsPollerOptions) {\n this.pollingInterval = pollingInterval\n this.personalApiKey = personalApiKey\n this.featureFlags = []\n this.featureFlagsByKey = {}\n this.groupTypeMapping = {}\n this.cohorts = {}\n this.loadedSuccessfullyOnce = false\n this.timeout = timeout\n this.projectApiKey = projectApiKey\n this.host = host\n this.poller = undefined\n // NOTE: as any is required here as the AbortSignal typing is slightly misaligned but works just fine\n this.fetch = options.fetch || fetch\n\n void this.loadFeatureFlags()\n }\n\n debug(enabled: boolean = true): void {\n this.debugMode = enabled\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<string | boolean | undefined> {\n await this.loadFeatureFlags()\n\n let response = undefined\n let featureFlag = undefined\n\n if (!this.loadedSuccessfullyOnce) {\n return response\n }\n\n for (const flag of this.featureFlags) {\n if (key === flag.key) {\n featureFlag = flag\n break\n }\n }\n\n if (featureFlag !== undefined) {\n try {\n response = this.computeFlagLocally(featureFlag, distinctId, groups, personProperties, groupProperties)\n if (this.debugMode) {\n console.debug(`Successfully computed flag locally: ${key} -> ${response}`)\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n if (this.debugMode) {\n console.debug(`InconclusiveMatchError when computing flag locally: ${key}: ${e}`)\n }\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${key}: ${e}`)\n }\n }\n }\n\n return response\n }\n\n async computeFeatureFlagPayloadLocally(key: string, matchValue: string | boolean): Promise<JsonType | undefined> {\n await this.loadFeatureFlags()\n\n let response = undefined\n\n if (!this.loadedSuccessfullyOnce) {\n return undefined\n }\n\n if (typeof matchValue == 'boolean') {\n response = this.featureFlagsByKey?.[key]?.filters?.payloads?.[matchValue.toString()]\n } else if (typeof matchValue == 'string') {\n response = this.featureFlagsByKey?.[key]?.filters?.payloads?.[matchValue]\n }\n\n // Undefined means a loading or missing data issue. Null means evaluation happened and there was no match\n if (response === undefined) {\n return null\n }\n\n return response\n }\n\n async getAllFlagsAndPayloads(\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<{\n response: Record<string, string | boolean>\n payloads: Record<string, JsonType>\n fallbackToDecide: boolean\n }> {\n await this.loadFeatureFlags()\n\n const response: Record<string, string | boolean> = {}\n const payloads: Record<string, JsonType> = {}\n let fallbackToDecide = this.featureFlags.length == 0\n\n this.featureFlags.map(async (flag) => {\n try {\n const matchValue = this.computeFlagLocally(flag, distinctId, groups, personProperties, groupProperties)\n response[flag.key] = matchValue\n const matchPayload = await this.computeFeatureFlagPayloadLocally(flag.key, matchValue)\n if (matchPayload) {\n payloads[flag.key] = matchPayload\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n // do nothing\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${flag.key}: ${e}`)\n }\n fallbackToDecide = true\n }\n })\n\n return { response, payloads, fallbackToDecide }\n }\n\n computeFlagLocally(\n flag: PostHogFeatureFlag,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): string | boolean {\n if (flag.ensure_experience_continuity) {\n throw new InconclusiveMatchError('Flag has experience continuity enabled')\n }\n\n if (!flag.active) {\n return false\n }\n\n const flagFilters = flag.filters || {}\n const aggregation_group_type_index = flagFilters.aggregation_group_type_index\n\n if (aggregation_group_type_index != undefined) {\n const groupName = this.groupTypeMapping[String(aggregation_group_type_index)]\n\n if (!groupName) {\n console.warn(\n `[FEATURE FLAGS] Unknown group type index ${aggregation_group_type_index} for feature flag ${flag.key}`\n )\n throw new InconclusiveMatchError('Flag has unknown group type index')\n }\n\n if (!(groupName in groups)) {\n console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${flag.key} without group names passed in`)\n return false\n }\n\n const focusedGroupProperties = groupProperties[groupName]\n return this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties)\n } else {\n return this.matchFeatureFlagProperties(flag, distinctId, personProperties)\n }\n }\n\n matchFeatureFlagProperties(\n flag: PostHogFeatureFlag,\n distinctId: string,\n properties: Record<string, string>\n ): string | boolean {\n const flagFilters = flag.filters || {}\n const flagConditions = flagFilters.groups || []\n let isInconclusive = false\n let result = undefined\n\n // # Stable sort conditions with variant overrides to the top. This ensures that if overrides are present, they are\n // # evaluated first, and the variant override is applied to the first matching condition.\n const sortedFlagConditions = [...flagConditions].sort((conditionA, conditionB) => {\n const AHasVariantOverride = !!conditionA.variant\n const BHasVariantOverride = !!conditionB.variant\n\n if (AHasVariantOverride && BHasVariantOverride) {\n return 0\n } else if (AHasVariantOverride) {\n return -1\n } else if (BHasVariantOverride) {\n return 1\n } else {\n return 0\n }\n })\n\n for (const condition of sortedFlagConditions) {\n try {\n if (this.isConditionMatch(flag, distinctId, condition, properties)) {\n const variantOverride = condition.variant\n const flagVariants = flagFilters.multivariate?.variants || []\n if (variantOverride && flagVariants.some((variant) => variant.key === variantOverride)) {\n result = variantOverride\n } else {\n result = this.getMatchingVariant(flag, distinctId) || true\n }\n break\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n isInconclusive = true\n } else {\n throw e\n }\n }\n }\n\n if (result !== undefined) {\n return result\n } else if (isInconclusive) {\n throw new InconclusiveMatchError(\"Can't determine if feature flag is enabled or not with given properties\")\n }\n\n // We can only return False when all conditions are False\n return false\n }\n\n isConditionMatch(\n flag: PostHogFeatureFlag,\n distinctId: string,\n condition: FeatureFlagCondition,\n properties: Record<string, string>\n ): boolean {\n const rolloutPercentage = condition.rollout_percentage\n\n if ((condition.properties || []).length > 0) {\n for (const prop of condition.properties) {\n const propertyType = prop.type\n let matches = false\n\n if (propertyType === 'cohort') {\n matches = matchCohort(prop, properties, this.cohorts)\n } else {\n matches = matchProperty(prop, properties)\n }\n\n if (!matches) {\n return false\n }\n }\n\n if (rolloutPercentage == undefined) {\n return true\n }\n }\n\n if (rolloutPercentage != undefined && _hash(flag.key, distinctId) > rolloutPercentage / 100.0) {\n return false\n }\n\n return true\n }\n\n getMatchingVariant(flag: PostHogFeatureFlag, distinctId: string): string | boolean | undefined {\n const hashValue = _hash(flag.key, distinctId, 'variant')\n const matchingVariant = this.variantLookupTable(flag).find((variant) => {\n return hashValue >= variant.valueMin && hashValue < variant.valueMax\n })\n\n if (matchingVariant) {\n return matchingVariant.key\n }\n return undefined\n }\n\n variantLookupTable(flag: PostHogFeatureFlag): { valueMin: number; valueMax: number; key: string }[] {\n const lookupTable: { valueMin: number; valueMax: number; key: string }[] = []\n let valueMin = 0\n let valueMax = 0\n const flagFilters = flag.filters || {}\n const multivariates: {\n key: string\n rollout_percentage: number\n }[] = flagFilters.multivariate?.variants || []\n\n multivariates.forEach((variant) => {\n valueMax = valueMin + variant.rollout_percentage / 100.0\n lookupTable.push({ valueMin, valueMax, key: variant.key })\n valueMin = valueMax\n })\n return lookupTable\n }\n\n async loadFeatureFlags(forceReload = false): Promise<void> {\n if (!this.loadedSuccessfullyOnce || forceReload) {\n await this._loadFeatureFlags()\n }\n }\n\n async _loadFeatureFlags(): Promise<void> {\n if (this.poller) {\n clearTimeout(this.poller)\n this.poller = undefined\n }\n this.poller = setTimeout(() => this._loadFeatureFlags(), this.pollingInterval)\n\n try {\n const res = await this._requestFeatureFlagDefinitions()\n\n if (res && res.status === 401) {\n throw new ClientError(\n `Your personalApiKey is invalid. Are you sure you're not using your Project API key? More information: https://posthog.com/docs/api/overview`\n )\n }\n\n if (res && res.status !== 200) {\n // something else went wrong, or the server is down.\n // In this case, don't override existing flags\n return\n }\n\n const responseJson = await res.json()\n if (!('flags' in responseJson)) {\n console.error(`Invalid response when getting feature flags: ${JSON.stringify(responseJson)}`)\n }\n\n this.featureFlags = responseJson.flags || []\n this.featureFlagsByKey = this.featureFlags.reduce(\n (acc, curr) => ((acc[curr.key] = curr), acc),\n <Record<string, PostHogFeatureFlag>>{}\n )\n this.groupTypeMapping = responseJson.group_type_mapping || {}\n this.cohorts = responseJson.cohorts || []\n this.loadedSuccessfullyOnce = true\n } catch (err) {\n // if an error that is not an instance of ClientError is thrown\n // we silently ignore the error when reloading feature flags\n if (err instanceof ClientError) {\n throw err\n }\n }\n }\n\n async _requestFeatureFlagDefinitions(): Promise<PostHogFetchResponse> {\n const url = `${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`\n\n const options: PostHogFetchOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.personalApiKey}`,\n 'user-agent': `posthog-node/${version}`,\n },\n }\n\n let abortTimeout = null\n\n if (this.timeout && typeof this.timeout === 'number') {\n const controller = new AbortController()\n abortTimeout = safeSetTimeout(() => {\n controller.abort()\n }, this.timeout)\n options.signal = controller.signal\n }\n\n try {\n return await this.fetch(url, options)\n } catch (err) {\n throw err\n } finally {\n clearTimeout(abortTimeout)\n }\n }\n\n stopPoller(): void {\n clearTimeout(this.poller)\n }\n}\n\n// # This function takes a distinct_id and a feature flag key and returns a float between 0 and 1.\n// # Given the same distinct_id and key, it'll always return the same float. These floats are\n// # uniformly distributed between 0 and 1, so if we want to show this feature to 20% of traffic\n// # we can do _hash(key, distinct_id) < 0.2\nfunction _hash(key: string, distinctId: string, salt: string = ''): number {\n // rusha is a fast sha1 implementation in pure javascript\n const sha1Hash = createHash()\n sha1Hash.update(`${key}.${distinctId}${salt}`)\n return parseInt(sha1Hash.digest('hex').slice(0, 15), 16) / LONG_SCALE\n}\n\nfunction matchProperty(\n property: FeatureFlagCondition['properties'][number],\n propertyValues: Record<string, any>\n): boolean {\n const key = property.key\n const value = property.value\n const operator = property.operator || 'exact'\n\n if (!(key in propertyValues)) {\n throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`)\n } else if (operator === 'is_not_set') {\n throw new InconclusiveMatchError(`Operator is_not_set is not supported`)\n }\n\n const overrideValue = propertyValues[key]\n\n switch (operator) {\n case 'exact':\n return Array.isArray(value) ? value.indexOf(overrideValue) !== -1 : value === overrideValue\n case 'is_not':\n return Array.isArray(value) ? value.indexOf(overrideValue) === -1 : value !== overrideValue\n case 'is_set':\n return key in propertyValues\n case 'icontains':\n return String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'not_icontains':\n return !String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) !== null\n case 'not_regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) === null\n case 'gt':\n return typeof overrideValue == typeof value && overrideValue > value\n case 'gte':\n return typeof overrideValue == typeof value && overrideValue >= value\n case 'lt':\n return typeof overrideValue == typeof value && overrideValue < value\n case 'lte':\n return typeof overrideValue == typeof value && overrideValue <= value\n case 'is_date_after':\n case 'is_date_before':\n const parsedDate = convertToDateTime(value)\n const overrideDate = convertToDateTime(overrideValue)\n if (operator === 'is_date_before') {\n return overrideDate < parsedDate\n }\n return overrideDate > parsedDate\n default:\n console.error(`Unknown operator: ${operator}`)\n return false\n }\n}\n\nfunction matchCohort(\n property: FeatureFlagCondition['properties'][number],\n propertyValues: Record<string, any>,\n cohortProperties: FeatureFlagsPoller['cohorts']\n): boolean {\n const cohortId = String(property.value)\n if (!(cohortId in cohortProperties)) {\n throw new InconclusiveMatchError(\"can't match cohort without a given cohort property value\")\n }\n\n const propertyGroup = cohortProperties[cohortId]\n return matchPropertyGroup(propertyGroup, propertyValues, cohortProperties)\n}\n\nfunction matchPropertyGroup(\n propertyGroup: PropertyGroup,\n propertyValues: Record<string, any>,\n cohortProperties: FeatureFlagsPoller['cohorts']\n): boolean {\n if (!propertyGroup) {\n return true\n }\n\n const propertyGroupType = propertyGroup.type\n const properties = propertyGroup.values\n\n if (!properties || properties.length === 0) {\n // empty groups are no-ops, always match\n return true\n }\n\n let errorMatchingLocally = false\n\n if ('values' in properties[0]) {\n // a nested property group\n for (const prop of properties as PropertyGroup[]) {\n try {\n const matches = matchPropertyGroup(prop, propertyValues, cohortProperties)\n if (propertyGroupType === 'AND') {\n if (!matches) {\n return false\n }\n } else {\n // OR group\n if (matches) {\n return true\n }\n }\n } catch (err) {\n if (err instanceof InconclusiveMatchError) {\n console.debug(`Failed to compute property ${prop} locally: ${err}`)\n errorMatchingLocally = true\n } else {\n throw err\n }\n }\n }\n\n if (errorMatchingLocally) {\n throw new InconclusiveMatchError(\"Can't match cohort without a given cohort property value\")\n }\n // if we get here, all matched in AND case, or none matched in OR case\n return propertyGroupType === 'AND'\n } else {\n for (const prop of properties as FlagProperty[]) {\n try {\n let matches: boolean\n if (prop.type === 'cohort') {\n matches = matchCohort(prop, propertyValues, cohortProperties)\n } else {\n matches = matchProperty(prop, propertyValues)\n }\n\n const negation = prop.negation || false\n\n if (propertyGroupType === 'AND') {\n // if negated property, do the inverse\n if (!matches && !negation) {\n return false\n }\n if (matches && negation) {\n return false\n }\n } else {\n // OR group\n if (matches && !negation) {\n return true\n }\n if (!matches && negation) {\n return true\n }\n }\n } catch (err) {\n if (err instanceof InconclusiveMatchError) {\n console.debug(`Failed to compute property ${prop} locally: ${err}`)\n errorMatchingLocally = true\n } else {\n throw err\n }\n }\n }\n\n if (errorMatchingLocally) {\n throw new InconclusiveMatchError(\"can't match cohort without a given cohort property value\")\n }\n\n // if we get here, all matched in AND case, or none matched in OR case\n return propertyGroupType === 'AND'\n }\n}\n\nfunction isValidRegex(regex: string): boolean {\n try {\n new RegExp(regex)\n return true\n } catch (err) {\n return false\n }\n}\n\nfunction convertToDateTime(value: string | number | (string | number)[] | Date): Date {\n if (value instanceof Date) {\n return value\n } else if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value)\n if (!isNaN(date.valueOf())) {\n return date\n }\n throw new InconclusiveMatchError(`${value} is in an invalid date format`)\n } else {\n throw new InconclusiveMatchError(`The date provided ${value} must be a string, number, or date object`)\n }\n}\n\nexport { FeatureFlagsPoller, matchProperty, InconclusiveMatchError, ClientError }\n","import { version } from '../package.json'\n\nimport {\n JsonType,\n PosthogCoreOptions,\n PostHogCoreStateless,\n PostHogFetchOptions,\n PostHogFetchResponse,\n PosthogFlagsAndPayloadsResponse,\n PostHogPersistedProperty,\n} from '../../posthog-core/src'\nimport { PostHogMemoryStorage } from '../../posthog-core/src/storage-memory'\nimport { EventMessageV1, GroupIdentifyMessage, IdentifyMessageV1, PostHogNodeV1 } from './types'\nimport { FeatureFlagsPoller } from './feature-flags'\nimport { fetch } from './fetch'\n\nexport type PostHogOptions = PosthogCoreOptions & {\n persistence?: 'memory'\n personalApiKey?: string\n // The interval in milliseconds between polls for refreshing feature flag definitions\n featureFlagsPollingInterval?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // Maximum size of cache that deduplicates $feature_flag_called calls per user.\n maxCacheSize?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nconst THIRTY_SECONDS = 30 * 1000\nconst MAX_CACHE_SIZE = 50 * 1000\n\n// The actual exported Nodejs API.\nexport class PostHog extends PostHogCoreStateless implements PostHogNodeV1 {\n private _memoryStorage = new PostHogMemoryStorage()\n\n private featureFlagsPoller?: FeatureFlagsPoller\n private maxCacheSize: number\n private options: PostHogOptions\n\n distinctIdHasSentFlagCalls: Record<string, string[]>\n\n constructor(apiKey: string, options: PostHogOptions = {}) {\n options.captureMode = options?.captureMode || 'json'\n super(apiKey, options)\n\n this.options = options\n\n if (options.personalApiKey) {\n this.featureFlagsPoller = new FeatureFlagsPoller({\n pollingInterval:\n typeof options.featureFlagsPollingInterval === 'number'\n ? options.featureFlagsPollingInterval\n : THIRTY_SECONDS,\n personalApiKey: options.personalApiKey,\n projectApiKey: apiKey,\n timeout: options.requestTimeout ?? 10000, // 10 seconds\n host: this.host,\n fetch: options.fetch,\n })\n }\n this.distinctIdHasSentFlagCalls = {}\n this.maxCacheSize = options.maxCacheSize || MAX_CACHE_SIZE\n }\n\n getPersistedProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage.getProperty(key)\n }\n\n setPersistedProperty(key: PostHogPersistedProperty, value: any | null): void {\n return this._memoryStorage.setProperty(key, value)\n }\n\n fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> {\n return this.options.fetch ? this.options.fetch(url, options) : fetch(url, options)\n }\n\n getLibraryId(): string {\n return 'posthog-node'\n }\n getLibraryVersion(): string {\n return version\n }\n getCustomUserAgent(): string {\n return `posthog-node/${version}`\n }\n\n enable(): void {\n return super.optIn()\n }\n\n disable(): void {\n return super.optOut()\n }\n\n debug(enabled: boolean = true): void {\n super.debug(enabled)\n this.featureFlagsPoller?.debug(enabled)\n }\n\n capture({ distinctId, event, properties, groups, sendFeatureFlags, timestamp, disableGeoip }: EventMessageV1): void {\n const _capture = (props: EventMessageV1['properties']): void => {\n super.captureStateless(distinctId, event, props, { timestamp, disableGeoip })\n }\n\n if (sendFeatureFlags) {\n super.getFeatureFlagsStateless(distinctId, groups, undefined, undefined, disableGeoip).then((flags) => {\n const featureVariantProperties: Record<string, string | boolean> = {}\n if (flags) {\n for (const [feature, variant] of Object.entries(flags)) {\n if (variant !== false) {\n featureVariantProperties[`$feature/${feature}`] = variant\n }\n }\n }\n const activeFlags = Object.keys(flags || {}).filter((flag) => flags?.[flag] !== false)\n const flagProperties = {\n $active_feature_flags: activeFlags || undefined,\n ...featureVariantProperties,\n }\n _capture({ ...properties, $groups: groups, ...flagProperties })\n })\n } else {\n _capture({ ...properties, $groups: groups })\n }\n }\n\n identify({ distinctId, properties, disableGeoip }: IdentifyMessageV1): void {\n // Catch properties passed as $set and move them to the top level\n const personProperties = properties?.$set || properties\n\n super.identifyStateless(\n distinctId,\n {\n $set: personProperties,\n },\n { disableGeoip }\n )\n }\n\n alias(data: { distinctId: string; alias: string; disableGeoip?: boolean }): void {\n super.aliasStateless(data.alias, data.distinctId, undefined, { disableGeoip: data.disableGeoip })\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n disableGeoip?: boolean\n }\n ): Promise<string | boolean | undefined> {\n const { groups, personProperties, groupProperties, disableGeoip } = options || {}\n let { onlyEvaluateLocally, sendFeatureFlagEvents } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n if (sendFeatureFlagEvents == undefined) {\n sendFeatureFlagEvents = true\n }\n\n let response = await this.featureFlagsPoller?.getFeatureFlag(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n const flagWasLocallyEvaluated = response !== undefined\n\n if (!flagWasLocallyEvaluated && !onlyEvaluateLocally) {\n response = await super.getFeatureFlagStateless(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n }\n\n const featureFlagReportedKey = `${key}_${response}`\n\n if (\n sendFeatureFlagEvents &&\n (!(distinctId in this.distinctIdHasSentFlagCalls) ||\n !this.distinctIdHasSentFlagCalls[distinctId].includes(featureFlagReportedKey))\n ) {\n if (Object.keys(this.distinctIdHasSentFlagCalls).length >= this.maxCacheSize) {\n this.distinctIdHasSentFlagCalls = {}\n }\n if (Array.isArray(this.distinctIdHasSentFlagCalls[distinctId])) {\n this.distinctIdHasSentFlagCalls[distinctId].push(featureFlagReportedKey)\n } else {\n this.distinctIdHasSentFlagCalls[distinctId] = [featureFlagReportedKey]\n }\n this.capture({\n distinctId,\n event: '$feature_flag_called',\n properties: {\n $feature_flag: key,\n $feature_flag_response: response,\n locally_evaluated: flagWasLocallyEvaluated,\n [`$feature/${key}`]: response,\n },\n groups,\n disableGeoip,\n })\n }\n return response\n }\n\n async getFeatureFlagPayload(\n key: string,\n distinctId: string,\n matchValue?: string | boolean,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n disableGeoip?: boolean\n }\n ): Promise<JsonType | undefined> {\n const { groups, personProperties, groupProperties, disableGeoip } = options || {}\n let { onlyEvaluateLocally, sendFeatureFlagEvents } = options || {}\n let response = undefined\n\n // Try to get match value locally if not provided\n if (!matchValue) {\n matchValue = await this.getFeatureFlag(key, distinctId, {\n ...options,\n onlyEvaluateLocally: true,\n })\n }\n\n if (matchValue) {\n response = await this.featureFlagsPoller?.computeFeatureFlagPayloadLocally(key, matchValue)\n }\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n if (sendFeatureFlagEvents == undefined) {\n sendFeatureFlagEvents = true\n }\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n\n const payloadWasLocallyEvaluated = response !== undefined\n\n if (!payloadWasLocallyEvaluated && !onlyEvaluateLocally) {\n response = await super.getFeatureFlagPayloadStateless(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n }\n\n try {\n return JSON.parse(response as any)\n } catch {\n return response\n }\n }\n\n async isFeatureEnabled(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n disableGeoip?: boolean\n }\n ): Promise<boolean | undefined> {\n const feat = await this.getFeatureFlag(key, distinctId, options)\n if (feat === undefined) {\n return undefined\n }\n return !!feat || false\n }\n\n async getAllFlags(\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n disableGeoip?: boolean\n }\n ): Promise<Record<string, string | boolean>> {\n const response = await this.getAllFlagsAndPayloads(distinctId, options)\n return response.featureFlags\n }\n\n async getAllFlagsAndPayloads(\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n disableGeoip?: boolean\n }\n ): Promise<PosthogFlagsAndPayloadsResponse> {\n const { groups, personProperties, groupProperties, disableGeoip } = options || {}\n let { onlyEvaluateLocally } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n\n const localEvaluationResult = await this.featureFlagsPoller?.getAllFlagsAndPayloads(\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n let featureFlags = {}\n let featureFlagPayloads = {}\n let fallbackToDecide = true\n if (localEvaluationResult) {\n featureFlags = localEvaluationResult.response\n featureFlagPayloads = localEvaluationResult.payloads\n fallbackToDecide = localEvaluationResult.fallbackToDecide\n }\n\n if (fallbackToDecide && !onlyEvaluateLocally) {\n const remoteEvaluationResult = await super.getFeatureFlagsAndPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n featureFlags = {\n ...featureFlags,\n ...(remoteEvaluationResult.flags || {}),\n }\n featureFlagPayloads = {\n ...featureFlagPayloads,\n ...(remoteEvaluationResult.payloads || {}),\n }\n }\n\n return { featureFlags, featureFlagPayloads }\n }\n\n groupIdentify({ groupType, groupKey, properties, distinctId, disableGeoip }: GroupIdentifyMessage): void {\n super.groupIdentifyStateless(groupType, groupKey, properties, { disableGeoip }, distinctId)\n }\n\n async reloadFeatureFlags(): Promise<void> {\n await this.featureFlagsPoller?.loadFeatureFlags(true)\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n\n async shutdownAsync(): Promise<void> {\n this.featureFlagsPoller?.stopPoller()\n return super.shutdownAsync()\n }\n}\n"],"names":["fetch","url","options","__awaiter","axios","request","headers","method","toLowerCase","data","body","signal","validateStatus","res","_a","sent","status","text","__generator","json","LONG_SCALE","ClientError","_super","__extends","message","_this","Error","captureStackTrace","constructor","name","Object","setPrototypeOf","prototype","InconclusiveMatchError","call","FeatureFlagsPoller","pollingInterval","personalApiKey","projectApiKey","timeout","host","__rest","debugMode","featureFlags","featureFlagsByKey","groupTypeMapping","cohorts","loadedSuccessfullyOnce","poller","undefined","loadFeatureFlags","debug","enabled","getFeatureFlag","key","distinctId","groups","personProperties","groupProperties","_b","response","featureFlag","_i","length","flag","computeFlagLocally","console","concat","e","error","computeFeatureFlagPayloadLocally","matchValue","_j","_c","filters","payloads","_d","toString","_h","_g","_e","getAllFlagsAndPayloads","fallbackToDecide","map","matchPayload","e_1","ensure_experience_continuity","active","flagFilters","aggregation_group_type_index","groupName","String","warn","focusedGroupProperties","matchFeatureFlagProperties","properties","flagConditions","isInconclusive","result","sortedFlagConditions","__spreadArray","sort","conditionA","conditionB","AHasVariantOverride","variant","BHasVariantOverride","condition","this_1","isConditionMatch","variantOverride_1","flagVariants","multivariate","variants","some","getMatchingVariant","sortedFlagConditions_1","rolloutPercentage","rollout_percentage","prop","propertyType","type","matches","matchCohort","matchProperty","_hash","hashValue","matchingVariant","variantLookupTable","find","valueMin","valueMax","lookupTable","multivariates","forEach","push","forceReload","_loadFeatureFlags","clearTimeout","setTimeout","_requestFeatureFlagDefinitions","responseJson","JSON","stringify","flags","reduce","acc","curr","group_type_mapping","err_1","Authorization","version","abortTimeout","controller_1","AbortController","safeSetTimeout","abort","err_2","stopPoller","salt","sha1Hash","createHash","update","parseInt","digest","slice","property","propertyValues","value","operator","overrideValue","Array","isArray","indexOf","includes","isValidRegex","match","parsedDate","convertToDateTime","overrideDate","cohortProperties","cohortId","propertyGroup","matchPropertyGroup","propertyGroupType","values","errorMatchingLocally","err","negation","regex","RegExp","Date","date","isNaN","valueOf","THIRTY_SECONDS","MAX_CACHE_SIZE","PostHog","apiKey","captureMode","_memoryStorage","PostHogMemoryStorage","featureFlagsPoller","featureFlagsPollingInterval","requestTimeout","distinctIdHasSentFlagCalls","maxCacheSize","getPersistedProperty","getProperty","setPersistedProperty","setProperty","getLibraryId","getLibraryVersion","getCustomUserAgent","enable","optIn","disable","optOut","capture","event","sendFeatureFlags","timestamp","disableGeoip","_capture","props","captureStateless","getFeatureFlagsStateless","then","featureVariantProperties","entries","feature","activeFlags","keys","filter","flagProperties","__assign","$active_feature_flags","$groups","identify","$set","identifyStateless","alias","aliasStateless","onlyEvaluateLocally","sendFeatureFlagEvents","flagWasLocallyEvaluated","getFeatureFlagStateless","featureFlagReportedKey","$feature_flag","$feature_flag_response","locally_evaluated","getFeatureFlagPayload","payloadWasLocallyEvaluated","getFeatureFlagPayloadStateless","parse","isFeatureEnabled","feat","getAllFlags","localEvaluationResult","featureFlagPayloads","getFeatureFlagsAndPayloadsStateless","remoteEvaluationResult","groupIdentify","groupType","groupKey","groupIdentifyStateless","reloadFeatureFlags","shutdown","shutdownAsync","PostHogCoreStateless"],"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;AAagF;AAChF;AAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;IAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;SAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;AAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;AAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AACvC,IAAA,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AAEM,IAAI,QAAQ,GAAG,YAAA;IAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;AAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjB,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;AACb,KAAC,CAAA;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAA;AAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,SAAA;AACL,IAAA,OAAO,CAAC,CAAC;AACb,CAAC;AAiBK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;AACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;AACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,SAAA,EAAE;AAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,SAAA,EAAE;AAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,KAAC,CAAC,CAAC;AACP,CAAC;AAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;AACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IAClE,SAAS,IAAI,CAAC,EAAE,EAAA;AACZ,QAAA,IAAI,CAAC;AAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AAC9D,QAAA,OAAO,CAAC;YAAE,IAAI;AACV,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;AAAE,oBAAA,OAAO,CAAC,CAAC;AAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;AACT,oBAAA,KAAK,CAAC,CAAC;AAAC,oBAAA,KAAK,CAAC;wBAAE,CAAC,GAAG,EAAE,CAAC;wBAAC,MAAM;AAC9B,oBAAA,KAAK,CAAC;wBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxD,oBAAA,KAAK,CAAC;wBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAAC,SAAS;AACjD,oBAAA,KAAK,CAAC;AAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;wBAAC,SAAS;AACjD,oBAAA;AACI,wBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;4BAAE,CAAC,GAAG,CAAC,CAAC;4BAAC,SAAS;AAAE,yBAAA;AAC5G,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,MAAM;AAAE,yBAAA;AACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;AAAE,yBAAA;wBACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAAC,MAAM;AAAE,yBAAA;wBACnE,IAAI,CAAC,CAAC,CAAC,CAAC;AAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;wBAAC,SAAS;AAC9B,iBAAA;gBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC9B,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,CAAC,CAAC;AAAE,aAAA;AAAS,oBAAA;AAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAAE,aAAA;AAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACpF;AACL,CAAC;SA+De,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAA;AACxC,IAAA,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,EAAE;AAAE,oBAAA,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,aAAA;AACJ,SAAA;AACD,IAAA,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D;;;;AC/IA,IAAY,wBAaX,CAAA;AAbD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,wBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,wBAAA,CAAA,qBAAA,CAAA,GAAA,uBAA6C,CAAA;AAC7C,IAAA,wBAAA,CAAA,sBAAA,CAAA,GAAA,wBAA+C,CAAA;AAC/C,IAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,wBAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC1C,IAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC,CAAA;AACtC,CAAC,EAbW,wBAAwB,KAAxB,wBAAwB,GAanC,EAAA,CAAA,CAAA;;AC9Ce,SAAA,MAAM,CAAC,WAAgB,EAAE,OAAe,EAAA;IACtD,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;AACzB,KAAA;AACH,CAAC;AAEK,SAAU,mBAAmB,CAAC,GAAW,EAAA;AAC7C,IAAA,OAAO,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACjC,CAAC;AAQqB,SAAA,SAAS,CAAI,EAAoB,EAAE,KAA4B,EAAA;AAA5B,IAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAA4B,GAAA,EAAA,CAAA,EAAA;;;;;;AAC3E,oBAAA,EAAA,GAA+D,KAAK,CAAA,UAAtD,EAAd,UAAU,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,CAAC,GAAA,EAAA,EAAE,EAA+C,GAAA,KAAK,CAAnC,UAAA,EAAjB,UAAU,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAA,EAAA,EAAE,EAAA,GAA4B,KAAK,CAAA,UAAV,EAAvB,UAAU,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,YAAA,EAAM,OAAA,IAAI,CAAJ,EAAI,KAAA,CAAU;oBACxE,SAAS,GAAG,IAAI,CAAA;AAEX,oBAAA,CAAC,GAAG,CAAC,CAAA;;;AAAE,oBAAA,IAAA,EAAA,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA,EAAA,OAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAC5B,oBAAA,IAAA,EAAA,CAAC,GAAG,CAAC,CAAA,EAAL,OAAK,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;AAEP,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAzB,EAAyB,CAAC,CAAA,CAAA;;;AAAnD,oBAAA,EAAA,CAAA,IAAA,EAAmD,CAAA;;;;oBAIvC,OAAM,CAAA,CAAA,YAAA,EAAE,EAAE,CAAA,CAAA;;AAAhB,oBAAA,GAAG,GAAG,EAAU,CAAA,IAAA,EAAA,CAAA;AACtB,oBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAA,CAAA;;;oBAEV,SAAS,GAAG,GAAC,CAAA;AACb,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAC,CAAC,EAAE;AAClB,wBAAA,MAAM,GAAC,CAAA;AACR,qBAAA;;;AAb+B,oBAAA,CAAC,EAAE,CAAA;;AAiBvC,gBAAA,KAAA,CAAA,EAAA,MAAM,SAAS,CAAA;;;;AAChB,CAAA;AAED;AACM,SAAU,YAAY,CAAC,UAAgB,EAAA;;IAE3C,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;AAC5B,IAAA,IAAI,EAAE,GACJ,CAAC,UAAU,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAA;AAClH,IAAA,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAA;QACxE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,EAAE;;YAET,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACpB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AACvB,SAAA;AAAM,aAAA;;YAEL,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACrB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;AACzB,SAAA;QACD,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;AACvD,KAAC,CAAC,CAAA;AACJ,CAAC;SAEe,gBAAgB,GAAA;AAC9B,IAAA,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;AAC7B,CAAC;SAEe,cAAc,GAAA;AAC5B,IAAA,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACjC,CAAC;AAEe,SAAA,cAAc,CAAC,EAAc,EAAE,OAAe,EAAA;;;IAG5D,IAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAQ,CAAA;;AAExC,IAAA,CAAA,CAAC,KAAD,IAAA,IAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,KAAK,MAAI,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,KAAK,EAAE,CAAA,CAAA;AACtB,IAAA,OAAO,CAAC,CAAA;AACV;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,IAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAA;AAC7B,IAAM,YAAY,GAAG,mEAAmE,CAAA;AACxF,IAAM,cAAc,GAAQ,EAAE,CAAA;AAE9B,SAAS,YAAY,CAAC,QAAa,EAAE,SAAc,EAAA;AACjD,IAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC7B,QAAA,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACjD,SAAA;AACF,KAAA;AACD,IAAA,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAEM,IAAM,QAAQ,GAAG;IACtB,gBAAgB,EAAE,UAAU,KAAU,EAAA;QACpC,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAM,EAAA;AACvD,YAAA,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/B,SAAC,CAAC,CAAA;AACF,QAAA,QACE,GAAG,CAAC,MAAM,GAAG,CAAC;AACd;AACA,YAAA,QAAQ;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,GAAG,CAAA;AACZ,YAAA,KAAK,CAAC;gBACJ,OAAO,GAAG,GAAG,KAAK,CAAA;AACpB,YAAA,KAAK,CAAC;gBACJ,OAAO,GAAG,GAAG,IAAI,CAAA;AACnB,YAAA,KAAK,CAAC;gBACJ,OAAO,GAAG,GAAG,GAAG,CAAA;AACnB,SAAA;KACF;IAED,oBAAoB,EAAE,UAAU,KAAU,EAAA;QACxC,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAI,KAAK,IAAI,EAAE,EAAE;AACf,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QACD,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,KAAU,EAAA;YAChE,OAAO,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACxD,SAAC,CAAC,CAAA;KACH;IAED,QAAQ,EAAE,UAAU,YAAiB,EAAA;QACnC,OAAO,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,UAAU,CAAM,EAAA;AAC1D,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,SAAS,EAAE,UAAU,YAAiB,EAAE,WAAgB,EAAE,cAAmB,EAAA;QAC3E,IAAI,YAAY,IAAI,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAM,kBAAkB,GAAQ,EAAE,EAChC,0BAA0B,GAAQ,EAAE,EACpC,YAAY,GAAG,EAAE,CAAA;QAEnB,IAAI,CAAC,EACH,KAAK,EACL,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,EAAE,EACd,iBAAiB,GAAG,CAAC;AACrB,QAAA,gBAAgB,GAAG,CAAC,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,CAAC,EACpB,qBAAqB,GAAG,CAAC,EACzB,EAAE,CAAA;AAEJ,QAAA,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAA,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE;AACxE,gBAAA,kBAAkB,CAAC,SAAS,CAAC,GAAG,gBAAgB,EAAE,CAAA;AAClD,gBAAA,0BAA0B,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;AAC7C,aAAA;AAED,YAAA,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAClC,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE;gBACxE,SAAS,GAAG,UAAU,CAAA;AACvB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAE;oBAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;wBACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,4BAAA,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,CAAA;AACxC,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;AACF,yBAAA;AACD,wBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;wBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtB,4BAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;AACD,4BAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,yBAAA;AACF,qBAAA;AAAM,yBAAA;wBACL,KAAK,GAAG,CAAC,CAAA;wBACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;4BACpC,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,CAAA;AAClD,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;4BACD,KAAK,GAAG,CAAC,CAAA;AACV,yBAAA;AACD,wBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;wBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACvB,4BAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;AACD,4BAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,yBAAA;AACF,qBAAA;AACD,oBAAA,iBAAiB,EAAE,CAAA;oBACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;wBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,wBAAA,eAAe,EAAE,CAAA;AAClB,qBAAA;AACD,oBAAA,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAA;AAC7C,iBAAA;AAAM,qBAAA;AACL,oBAAA,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;oBACrC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,wBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,qBAAA;AACF,iBAAA;AACD,gBAAA,iBAAiB,EAAE,CAAA;gBACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;oBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,oBAAA,eAAe,EAAE,CAAA;AAClB,iBAAA;;AAED,gBAAA,kBAAkB,CAAC,UAAU,CAAC,GAAG,gBAAgB,EAAE,CAAA;AACnD,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAC9B,aAAA;AACF,SAAA;;QAGD,IAAI,SAAS,KAAK,EAAE,EAAE;AACpB,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAE;gBAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;oBACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,wBAAA,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,CAAA;AACxC,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACF,qBAAA;AACD,oBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtB,wBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,KAAK,GAAG,CAAC,CAAA;oBACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;wBACpC,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,CAAA;AAClD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;wBACD,KAAK,GAAG,CAAC,CAAA;AACV,qBAAA;AACD,oBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACvB,wBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,qBAAA;AACF,iBAAA;AACD,gBAAA,iBAAiB,EAAE,CAAA;gBACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;oBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,oBAAA,eAAe,EAAE,CAAA;AAClB,iBAAA;AACD,gBAAA,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAA;AAC7C,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;gBACrC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,oBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,oBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;wBAC5C,qBAAqB,GAAG,CAAC,CAAA;wBACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;wBACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,qBAAA;AAAM,yBAAA;AACL,wBAAA,qBAAqB,EAAE,CAAA;AACxB,qBAAA;AACD,oBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,iBAAA;AACF,aAAA;AACD,YAAA,iBAAiB,EAAE,CAAA;YACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;gBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,gBAAA,eAAe,EAAE,CAAA;AAClB,aAAA;AACF,SAAA;;QAGD,KAAK,GAAG,CAAC,CAAA;QACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,YAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gBAC5C,qBAAqB,GAAG,CAAC,CAAA;gBACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,EAAE,CAAA;AACxB,aAAA;AACD,YAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,SAAA;;AAGD,QAAA,OAAO,IAAI,EAAE;AACX,YAAA,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,CAAA;AACxC,YAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gBAC5C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBACnD,MAAK;AACN,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,EAAE,CAAA;AACxB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC7B;IAED,UAAU,EAAE,UAAU,UAAe,EAAA;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;AACtB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAI,UAAU,IAAI,EAAE,EAAE;AACpB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QACD,OAAO,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,KAAU,EAAA;AACxE,YAAA,OAAO,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACrC,SAAC,CAAC,CAAA;KACH;AAED,IAAA,WAAW,EAAE,UAAU,MAAW,EAAE,UAAe,EAAE,YAAiB,EAAA;QACpE,IAAM,UAAU,GAAG,EAAE,EACnB,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAEjE,QAAA,IACE,SAAS,GAAG,CAAC,CAAA,CACb,QAAQ,GAAG,CAAC,CAAA,CACZ,OAAO,GAAG,CAAC,CACX,CAAA,KAAK,GAAQ,EAAE,CACf,CAAA,CAAC,CACD,CAAA,CAAC,EACD,IAAI,CAAA,CACJ,IAAI,CAAA,CACJ,QAAQ,CAAA,CACR,KAAK,CAAA,CACL,EAAC;QAEH,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzB,YAAA,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAClB,SAAA;QAED,IAAI,GAAG,CAAC,CAAA;QACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,KAAK,GAAG,CAAC,CAAA;QACT,OAAO,KAAK,IAAI,QAAQ,EAAE;YACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,YAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;gBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;YAClC,KAAK,KAAK,CAAC,CAAA;AACZ,SAAA;;AAGD,QAAA,SAAgB,IAAI;AAClB,YAAA,KAAK,CAAC;gBACJ,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACzB,KAAK,GAAG,CAAC,CAAA;gBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;oBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,oBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,oBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,wBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;wBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;oBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,iBAAA;AACD,gBAAA,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;gBACX,MAAK;AACP,YAAA,KAAK,CAAC;gBACJ,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC1B,KAAK,GAAG,CAAC,CAAA;gBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;oBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,oBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,oBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,wBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;wBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;oBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,iBAAA;AACD,gBAAA,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;gBACX,MAAK;AACP,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC,GAAG,CAAC,CAAA;AACL,QAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACd,QAAA,OAAO,IAAI,EAAE;AACX,YAAA,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE;AACvB,gBAAA,OAAO,EAAE,CAAA;AACV,aAAA;YAED,IAAI,GAAG,CAAC,CAAA;YACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAC/B,KAAK,GAAG,CAAC,CAAA;YACT,OAAO,KAAK,IAAI,QAAQ,EAAE;gBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,gBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,gBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,oBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;oBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;gBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,aAAA;AAED,YAAA,SAAS,CAAC,GAAG,IAAI;AACf,gBAAA,KAAK,CAAC;oBACJ,IAAI,GAAG,CAAC,CAAA;oBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACzB,KAAK,GAAG,CAAC,CAAA;oBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;wBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,wBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,4BAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;4BAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,yBAAA;AACD,wBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;wBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,qBAAA;oBAED,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAChC,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAA;AAChB,oBAAA,SAAS,EAAE,CAAA;oBACX,MAAK;AACP,gBAAA,KAAK,CAAC;oBACJ,IAAI,GAAG,CAAC,CAAA;oBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBAC1B,KAAK,GAAG,CAAC,CAAA;oBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;wBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,wBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,4BAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;4BAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,yBAAA;AACD,wBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;wBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,qBAAA;oBACD,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAChC,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAA;AAChB,oBAAA,SAAS,EAAE,CAAA;oBACX,MAAK;AACP,gBAAA,KAAK,CAAC;AACJ,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACzB,aAAA;YAED,IAAI,SAAS,IAAI,CAAC,EAAE;gBAClB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAChC,gBAAA,OAAO,EAAE,CAAA;AACV,aAAA;AAED,YAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,gBAAA,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AACtB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,QAAQ,EAAE;oBAClB,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,IAAI,CAAA;AACZ,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAGlB,YAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC5C,YAAA,SAAS,EAAE,CAAA;YAEX,CAAC,GAAG,KAAK,CAAA;YAET,IAAI,SAAS,IAAI,CAAC,EAAE;gBAClB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAChC,gBAAA,OAAO,EAAE,CAAA;AACV,aAAA;AACF,SAAA;KACF;CACF;;AC5cD,IAAA,kBAAA,kBAAA,YAAA;AAGE,IAAA,SAAA,kBAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAoD,EAAE,CAAA;AAG1D,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;KACjB;AAED,IAAA,kBAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,KAAa,EAAE,QAAkC,EAAA;QAApD,IASC,KAAA,GAAA,IAAA,CAAA;AARC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;AACxB,SAAA;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEjC,OAAO,YAAA;YACL,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,KAAK,QAAQ,CAAA,EAAA,CAAC,CAAA;AACvE,SAAC,CAAA;KACF,CAAA;AAED,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,KAAa,EAAE,OAAY,EAAA;AAC9B,QAAA,KAAuB,IAAwB,EAAA,GAAA,CAAA,EAAxB,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAxB,EAAwB,GAAA,EAAA,CAAA,MAAA,EAAxB,IAAwB,EAAE;AAA5C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;YACjB,QAAQ,CAAC,OAAO,CAAC,CAAA;AAClB,SAAA;AACD,QAAA,KAAuB,IAAsB,EAAA,GAAA,CAAA,EAAtB,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAtB,EAAsB,GAAA,EAAA,CAAA,MAAA,EAAtB,IAAsB,EAAE;AAA1C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AACjB,YAAA,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACzB,SAAA;KACF,CAAA;IACH,OAAC,kBAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACAD,IAAA,qBAAA,kBAAA,UAAA,MAAA,EAAA;IAAoC,SAAK,CAAA,qBAAA,EAAA,MAAA,CAAA,CAAA;AAGvC,IAAA,SAAA,qBAAA,CAAmB,QAA8B,EAAA;AAAjD,QAAA,IAAA,KAAA,GACE,kBAAM,qCAAqC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAC/D,IAAA,CAAA;QAFkB,KAAQ,CAAA,QAAA,GAAR,QAAQ,CAAsB;QAFjD,KAAI,CAAA,IAAA,GAAG,uBAAuB,CAAA;;KAI7B;IACH,OAAC,qBAAA,CAAA;AAAD,CANA,CAAoC,KAAK,CAMxC,CAAA,CAAA;AAED,IAAA,wBAAA,kBAAA,UAAA,MAAA,EAAA;IAAuC,SAAK,CAAA,wBAAA,EAAA,MAAA,CAAA,CAAA;AAG1C,IAAA,SAAA,wBAAA,CAAmB,KAAc,EAAA;AAAjC,QAAA,IAAA,KAAA,GACE,kBAAM,sCAAsC,EAAE,KAAK,YAAY,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAC9F,IAAA,CAAA;QAFkB,KAAK,CAAA,KAAA,GAAL,KAAK,CAAS;QAFjC,KAAI,CAAA,IAAA,GAAG,0BAA0B,CAAA;;KAIhC;IACH,OAAC,wBAAA,CAAA;AAAD,CANA,CAAuC,KAAK,CAM3C,CAAA,CAAA;AAED,SAAS,mBAAmB,CAAC,GAAQ,EAAA;AACnC,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,KAAK,GAAG,CAAC,IAAI,KAAK,uBAAuB,IAAI,GAAG,CAAC,IAAI,KAAK,0BAA0B,CAAC,CAAA;AACrH,CAAC;AAED,IAAA,oBAAA,kBAAA,YAAA;IA8BE,SAAY,oBAAA,CAAA,MAAc,EAAE,OAA4B,EAAA;;QArBhD,IAAS,CAAA,SAAA,GAAY,KAAK,CAAA;QAC1B,IAAe,CAAA,eAAA,GAAiC,EAAE,CAAA;QAClD,IAAY,CAAA,YAAA,GAAY,IAAI,CAAA;;AAK1B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAe1C,QAAA,MAAM,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAA;AAE/D,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,IAAI,KAAI,yBAAyB,CAAC,CAAA;AAC3E,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,OAAO,IAAG,IAAI,CAAC,GAAG,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;AACpE,QAAA,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAA;AACpD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,KAAI,MAAM,CAAA;;AAGjD,QAAA,IAAI,CAAC,eAAe,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,MAAM,MAAK,KAAK,CAAA;QAEhD,IAAI,CAAC,aAAa,GAAG;YACnB,UAAU,EAAE,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC;YACzC,UAAU,EAAE,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;AAC5C,YAAA,UAAU,EAAE,mBAAmB;SAChC,CAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAA;AACtD,QAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAA;KAClD;AAES,IAAA,oBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAlC,YAAA;QACE,OAAO;AACL,YAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACvC,CAAA;KACF,CAAA;AAED,IAAA,MAAA,CAAA,cAAA,CAAW,oBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;AAAnB,QAAA,GAAA,EAAA,YAAA;;AACE,YAAA,OAAO,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,mCAAI,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAA;SACrG;;;AAAA,KAAA,CAAA,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;QACE,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;KACpE,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;QACE,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KACnE,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,KAAa,EAAE,EAA4B,EAAA;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAClC,CAAA;IAED,oBAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,OAAuB,EAAA;;AAAvB,QAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAuB,GAAA,IAAA,CAAA,EAAA;AAC3B,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,mBAAmB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA;AAE5B,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAA;AAExB,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,UAAC,KAAK,EAAE,OAAO,EAAA,EAAK,OAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA,EAAA,CAAC,CAAA;AAC1G,SAAA;KACF,CAAA;IAEO,oBAAY,CAAA,SAAA,CAAA,YAAA,GAApB,UAAqB,OAAoF,EAAA;QACvG,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,YAAA,UAAU,EACL,QAAA,CAAA,QAAA,CAAA,EAAA,GAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EACzB,EAAA,IAAI,CAAC,wBAAwB,EAAE,CACnC;SACF,CAAA;KACF,CAAA;AAED;;AAEK;AACK,IAAA,oBAAA,CAAA,SAAA,CAAA,iBAAiB,GAA3B,UACE,UAAkB,EAClB,UAAmC,EACnC,OAA+B,EAAA;;;AAK/B,QAAA,IAAM,OAAO,GAAA,QAAA,CAAA,EAAA,EACR,IAAI,CAAC,YAAY,CAAC;AACnB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,UAAU,EAAA,UAAA;AACX,SAAA,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC1C,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAES,oBAAgB,CAAA,SAAA,CAAA,gBAAA,GAA1B,UACE,UAAkB,EAClB,KAAa,EACb,UAAmC,EACnC,OAA+B,EAAA;AAE/B,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAA,KAAA,EAAE,UAAU,EAAA,UAAA,EAAE,CAAC,CAAA;QACjF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAEzC,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAES,oBAAc,CAAA,SAAA,CAAA,cAAA,GAAxB,UACE,KAAa,EACb,UAAkB,EAClB,UAAmC,EACnC,OAA+B,EAAA;AAE/B,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAChC,YAAA,KAAK,EAAE,eAAe;AACtB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,UAAU,EACL,QAAA,CAAA,QAAA,CAAA,EAAA,GAAC,UAAU,IAAI,EAAE,EACpB,EAAA,EAAA,WAAW,EAAE,UAAU,EACvB,KAAK,OAAA,EACN,CAAA;AACF,SAAA,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACvC,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;AACK,IAAA,oBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAhC,UACE,SAAiB,EACjB,QAAyB,EACzB,eAAwC,EACxC,OAA+B,EAC/B,UAAmB,EACnB,eAAwC,EAAA;AAExC,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAChC,YAAA,WAAW,EAAE,UAAU,IAAI,WAAI,SAAS,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,QAAQ,CAAE;AACtD,YAAA,KAAK,EAAE,gBAAgB;YACvB,UAAU,EAAA,QAAA,CAAA,EACR,WAAW,EAAE,SAAS,EACtB,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,eAAe,IAAI,EAAE,EAC9B,GAAC,eAAe,IAAI,EAAE,EAC1B;AACF,SAAA,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACzC,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IAEW,oBAAS,CAAA,SAAA,CAAA,SAAA,GAAzB,UACE,UAAkB,EAClB,MAA4C,EAC5C,gBAA6C,EAC7C,eAA4D,EAC5D,YAAsC,EAAA;AAHtC,QAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAA4C,GAAA,EAAA,CAAA,EAAA;AAC5C,QAAA,IAAA,gBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,gBAA6C,GAAA,EAAA,CAAA,EAAA;AAC7C,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA4D,GAAA,EAAA,CAAA,EAAA;AAC5D,QAAA,IAAA,YAAA,KAAA,KAAA,CAAA,EAAA,EAAA,YAAsC,GAAA,EAAA,CAAA,EAAA;;;;AAEhC,gBAAA,GAAG,GAAG,EAAG,CAAA,MAAA,CAAA,IAAI,CAAC,IAAI,iBAAc,CAAA;AAChC,gBAAA,YAAY,GAAwB;AACxC,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA,QAAA,CAAA,EAClB,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,WAAW,EAAE,UAAU,EACvB,MAAM,EAAA,MAAA,EACN,iBAAiB,EAAE,gBAAgB,EACnC,gBAAgB,EAAE,eAAe,EAC9B,EAAA,YAAY,CACf,CAAA;iBACH,CAAA;AACD,gBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC;yBAC1C,IAAI,CAAC,UAAC,QAAQ,EAAK,EAAA,OAAA,QAAQ,CAAC,IAAI,EAAoC,CAAjD,EAAiD,CAAC;yBACrE,KAAK,CAAC,UAAC,KAAK,EAAA;AACX,wBAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAA;AACpD,wBAAA,OAAO,SAAS,CAAA;AAClB,qBAAC,CAAC,CAAA,CAAA;;;AACL,KAAA,CAAA;AAEe,IAAA,oBAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvC,UACE,GAAW,EACX,UAAkB,EAClB,MAAmC,EACnC,gBAA6C,EAC7C,eAA4D,EAC5D,YAAsB,EAAA;AAHtB,QAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAAmC,GAAA,EAAA,CAAA,EAAA;AACnC,QAAA,IAAA,gBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,gBAA6C,GAAA,EAAA,CAAA,EAAA;AAC7C,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA4D,GAAA,EAAA,CAAA,EAAA;;;;;AAGvC,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,wBAAwB,CACtD,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,YAAY,CACb,CAAA,CAAA;;AANK,wBAAA,YAAY,GAAG,EAMpB,CAAA,IAAA,EAAA,CAAA;wBAED,IAAI,CAAC,YAAY,EAAE;;AAEjB,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AAEG,wBAAA,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;;wBAGhC,IAAI,QAAQ,KAAK,SAAS,EAAE;;4BAE1B,QAAQ,GAAG,KAAK,CAAA;AACjB,yBAAA;;AAGD,wBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAA,CAAA;;;;AAChB,KAAA,CAAA;AAEe,IAAA,oBAAA,CAAA,SAAA,CAAA,8BAA8B,GAA9C,UACE,GAAW,EACX,UAAkB,EAClB,MAAmC,EACnC,gBAA6C,EAC7C,eAA4D,EAC5D,YAAsB,EAAA;AAHtB,QAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAAmC,GAAA,EAAA,CAAA,EAAA;AACnC,QAAA,IAAA,gBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,gBAA6C,GAAA,EAAA,CAAA,EAAA;AAC7C,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA4D,GAAA,EAAA,CAAA,EAAA;;;;;AAG3C,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,+BAA+B,CACzD,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,YAAY,CACb,CAAA,CAAA;;AANK,wBAAA,QAAQ,GAAG,EAMhB,CAAA,IAAA,EAAA,CAAA;wBAED,IAAI,CAAC,QAAQ,EAAE;AACb,4BAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAA,CAAA;AACjB,yBAAA;AAEK,wBAAA,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;;wBAG9B,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,4BAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAA,CAAA;AACZ,yBAAA;AAED,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA,CAAA;;;;AACpC,KAAA,CAAA;IAEe,oBAA+B,CAAA,SAAA,CAAA,+BAAA,GAA/C,UACE,UAAkB,EAClB,MAAmC,EACnC,gBAA6C,EAC7C,eAA4D,EAC5D,YAAsB,EAAA;AAHtB,QAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAAmC,GAAA,EAAA,CAAA,EAAA;AACnC,QAAA,IAAA,gBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,gBAA6C,GAAA,EAAA,CAAA,EAAA;AAC7C,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA4D,GAAA,EAAA,CAAA,EAAA;;;;;;AAI1D,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,mCAAmC,CAC5C,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,YAAY,CACb,CAAA,CAAA;;AAPG,wBAAA,QAAQ,GAAG,CACf,EAMC,CAAA,IAAA,EAAA,EACD,QAAQ,CAAA;AAEV,wBAAA,IAAI,QAAQ,EAAE;AACZ,4BAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAM,EAAA;wCAAL,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;oCAAM,OAAA,CAAC,CAAC,EAAE,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;iCAAA,CAAC,CAAC,CAAA,CAAA;AAChG,yBAAA;AACD,wBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAA,CAAA;;;;AAChB,KAAA,CAAA;IAES,oBAAa,CAAA,SAAA,CAAA,aAAA,GAAvB,UAAwB,QAAa,EAAA;QACnC,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC5B,SAAA;QAAC,OAAM,EAAA,EAAA;AACN,YAAA,OAAO,QAAQ,CAAA;AAChB,SAAA;KACF,CAAA;IAEe,oBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxC,UACE,UAAkB,EAClB,MAA4C,EAC5C,gBAA6C,EAC7C,eAA4D,EAC5D,YAAsB,EAAA;AAHtB,QAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAA4C,GAAA,EAAA,CAAA,EAAA;AAC5C,QAAA,IAAA,gBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,gBAA6C,GAAA,EAAA,CAAA,EAAA;AAC7C,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA4D,GAAA,EAAA,CAAA,EAAA;;;;AAI1D,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,mCAAmC,CAC5C,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,YAAY,CACb,CAAA,CAAA;AAPH,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,CACL,EAAA,CAAA,IAAA,EAMC,EACD,KAAK,CAAA,CAAA;;;;AACR,KAAA,CAAA;IAEe,oBAAmC,CAAA,SAAA,CAAA,mCAAA,GAAnD,UACE,UAAkB,EAClB,MAA4C,EAC5C,gBAA6C,EAC7C,eAA4D,EAC5D,YAAsB,EAAA;AAHtB,QAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAA4C,GAAA,EAAA,CAAA,EAAA;AAC5C,QAAA,IAAA,gBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,gBAA6C,GAAA,EAAA,CAAA,EAAA;AAC7C,QAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA4D,GAAA,EAAA,CAAA,EAAA;;;;;;wBAMtD,YAAY,GAAwB,EAAE,CAAA;wBAC5C,IAAI,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAZ,YAAY,GAAI,IAAI,CAAC,YAAY,EAAE;AACrC,4BAAA,YAAY,CAAC,eAAe,CAAC,GAAG,IAAI,CAAA;AACrC,yBAAA;AACsB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA,CAAA;;AAA1G,wBAAA,cAAc,GAAG,EAAyF,CAAA,IAAA,EAAA,CAAA;wBAE1G,KAAK,GAAG,cAAc,KAAd,IAAA,IAAA,cAAc,uBAAd,cAAc,CAAE,YAAY,CAAA;wBACpC,QAAQ,GAAG,cAAc,KAAd,IAAA,IAAA,cAAc,uBAAd,cAAc,CAAE,mBAAmB,CAAA;wBAEpD,OAAO,CAAA,CAAA,aAAA;AACL,gCAAA,KAAK,EAAA,KAAA;AACL,gCAAA,QAAQ,EAAA,QAAA;6BACT,CAAA,CAAA;;;;AACF,KAAA,CAAA;AAED;;AAEK;AACK,IAAA,oBAAA,CAAA,SAAA,CAAA,OAAO,GAAjB,UAAkB,IAAY,EAAE,QAAa,EAAE,OAA+B,EAAA;QAA9E,IA0CC,KAAA,GAAA,IAAA,CAAA;;QAzCC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,6EAA6E,CAAC,CAAA;YACtG,OAAM;AACP,SAAA;QAED,IAAM,OAAO,yBACR,QAAQ,CAAA,EAAA,EACX,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAC5B,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACzC,SAAS,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,SAAS,IAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,SAAS,GAAG,cAAc,EAAE,EAAA,CACtE,CAAA;AAED,QAAA,IAAM,uBAAuB,GAAG,CAAA,EAAA,GAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,YAAY,CAAA;AAC1E,QAAA,IAAI,uBAAuB,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AACvB,gBAAA,OAAO,CAAC,UAAU,GAAG,EAAE,CAAA;AACxB,aAAA;YACD,OAAO,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAA;AAC/C,SAAA;QAED,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAA;YACxC,OAAO,OAAO,CAAC,UAAU,CAAA;AAC1B,SAAA;AAED,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEjG,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAEpF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;AAGhC,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,KAAK,EAAE,CAAA;AACb,SAAA;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,KAAK,EAAE,GAAA,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC1E,SAAA;KACF,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;QAAA,IAMC,KAAA,GAAA,IAAA,CAAA;AALC,QAAA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM,EAAA;AACjC,YAAA,KAAI,CAAC,KAAK,CAAC,UAAC,GAAG,EAAE,IAAI,EAAA;AACnB,gBAAA,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1C,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH,CAAA;IAED,oBAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,QAA0C,EAAA;QAAhD,IA0EC,KAAA,GAAA,IAAA,CAAA;QAzEC,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACxB,SAAA;AAED,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAEjG,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,EAAI,CAAA;AACpB,SAAA;AAED,QAAA,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAEpF,QAAA,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,CAAC,OAAO,CAAZ,EAAY,CAAC,CAAA;AAElD,QAAA,IAAM,IAAI,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,MAAM;AACpB,YAAA,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,cAAc,EAAE;SAC1B,CAAA;AAED,QAAA,IAAM,WAAW,GAAG,YAAY,EAAE,CAAA;QAElC,IAAM,IAAI,GAAG,UAAC,GAAS,EAAA;AACrB,YAAA,IAAI,GAAG,EAAE;gBACP,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAChC,aAAA;YACD,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAG,GAAG,EAAE,QAAQ,CAAC,CAAA;;AAEzB,YAAA,OAAO,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;YACxC,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtC,SAAC,CAAA;;;;;AAMD,QAAwB,IAAI,CAAC,kBAAkB,GAAE;QAMjD,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAEpC,QAAA,IAAM,GAAG,GACP,IAAI,CAAC,WAAW,KAAK,MAAM;AACzB,cAAE,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,IAAI,EAAA,aAAA,CAAA,CAAA,MAAA,CAAc,gBAAgB,EAAE,EAAM,KAAA,CAAA,CAAA,MAAA,CAAA,IAAI,CAAC,iBAAiB,EAAE,CAAE;AAC9E,cAAE,EAAG,CAAA,MAAA,CAAA,IAAI,CAAC,IAAI,YAAS,CAAA;AAE3B,QAAA,IAAM,YAAY,GAChB,IAAI,CAAC,WAAW,KAAK,MAAM;AACzB,cAAE;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,WAAW,EAAE,MAAM;AACnB,gBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,IAAI,EAAE,OAAQ,CAAA,MAAA,CAAA,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAmB,mBAAA,CAAA;AACxF,aAAA;AACH,cAAE;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AAC/C,gBAAA,IAAI,EAAE,OAAO;aACd,CAAA;QACP,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;AAC7D,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,cAAc,CAAA;QAElD,cAAc;AACX,aAAA,IAAI,CAAC,YAAM,EAAA,OAAA,IAAI,EAAE,CAAA,EAAA,CAAC;aAClB,KAAK,CAAC,UAAC,GAAG,EAAA;YACT,IAAI,CAAC,GAAG,CAAC,CAAA;AACX,SAAC,CAAC,CAAA;KACL,CAAA;AAEa,IAAA,oBAAA,CAAA,SAAA,CAAA,cAAc,GAA5B,UACE,GAAW,EACX,OAA4B,EAC5B,YAA+B,EAAA;;;;;;;;wBAE9B,CAAC,EAAA,GAAA,CAAA,EAAA,GAAA,WAAmB,EAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,EAAA,CAAP,OAAO,GAAK,SAAS,OAAO,CAAC,EAAU,EAAA;AAC3D,4BAAA,IAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;AAClC,4BAAA,UAAU,CAAC,YAAA,EAAM,OAAA,IAAI,CAAC,KAAK,EAAE,CAAA,EAAA,EAAE,EAAE,CAAC,CAAA;4BAClC,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,yBAAC,CAAA,CAAA;AAEM,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAS,CACpB,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;4CACM,GAAG,GAAgC,IAAI,CAAA;;;;AAEnC,4CAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAA,QAAA,CAAA,EACxB,MAAM,EAAG,WAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EACtD,EAAA,OAAO,EACV,CAAA,CAAA;;4CAHF,GAAG,GAAG,SAGJ,CAAA;;;;;AAGF,4CAAA,MAAM,IAAI,wBAAwB,CAAC,GAAC,CAAC,CAAA;;4CAEvC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;AACzC,gDAAA,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACrC,6CAAA;AACD,4CAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAA,CAAA;;;AACX,6BAAA,CAAA,CAAA,EAAA,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACI,IAAI,CAAC,aAAa,CAAK,EAAA,YAAY,EACzC,CAAA,CAAA;AAlBD,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,SAkBN,CAAA,CAAA;;;;AACF,KAAA,CAAA;AAEK,IAAA,oBAAA,CAAA,SAAA,CAAA,aAAa,GAAnB,YAAA;;;;;;AACE,wBAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;;;;AAE5B,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,EAAE,CAAA,CAAA;;AAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAA;AACvB,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAA;gCACxC,OAAA,CAAC,CAAC,KAAK,CAAC,YAAA;;AAER,iCAAC,CAAC,CAAA;6BAAA,CACH,CACF,CAAA,CAAA;;AAND,wBAAA,EAAA,CAAA,IAAA,EAMC,CAAA;;;;AAED,wBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAC,CAAC,EAAE;AAC3B,4BAAA,MAAM,GAAC,CAAA;AACR,yBAAA;AACD,wBAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAC,CAAC,CAAA;;;;;;AAExD,KAAA,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;AACE,QAAA,KAAK,IAAI,CAAC,aAAa,EAAE,CAAA;KAC1B,CAAA;IACH,OAAC,oBAAA,CAAA;AAAD,CAAC,EAAA,CAAA,CAAA;AAED,gBAAA,UAAA,MAAA,EAAA;IAA0C,SAAoB,CAAA,WAAA,EAAA,MAAA,CAAA,CAAA;IAU5D,SAAY,WAAA,CAAA,MAAc,EAAE,OAA4B,EAAA;QAAxD,IAQC,KAAA,GAAA,IAAA,CAAA;;;AANC,QAAA,IAAM,kBAAkB,GAAG,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAAA;AAEzD,QAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAM,MAAM,EAAO,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,OAAO,KAAE,YAAY,EAAE,kBAAkB,EAAG,CAAA,CAAA,IAAA,IAAA,CAAA;QAXzD,KAAgB,CAAA,gBAAA,GAA+B,EAAE,CAAA;QAK/C,KAAY,CAAA,YAAA,GAA2B,EAAE,CAAA;AAQjD,QAAA,KAAI,CAAC,oBAAoB,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAA;AACjE,QAAA,KAAI,CAAC,6BAA6B,GAAG,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,4BAA4B,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAA;;KACnF;IAES,WAAc,CAAA,SAAA,CAAA,cAAA,GAAxB,UAAyB,OAAqC,EAAA;;QAC5D,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE;YAClC,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE;AACtC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AAC7F,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AAC9F,aAAA;AACF,SAAA;QAED,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE;AACpC,YAAA,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,KAAI,EAAE,CAAC;iBACnE,MAAM,CAAC,UAAC,IAAI,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,CAAK,OAAA,CAAC,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,0CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,IAAI,CAAC,CAAA,CAAA,EAAA,CAAC;AAC3D,iBAAA,MAAM,CACL,UAAC,GAAqC,EAAE,GAAG,EAAA;;gBAAK,QAC9C,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,KAAI,KAAK,GAAG,GAAG,EAClE;aAAA,EACD,EAAE,CACH,CAAA;AACH,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;YACtC,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,SAAS,CAAC,mBAAmB,KAAI,IAAI,CAAC,2BAA2B,CAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,SAAS,CAAC,mBAAmB,CAAC,CAAA;AACnH,SAAA;KACF,CAAA;AAGD,IAAA,MAAA,CAAA,cAAA,CAAY,WAAK,CAAA,SAAA,EAAA,OAAA,EAAA;;AAAjB,QAAA,GAAA,EAAA,YAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,KAAK,CAAC,CAAA;AAChG,aAAA;AACD,YAAA,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;SACzB;AAED,QAAA,GAAA,EAAA,UAAkB,GAAuC,EAAA;AACvD,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;SAClB;;;AAJA,KAAA,CAAA,CAAA;AAMO,IAAA,WAAA,CAAA,SAAA,CAAA,UAAU,GAAlB,YAAA;AACE,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;KACvB,CAAA;AAID,IAAA,WAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,KAAa,EAAE,EAA4B,EAAA;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAClC,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,gBAA6C,EAAA;AACjD,QAAA,IAAM,mBAAmB,GAAA,aAAA,CAAA,CAAI,wBAAwB,CAAC,KAAK,CAAA,GAAM,gBAAgB,IAAI,EAAE,GAAC,IAAA,CAAC,CAAA;;QAGzF,IAAI,CAAC,UAAU,EAAE,CAAA;AAEjB,QAAA,KAAkB,IAAgF,EAAA,GAAA,CAAA,EAAhF,EAA2C,GAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAhF,EAAgF,GAAA,EAAA,CAAA,MAAA,EAAhF,IAAgF,EAAE;AAA/F,YAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;YACZ,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE;gBAChE,IAAI,CAAC,oBAAoB,CAAE,wBAAgC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;AACxE,aAAA;AACF,SAAA;KACF,CAAA;AAES,IAAA,WAAA,CAAA,SAAA,CAAA,wBAAwB,GAAlC,YAAA;AACE,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAE3C,IAAM,wBAAwB,GAAqC,EAAE,CAAA;AACrE,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,KAAiC,IAA4B,EAAA,GAAA,CAAA,EAA5B,EAAA,GAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAA5B,EAA4B,GAAA,EAAA,CAAA,MAAA,EAA5B,IAA4B,EAAE;AAApD,gBAAA,IAAA,WAAkB,EAAjB,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,gBAAA,wBAAwB,CAAC,WAAY,CAAA,MAAA,CAAA,OAAO,CAAE,CAAC,GAAG,OAAO,CAAA;AAC1D,aAAA;AACF,SAAA;QACD,OACE,QAAA,CAAA,QAAA,CAAA,EAAA,qBAAqB,EAAE,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,EAAA,EACxE,wBAAwB,CACxB,EAAA,MAAA,CAAA,SAAA,CAAM,wBAAwB,CAAA,IAAA,CAAA,IAAA,CAAE,CACpC,CAAA;KACF,CAAA;IAEM,WAAgB,CAAA,SAAA,CAAA,gBAAA,GAAvB,UAAwB,UAAmC,EAAA;QACzD,OACK,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CACV,EAAA,IAAI,CAAC,YAAY,CAAA,GAChB,UAAU,IAAI,EAAE,EACjB,EAAA,IAAI,CAAC,wBAAwB,EAAE,CAAA,EAAA,EAClC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EACjC,CAAA,CAAA;KACF,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;QACE,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,SAAS,CAAC,CAAA;AACrF,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC9G,QAAA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,GAAG,IAAI,EAAE;AAC3F,YAAA,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACpC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AACzE,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;AAEpF,QAAA,OAAO,SAAS,CAAA;KACjB,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;QACE,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;KACpE,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,WAAW,CAAC,CAAA;QACpF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACjC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;AACxE,SAAA;AACD,QAAA,OAAO,MAAM,CAAA;KACd,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAA;KACvG,CAAA;IAED,WAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,QAAgB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC9F,CAAA;IAED,WAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,UAAkC,EAAA;QACzC,IAAI,CAAC,KAAK,GACL,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAA,EACV,UAAU,CACd,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC9F,CAAA;IAED,WAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,UAAkC,EAAA;QACnD,IAAI,CAAC,YAAY,GACZ,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EACjB,UAAU,CACd,CAAA;KACF,CAAA;IAED,WAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,QAAgB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;KACnC,CAAA;AAED;;AAEK;AACL,IAAA,WAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,UAAmB,EAAE,UAAmC,EAAE,OAA+B,EAAA;AAChG,QAAA,IAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AAC/C,QAAA,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAA;AAE7C,QAAA,IAAI,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAChC,SAAA;AAED,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACtC,UAAU,CACb,EAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,EACxC,IAAI,EAAE,UAAU,IAChB,CAAA;QAEF,IAAI,UAAU,KAAK,kBAAkB,EAAE;;YAErC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;YACnF,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAE1E,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAC1B,SAAA;QAED,MAAM,CAAA,SAAA,CAAA,iBAAiB,YAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAE3D,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,KAAa,EAAE,UAAmC,EAAE,OAA+B,EAAA;AACzF,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AAEvC,QAAA,IAAI,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAChC,SAAA;QAED,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAEvD,MAAM,CAAA,SAAA,CAAA,gBAAgB,CAAC,IAAA,CAAA,IAAA,EAAA,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAEjE,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,KAAa,EAAA;AACjB,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEvC,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAE/C,MAAM,CAAA,SAAA,CAAA,cAAc,YAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;AACtD,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UACE,SAAiB,EACjB,QAAqC,EACrC,UAAuC,EACvC,OAA+B,EAAA;AAD/B,QAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAuC,GAAA,EAAA,CAAA,EAAA;AAGvC,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AACvC,QAAA,IAAM,OAAO,GAAG;AACd,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,UAAU,EACL,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACpC,EAAA,EAAA,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,QAAQ,EACpB,CAAA;SACF,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC7C,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IAEL,WAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,MAA2C,EAAA;;QAEhD,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;QAE/C,IAAI,CAAC,QAAQ,CAAC;AACZ,YAAA,OAAO,EACF,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,cAAc,CACd,EAAA,MAAM,CACV;AACF,SAAA,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,EAAE;YAC7E,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAC1B,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UACE,SAAiB,EACjB,QAAyB,EACzB,eAAwC,EACxC,OAA+B,EAAA;;AAE/B,QAAA,IAAI,CAAC,MAAM,EAAA,EAAA,GAAA,EAAA;YACT,EAAC,CAAA,SAAS,IAAG,QAAQ;gBACrB,CAAA;AAEF,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AAClE,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UACE,SAAiB,EACjB,QAAyB,EACzB,eAAwC,EACxC,OAA+B,EAAA;AAE/B,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAEvC,IAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;AAEjD,QAAA,MAAA,CAAA,SAAA,CAAM,sBAAsB,CAAA,IAAA,CAAA,IAAA,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;AAExG,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IACL,WAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAsC,EAAA;;AAErD,QAAA,IAAM,kBAAkB,GACtB,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;QAEpG,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,gBAAgB,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACtF,kBAAkB,CAAA,EAClB,UAAU,CAAA,CACb,CAAA;AAEF,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,UAAsD,EAAA;;AAEpE,QAAA,IAAM,kBAAkB,GACtB,IAAI,CAAC,oBAAoB,CAAyC,wBAAwB,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAEnH,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,SAAS,EAAA;AAChD,gBAAA,kBAAkB,CAAC,SAAS,CAAC,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACxB,kBAAkB,CAAC,SAAS,CAAC,CAAA,EAC7B,UAAU,CAAC,SAAS,CAAC,CACzB,CAAA;AACD,gBAAA,OAAO,UAAU,CAAC,SAAS,CAAC,CAAA;AAC9B,aAAC,CAAC,CAAA;AACH,SAAA;QAED,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,eAAe,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACrF,kBAAkB,CAAA,EAClB,UAAU,CAAA,CACb,CAAA;AACF,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IACG,WAAW,CAAA,SAAA,CAAA,WAAA,GAAnB,UAAoB,kBAAkC,EAAA;AAAlC,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAAkC,GAAA,IAAA,CAAA,EAAA;QACpD,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,OAAO,IAAI,CAAC,sBAAsB,CAAA;AACnC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;KAC7C,CAAA;IAEa,WAAY,CAAA,SAAA,CAAA,YAAA,GAA1B,UAA2B,kBAAkC,EAAA;AAAlC,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAAkC,GAAA,IAAA,CAAA,EAAA;;;;;AACrD,gBAAA,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;gBACjC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;gBACjC,gBAAgB,GACpB,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;gBAC9F,eAAe,GACnB,IAAI,CAAC,oBAAoB,CAAyC,wBAAwB,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;AAE7G,gBAAA,eAAe,GAAG;AACtB,oBAAA,iBAAiB,EAAE,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,SAAS;iBAC1E,CAAA;AAED,gBAAA,IAAI,CAAC,sBAAsB,GAAG,MAAA,CAAA,SAAA,CAC3B,SAAS,CAAC,IAAA,CAAA,IAAA,EAAA,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAC;qBACjF,IAAI,CAAC,UAAC,GAAG,EAAA;AACR,oBAAA,IAAI,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE;AACrB,wBAAA,IAAI,eAAe,GAAG,GAAG,CAAC,YAAY,CAAA;AACtC,wBAAA,IAAI,sBAAsB,GAAG,GAAG,CAAC,mBAAmB,CAAA;wBACpD,IAAI,GAAG,CAAC,yBAAyB,EAAE;;4BAEjC,IAAM,YAAY,GAAG,KAAI,CAAC,oBAAoB,CAC5C,wBAAwB,CAAC,YAAY,CACtC,CAAA;4BACD,IAAM,mBAAmB,GAAG,KAAI,CAAC,oBAAoB,CACnD,wBAAwB,CAAC,mBAAmB,CAC7C,CAAA;AACD,4BAAA,eAAe,yBAAQ,YAAY,CAAA,EAAK,GAAG,CAAC,YAAY,CAAE,CAAA;AAC1D,4BAAA,sBAAsB,yBAAQ,mBAAmB,CAAA,EAAK,GAAG,CAAC,mBAAmB,CAAE,CAAA;AAChF,yBAAA;AACD,wBAAA,KAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAA;AAC1C,wBAAA,KAAI,CAAC,2BAA2B,CAAC,sBAAsB,CAAC,CAAA;AACzD,qBAAA;AAED,oBAAA,OAAO,GAAG,CAAA;AACZ,iBAAC,CAAC;AACD,qBAAA,OAAO,CAAC,YAAA;AACP,oBAAA,KAAI,CAAC,sBAAsB,GAAG,SAAS,CAAA;AACzC,iBAAC,CAAC,CAAA;gBACJ,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,sBAAsB,CAAA,CAAA;;;AACnC,KAAA,CAAA;IAEO,WAAoB,CAAA,SAAA,CAAA,oBAAA,GAA5B,UAA6B,YAAmD,EAAA;QAC9E,IAAI,CAAC,oBAAoB,CACvB,wBAAwB,CAAC,YAAY,EACrC,YAAY,CACb,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;KAChD,CAAA;IAEO,WAA2B,CAAA,SAAA,CAAA,2BAAA,GAAnC,UAAoC,mBAAiE,EAAA;QACnG,IAAI,CAAC,oBAAoB,CACvB,wBAAwB,CAAC,mBAAmB,EAC5C,mBAAmB,CACpB,CAAA;KACF,CAAA;IAED,WAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,GAAW,EAAA;AACxB,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAE3C,IAAI,CAAC,YAAY,EAAE;;AAEjB,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;;QAGhC,IAAI,QAAQ,KAAK,SAAS,EAAE;;YAE1B,QAAQ,GAAG,KAAK,CAAA;AACjB,SAAA;QAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACnC,gBAAA,aAAa,EAAE,GAAG;AAClB,gBAAA,sBAAsB,EAAE,QAAQ;AACjC,aAAA,CAAC,CAAA;AACH,SAAA;;AAGD,QAAA,OAAO,QAAQ,CAAA;KAChB,CAAA;IAED,WAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,GAAW,EAAA;AAC/B,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE9C,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;AAED,QAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;;QAG9B,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;KACpC,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;QAAA,IAQC,KAAA,GAAA,IAAA,CAAA;QAPC,IAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CACxC,wBAAwB,CAAC,mBAAmB,CAC7C,CAAA;AACD,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAM,EAAA;oBAAL,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;gBAAM,OAAA,CAAC,CAAC,EAAE,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;aAAA,CAAC,CAAC,CAAA;AAChG,SAAA;AACD,QAAA,OAAO,QAAQ,CAAA;KAChB,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAwC,wBAAwB,CAAC,YAAY,CAAC,CAAA;QACnH,IAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,wBAAwB,CAAC,oBAAoB,CAC9C,CAAA;QAED,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AAED,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;AAEnB,QAAA,KAAK,IAAM,GAAG,IAAI,eAAe,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;AACzB,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,aAAA;AAAM,iBAAA;gBACL,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;AAClC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACb,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,YAAA;AAIE,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;AACpC,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE9C,OAAO;AACL,YAAA,KAAK,EAAA,KAAA;AACL,YAAA,QAAQ,EAAA,QAAA;SACT,CAAA;KACF,CAAA;IAED,WAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,GAAW,EAAA;QAC1B,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;QACD,OAAO,CAAC,CAAC,QAAQ,CAAA;KAClB,CAAA;;IAGD,WAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,EAAyE,EAAA;QAC1F,IAAI,CAAC,WAAW,EAAE;aACf,IAAI,CAAC,UAAC,GAAG,EAAA;AACR,YAAA,EAAE,KAAF,IAAA,IAAA,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAG,SAAS,EAAE,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,YAAY,CAAC,CAAA;AACpC,SAAC,CAAC;aACD,KAAK,CAAC,UAAC,CAAC,EAAA;YACP,EAAE,KAAA,IAAA,IAAF,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAG,CAAC,EAAE,SAAS,CAAC,CAAA;YAClB,IAAI,CAAC,EAAE,EAAE;AACP,gBAAA,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA;AAC1D,aAAA;AACH,SAAC,CAAC,CAAA;KACL,CAAA;IAEK,WAAuB,CAAA,SAAA,CAAA,uBAAA,GAA7B,UACE,kBAAkC,EAAA;;AAAlC,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAAkC,GAAA,IAAA,CAAA,EAAA;;;;AAE1B,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAAlD,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,OAAC,EAAA,CAAA,IAAA,EAA0C,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAA,CAAA;;;;AAClE,KAAA,CAAA;IAED,WAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,EAA0D,EAAA;QAAzE,IAOC,KAAA,GAAA,IAAA,CAAA;AANC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AACvB,gBAAA,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;AACpC,gBAAA,IAAI,KAAK,EAAE;oBACT,EAAE,CAAC,KAAK,CAAC,CAAA;AACV,iBAAA;;;AACF,SAAA,CAAA,CAAA,EAAA,CAAC,CAAA;KACH,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAW,EAAE,EAAqC,EAAA;QAAhE,IAOC,KAAA,GAAA,IAAA,CAAA;AANC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AACvB,gBAAA,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,YAAY,KAAK,SAAS,EAAE;oBAC9B,EAAE,CAAC,YAAY,CAAC,CAAA;AACjB,iBAAA;;;AACF,SAAA,CAAA,CAAA,EAAA,CAAC,CAAA;KACH,CAAA;IAED,WAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAmD,EAAA;QACrE,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;AACtF,SAAA;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;KACvF,CAAA;IACH,OAAC,WAAA,CAAA;AAAD,EArhBA,CAA0C,oBAAoB,CAqhB7D;;ACrlCD,IAAA,oBAAA,kBAAA,YAAA;AAAA,IAAA,SAAA,oBAAA,GAAA;QACU,IAAc,CAAA,cAAA,GAAuC,EAAE,CAAA;KAShE;IAPC,oBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,GAA6B,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;KAChC,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,GAA6B,EAAE,KAAiB,EAAA;AAC1D,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,SAAS,CAAA;KAC9D,CAAA;IACH,OAAC,oBAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACRD;;AACO,IAAMA,KAAK,GAAG,UAAOC,GAAP,EAAoBC,OAApB,EAAgD;EAAA,OAAAC,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;AACvD,UAAA,OAAM,CAAA,CAAA;AAAA;YAAAC,yBAAK,CAACC,OAAN,CAAc;AAC9BJ,YAAAA,GAAG,EAAAA,GAD2B;YAE9BK,OAAO,EAAEJ,OAAO,CAACI,OAFa;AAG9BC,YAAAA,MAAM,EAAEL,OAAO,CAACK,MAAR,CAAeC,WAAf,EAHsB;YAI9BC,IAAI,EAAEP,OAAO,CAACQ,IAJgB;YAK9BC,MAAM,EAAET,OAAO,CAACS,MALc;AAM9B;AACAC,YAAAA,cAAc,EAAE,YAAA;AAAM,cAAA,OAAA,IAAA,CAAA;AAAI,aAAA;AAPI,WAAd,CAAA,CAAN,CAAA;;;AAANC,UAAAA,GAAG,GAAGC,EAQV,CAAAC,IARU,EAAN,CAAA;AAUN,UAAA,OAAO,CAAA,CAAA;AAAA;YAAA;YACLC,MAAM,EAAEH,GAAG,CAACG,MADP;AAELC,YAAAA,IAAI,EAAE,YAAA;cAAA,OAAAd,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;AAAA,gBAAA,OAAAe,WAAA,CAAA,IAAA,EAAA,UAAAJ,EAAA,EAAA;AAAY,kBAAA,OAAA,CAAA,CAAA;AAAA;oBAAAD,GAAG,CAACJ,IAAJ,CAAA,CAAA;AAAQ,iBAApB,CAAA,CAAA;AAAoB,eAApB,CAAA,CAAA;aAFD;AAGLU,YAAAA,IAAI,EAAE,YAAA;cAAA,OAAAhB,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;AAAA,gBAAA,OAAAe,WAAA,CAAA,IAAA,EAAA,UAAAJ,EAAA,EAAA;AAAY,kBAAA,OAAA,CAAA,CAAA;AAAA;oBAAAD,GAAG,CAACJ,IAAJ,CAAA,CAAA;AAAQ,iBAApB,CAAA,CAAA;AAAoB,eAApB,CAAA,CAAA;AAAoB,aAAA;AAHrB,WAAA,CAAP,CAAA;;;GAXmE,CAAA,CAAA;AAgBpE,CAhBM;;ACGP,IAAMW,UAAU,GAAG,iBAAnB,CAAA;;AAEA,IAAAC,WAAA;AAAA;AAAA,UAAAC,MAAA,EAAA;AAA0BC,EAAAA,SAAK,CAAAF,WAAA,EAAAC,MAAA,CAAL,CAAA;;EACxB,SAAAD,WAAA,CAAYG,OAAZ,EAA2B;IAA3B,IAAAC,KAAA,GACEH,WAAA,KAAA,KAKD,IAND,CAAA;;AAEEI,IAAAA,KAAK,CAACC,iBAAN,CAAwBF,KAAxB,EAA8BA,KAAI,CAACG,WAAnC,CAAA,CAAA;IACAH,KAAI,CAACI,IAAL,GAAY,aAAZ,CAAA;IACAJ,KAAI,CAACD,OAAL,GAAeA,OAAf,CAAA;AACAM,IAAAA,MAAM,CAACC,cAAP,CAAsBN,KAAtB,EAA4BJ,WAAW,CAACW,SAAxC,CAAA,CAAA;;AACD,GAAA;;AACH,EAAA,OAACX,WAAD,CAAA;AARA,CAAA,CAA0BK,KAA1B,CAAA,CAAA;;AAUA,IAAAO,sBAAA;AAAA;AAAA,UAAAX,MAAA,EAAA;AAAqCC,EAAAA,SAAK,CAAAU,sBAAA,EAAAX,MAAA,CAAL,CAAA;;EACnC,SAAAW,sBAAA,CAAYT,OAAZ,EAA2B;IAA3B,IACEC,KAAA,GAAAH,MAAA,CAAAY,IAAA,CAAA,IAAA,EAAMV,OAAN,CAAA,IAOD,IARD,CAAA;;AAEEC,IAAAA,KAAI,CAACI,IAAL,GAAYJ,KAAI,CAACG,WAAL,CAAiBC,IAA7B,CAAA;IACAH,KAAK,CAACC,iBAAN,CAAwBF,KAAxB,EAA8BA,KAAI,CAACG,WAAnC,CAAA,CAHyB;AAKzB;AACA;;AACAE,IAAAA,MAAM,CAACC,cAAP,CAAsBN,KAAtB,EAA4BQ,sBAAsB,CAACD,SAAnD,CAAA,CAAA;;AACD,GAAA;;AACH,EAAA,OAACC,sBAAD,CAAA;AAVA,CAAA,CAAqCP,KAArC,CAAA,CAAA;;AAqBA,IAAAS,kBAAA;AAAA;AAAA,YAAA;EAeE,SAAAA,kBAAA,CAAYrB,EAAZ,EAO4B;AAN1B,IAAA,IAAAsB,eAAe,GAAAtB,EAAA,CAAAsB,eAAf;AAAA,QACAC,cAAc,GAAAvB,EAAA,CAAAuB,cADd;AAAA,QAEAC,aAAa,GAAAxB,EAAA,CAAAwB,aAFb;AAAA,QAGAC,OAAO,GAAAzB,EAAA,CAAAyB,OAHP;AAAA,QAIAC,IAAI,GAAA1B,EAAA,CAAA0B,IAJJ;AAAA,QAKGtC,OAAO,GAAAuC,MAAA,CAAA3B,EAAA,EANA,kBAAA,kBAAA,iBAAA,WAAA,QAAA,CAMA,CALV,CAAA;;IAHF,IAAS4B,CAAAA,SAAT,GAAqB,KAArB,CAAA;IAUE,IAAKN,CAAAA,eAAL,GAAuBA,eAAvB,CAAA;IACA,IAAKC,CAAAA,cAAL,GAAsBA,cAAtB,CAAA;IACA,IAAKM,CAAAA,YAAL,GAAoB,EAApB,CAAA;IACA,IAAKC,CAAAA,iBAAL,GAAyB,EAAzB,CAAA;IACA,IAAKC,CAAAA,gBAAL,GAAwB,EAAxB,CAAA;IACA,IAAKC,CAAAA,OAAL,GAAe,EAAf,CAAA;IACA,IAAKC,CAAAA,sBAAL,GAA8B,KAA9B,CAAA;IACA,IAAKR,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAKD,CAAAA,aAAL,GAAqBA,aAArB,CAAA;IACA,IAAKE,CAAAA,IAAL,GAAYA,IAAZ,CAAA;AACA,IAAA,IAAA,CAAKQ,MAAL,GAAcC,SAAd,CAX0B;;AAa1B,IAAA,IAAA,CAAKjD,KAAL,GAAaE,OAAO,CAACF,KAAR,IAAiBA,KAA9B,CAAA;IAEA,KAAK,IAAA,CAAKkD,gBAAL,EAAL,CAAA;AACD,GAAA;;AAEDf,EAAAA,kBAAK,CAAAH,SAAL,CAAKmB,KAAL,GAAA,UAAMC,OAAN,EAA6B;AAAvB,IAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,OAAuB,GAAA,IAAvB,CAAA;AAAuB,KAAA;;IAC3B,IAAKV,CAAAA,SAAL,GAAiBU,OAAjB,CAAA;GADF,CAAA;;AAIMjB,EAAAA,kBAAc,CAAAH,SAAd,CAAcqB,cAAd,GAAN,UACEC,GADF,EAEEC,UAFF,EAGEC,MAHF,EAIEC,gBAJF,EAKEC,eALF,EAK8D;AAF5D,IAAA,IAAAF,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAmC,GAAA,EAAnC,CAAA;AAAmC,KAAA;;AACnC,IAAA,IAAAC,gBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,gBAA6C,GAAA,EAA7C,CAAA;AAA6C,KAAA;;AAC7C,IAAA,IAAAC,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,eAA4D,GAAA,EAA5D,CAAA;AAA4D,KAAA;;;;;;;AAE5D,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKR,gBAAL,EAAN,CAAA,CAAA;;;AAAAS,YAAAA,EAAA,CAAA5C,IAAA,EAAA,CAAA;;AAEI6C,YAAAA,QAAQ,GAAGX,SAAX,CAAA;AACAY,YAAAA,WAAW,GAAGZ,SAAd,CAAA;;YAEJ,IAAI,CAAC,IAAKF,CAAAA,sBAAV,EAAkC;AAChC,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOa,QAAP,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,KAAoCE,EAAA,GAAA,CAAA,EAAjBhD,KAAA,IAAK6B,CAAAA,YAAxB,EAAmBmB,EAAA,GAAAhD,EAAA,CAAAiD,MAAnB,EAAmBD,EAAA,EAAnB,EAAsC;AAA3BE,cAAAA,IAAI,GAAAlD,EAAA,CAAAgD,EAAA,CAAJ,CAAA;;AACT,cAAA,IAAIR,GAAG,KAAKU,IAAI,CAACV,GAAjB,EAAsB;AACpBO,gBAAAA,WAAW,GAAGG,IAAd,CAAA;AACA,gBAAA,MAAA;AACD,eAAA;AACF,aAAA;;YAED,IAAIH,WAAW,KAAKZ,SAApB,EAA+B;cAC7B,IAAI;AACFW,gBAAAA,QAAQ,GAAG,IAAA,CAAKK,kBAAL,CAAwBJ,WAAxB,EAAqCN,UAArC,EAAiDC,MAAjD,EAAyDC,gBAAzD,EAA2EC,eAA3E,CAAX,CAAA;;gBACA,IAAI,IAAA,CAAKhB,SAAT,EAAoB;AAClBwB,kBAAAA,OAAO,CAACf,KAAR,CAAc,sCAAA,CAAAgB,MAAA,CAAuCb,GAAvC,EAAiD,MAAjD,CAAA,CAAiDa,MAAjD,CAAiDP,QAAjD,CAAd,CAAA,CAAA;AACD,iBAAA;eAJH,CAKE,OAAOQ,CAAP,EAAU;gBACV,IAAIA,CAAC,YAAYnC,sBAAjB,EAAyC;kBACvC,IAAI,IAAA,CAAKS,SAAT,EAAoB;AAClBwB,oBAAAA,OAAO,CAACf,KAAR,CAAc,sDAAA,CAAAgB,MAAA,CAAuDb,GAAvD,EAA+D,IAA/D,CAAA,CAA+Da,MAA/D,CAA+DC,CAA/D,CAAd,CAAA,CAAA;AACD,mBAAA;AACF,iBAJD,MAIO,IAAIA,CAAC,YAAY1C,KAAjB,EAAwB;AAC7BwC,kBAAAA,OAAO,CAACG,KAAR,CAAc,gCAAA,CAAAF,MAAA,CAAiCb,GAAjC,EAAyC,IAAzC,CAAA,CAAyCa,MAAzC,CAAyCC,CAAzC,CAAd,CAAA,CAAA;AACD,iBAAA;AACF,eAAA;AACF,aAAA;;AAED,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOR,QAAP,CAAA,CAAA;;;;GAxCI,CAAA;;EA2CAzB,kBAAA,CAAAH,SAAA,CAAAsC,gCAAA,GAAN,UAAuChB,GAAvC,EAAoDiB,UAApD,EAAgF;;;;;;;AAC9E,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKrB,gBAAL,EAAN,CAAA,CAAA;;;AAAAsB,YAAAA,EAAA,CAAAzD,IAAA,EAAA,CAAA;;AAEI6C,YAAAA,QAAQ,GAAGX,SAAX,CAAA;;YAEJ,IAAI,CAAC,IAAKF,CAAAA,sBAAV,EAAkC;AAChC,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOE,SAAP,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAI,OAAOsB,UAAP,IAAqB,SAAzB,EAAoC;AAClCX,cAAAA,QAAQ,GAAG,MAAA,CAAAa,EAAA,GAAA,CAAAd,EAAA,GAAA,MAAA,IAAA,CAAKf,iBAAL,MAAyB,IAAzB,IAAyB9B,EAAA,KAAA,KAAA,CAAzB,GAAyB,KAAA,CAAzB,GAAyBA,EAAA,CAAAwC,GAAA,CAAzB,MAA+B,IAA/B,IAA+BK,EAAA,KAAA,KAAA,CAA/B,GAA+B,KAAA,CAA/B,GAA+BA,EAAA,CAAAe,OAA/B,UAAA,iBAAA,SAAA,MAAwCC,QAAxC,MAAgD,IAAhD,IAAgDC,EAAA,KAAA,KAAA,CAAhD,GAAgD,KAAA,CAAhD,GAAgDA,EAAA,CAAGL,UAAU,CAACM,QAAX,EAAH,CAA3D,CAAA;AACD,aAFD,MAEO,IAAI,OAAON,UAAP,IAAqB,QAAzB,EAAmC;AACxCX,cAAAA,QAAQ,GAAG,CAAAkB,EAAA,GAAA,CAAAC,EAAA,GAAA,MAAA,CAAAC,EAAA,GAAA,IAAA,CAAKpC,iBAAL,MAAsB,IAAtB,IAAsBoC,EAAA,KAAA,KAAA,CAAtB,GAAsB,KAAA,CAAtB,GAAsBA,EAAA,CAAG1B,GAAH,CAAtB,UAAA,iBAAA,SAAA,MAA+BoB,OAA/B,MAAsC,IAAtC,IAAsCK,EAAA,KAAA,KAAA,CAAtC,GAAsC,KAAA,CAAtC,GAAsCA,EAAA,CAAEJ,QAAxC,MAAmD,IAAnD,IAAmDG,EAAA,KAAA,KAAA,CAAnD,GAAmD,KAAA,CAAnD,GAAmDA,EAAA,CAAAP,UAAA,CAA9D,CAAA;AACD;;;YAGD,IAAIX,QAAQ,KAAKX,SAAjB,EAA4B;AAC1B,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAO,IAAP,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOW,QAAP,CAAA,CAAA;;;;GApBI,CAAA;;AAuBAzB,EAAAA,kBAAsB,CAAAH,SAAtB,CAAsBiD,sBAAtB,GAAN,UACE1B,UADF,EAEEC,MAFF,EAGEC,gBAHF,EAIEC,eAJF,EAI8D;AAF5D,IAAA,IAAAF,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAmC,GAAA,EAAnC,CAAA;AAAmC,KAAA;;AACnC,IAAA,IAAAC,gBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,gBAA6C,GAAA,EAA7C,CAAA;AAA6C,KAAA;;AAC7C,IAAA,IAAAC,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,eAA4D,GAAA,EAA5D,CAAA;AAA4D,KAAA;;;;;;;;;AAM5D,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKR,gBAAL,EAAN,CAAA,CAAA;;;AAAApC,YAAAA,EAAA,CAAAC,IAAA,EAAA,CAAA;;AAEM6C,YAAAA,QAAQ,GAAqC,EAA7C,CAAA;AACAe,YAAAA,QAAQ,GAA6B,EAArC,CAAA;AACFO,YAAAA,gBAAgB,GAAG,IAAKvC,CAAAA,YAAL,CAAkBoB,MAAlB,IAA4B,CAA/C,CAAA;AAEJ,YAAA,IAAA,CAAKpB,YAAL,CAAkBwC,GAAlB,CAAsB,UAAOnB,IAAP,EAAW;cAAA,OAAA7D,SAAA,CAAAsB,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;;;AAEvB8C,sBAAAA,UAAU,GAAG,IAAA,CAAKN,kBAAL,CAAwBD,IAAxB,EAA8BT,UAA9B,EAA0CC,MAA1C,EAAkDC,gBAAlD,EAAoEC,eAApE,CAAb,CAAA;AACNE,sBAAAA,QAAQ,CAACI,IAAI,CAACV,GAAN,CAAR,GAAqBiB,UAArB,CAAA;AACqB,sBAAA,OAAM,CAAA,CAAA;AAAA;wBAAA,IAAA,CAAKD,gCAAL,CAAsCN,IAAI,CAACV,GAA3C,EAAgDiB,UAAhD,CAAA,CAAN,CAAA;;;AAAfa,sBAAAA,YAAY,GAAGtE,EAAiE,CAAAC,IAAjE,EAAf,CAAA;;AACN,sBAAA,IAAIqE,YAAJ,EAAkB;AAChBT,wBAAAA,QAAQ,CAACX,IAAI,CAACV,GAAN,CAAR,GAAqB8B,YAArB,CAAA;AACD,uBAAA;;;;;;;;;AAED,sBAAA,IAAIC,GAAC,YAAYpD,sBAAjB,EAAyC,CAAzC,MAEO,IAAIoD,GAAC,YAAY3D,KAAjB,EAAwB;AAC7BwC,wBAAAA,OAAO,CAACG,KAAR,CAAc,gCAAA,CAAiCF,MAAjC,CAAiCH,IAAI,CAACV,GAAtC,EAA8C,IAA9C,CAAA,CAA8Ca,MAA9C,CAA8CkB,GAA9C,CAAd,CAAA,CAAA;AACD,uBAAA;;AACDH,sBAAAA,gBAAgB,GAAG,IAAnB,CAAA;;;;;;;;;;;AAEH,eAhBgC,CAAA,CAAA;aAAjC,CAAA,CAAA;AAkBA,YAAA,OAAO,CAAA,CAAA;AAAA;cAAA;AAAEtB,cAAAA,QAAQ,EAAAA,QAAV;AAAYe,cAAAA,QAAQ,UAApB;AAAsBO,cAAAA,gBAAgB,EAAAA,gBAAAA;AAAtC,aAAA,CAAP,CAAA;;;;GAlCI,CAAA;;AAqCN/C,EAAAA,kBAAkB,CAAAH,SAAlB,CAAkBiC,kBAAlB,GAAA,UACED,IADF,EAEET,UAFF,EAGEC,MAHF,EAIEC,gBAJF,EAKEC,eALF,EAK8D;AAF5D,IAAA,IAAAF,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAmC,GAAA,EAAnC,CAAA;AAAmC,KAAA;;AACnC,IAAA,IAAAC,gBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,gBAA6C,GAAA,EAA7C,CAAA;AAA6C,KAAA;;AAC7C,IAAA,IAAAC,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,eAA4D,GAAA,EAA5D,CAAA;AAA4D,KAAA;;IAE5D,IAAIM,IAAI,CAACsB,4BAAT,EAAuC;AACrC,MAAA,MAAM,IAAIrD,sBAAJ,CAA2B,wCAA3B,CAAN,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAC+B,IAAI,CAACuB,MAAV,EAAkB;AAChB,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAMC,WAAW,GAAGxB,IAAI,CAACU,OAAL,IAAgB,EAApC,CAAA;AACA,IAAA,IAAMe,4BAA4B,GAAGD,WAAW,CAACC,4BAAjD,CAAA;;IAEA,IAAIA,4BAA4B,IAAIxC,SAApC,EAA+C;MAC7C,IAAMyC,SAAS,GAAG,IAAK7C,CAAAA,gBAAL,CAAsB8C,MAAM,CAACF,4BAAD,CAA5B,CAAlB,CAAA;;MAEA,IAAI,CAACC,SAAL,EAAgB;AACdxB,QAAAA,OAAO,CAAC0B,IAAR,CACE,2CAAA,CAA4CzB,MAA5C,CAA4CsB,4BAA5C,EAA6F,oBAA7F,EAA6FtB,MAA7F,CAA6FH,IAAI,CAACV,GAAlG,CADF,CAAA,CAAA;AAGA,QAAA,MAAM,IAAIrB,sBAAJ,CAA2B,mCAA3B,CAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,EAAEyD,SAAS,IAAIlC,MAAf,CAAJ,EAA4B;QAC1BU,OAAO,CAAC0B,IAAR,CAAa,oDAAAzB,CAAAA,MAAA,CAAqDH,IAAI,CAACV,GAA1D,EAA6F,gCAA7F,CAAb,CAAA,CAAA;AACA,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAMuC,sBAAsB,GAAGnC,eAAe,CAACgC,SAAD,CAA9C,CAAA;MACA,OAAO,IAAA,CAAKI,0BAAL,CAAgC9B,IAAhC,EAAsCR,MAAM,CAACkC,SAAD,CAA5C,EAAyDG,sBAAzD,CAAP,CAAA;AACD,KAjBD,MAiBO;MACL,OAAO,IAAA,CAAKC,0BAAL,CAAgC9B,IAAhC,EAAsCT,UAAtC,EAAkDE,gBAAlD,CAAP,CAAA;AACD,KAAA;GArCH,CAAA;;EAwCAtB,kBAAA,CAAAH,SAAA,CAAA8D,0BAAA,GAAA,UACE9B,IADF,EAEET,UAFF,EAGEwC,UAHF,EAGoC;;;AAElC,IAAA,IAAMP,WAAW,GAAGxB,IAAI,CAACU,OAAL,IAAgB,EAApC,CAAA;AACA,IAAA,IAAMsB,cAAc,GAAGR,WAAW,CAAChC,MAAZ,IAAsB,EAA7C,CAAA;IACA,IAAIyC,cAAc,GAAG,KAArB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAGjD,SAAb,CALkC;AAQlC;;AACA,IAAA,IAAMkD,oBAAoB,GAAGC,aAAA,CAAA,EAAA,EAAIJ,cAAJ,EAAkB,IAAlB,CAAA,CAAoBK,IAApB,CAAyB,UAACC,UAAD,EAAaC,UAAb,EAAuB;AAC3E,MAAA,IAAMC,mBAAmB,GAAG,CAAC,CAACF,UAAU,CAACG,OAAzC,CAAA;AACA,MAAA,IAAMC,mBAAmB,GAAG,CAAC,CAACH,UAAU,CAACE,OAAzC,CAAA;;MAEA,IAAID,mBAAmB,IAAIE,mBAA3B,EAAgD;AAC9C,QAAA,OAAO,CAAP,CAAA;OADF,MAEO,IAAIF,mBAAJ,EAAyB;AAC9B,QAAA,OAAO,CAAC,CAAR,CAAA;OADK,MAEA,IAAIE,mBAAJ,EAAyB;AAC9B,QAAA,OAAO,CAAP,CAAA;AACD,OAFM,MAEA;AACL,QAAA,OAAO,CAAP,CAAA;AACD,OAAA;AACF,KAb4B,CAA7B,CAAA;;4BAeWC,WAAS;MAClB,IAAI;AACF,QAAA,IAAIC,MAAA,CAAKC,gBAAL,CAAsB7C,IAAtB,EAA4BT,UAA5B,EAAwCoD,SAAxC,EAAmDZ,UAAnD,CAAJ,EAAoE;AAClE,UAAA,IAAMe,iBAAe,GAAGH,SAAS,CAACF,OAAlC,CAAA;UACA,IAAMM,YAAY,GAAG,CAAA,CAAAjG,EAAA,GAAA0E,WAAW,CAACwB,YAAZ,MAA0B,IAA1B,IAA0BlG,EAAA,KAAA,KAAA,CAA1B,GAA0B,KAAA,CAA1B,GAA0BA,EAAA,CAAAmG,QAA1B,KAAsC,EAA3D,CAAA;;UACA,IAAIH,iBAAe,IAAIC,YAAY,CAACG,IAAb,CAAkB,UAACT,OAAD,EAAQ;AAAK,YAAA,OAAAA,OAAO,CAACnD,GAAR,KAAgBwD,iBAAhB,CAAA;AAA+B,WAA9D,CAAvB,EAAwF;AACtFZ,YAAAA,MAAM,GAAGY,iBAAT,CAAA;AACD,WAFD,MAEO;YACLZ,MAAM,GAAGU,MAAK,CAAAO,kBAAL,CAAwBnD,IAAxB,EAA8BT,UAA9B,CAAA,IAA6C,IAAtD,CAAA;AACD,WAAA;;;AAEF,SAAA;OAVH,CAWE,OAAOa,CAAP,EAAU;QACV,IAAIA,CAAC,YAAYnC,sBAAjB,EAAyC;AACvCgE,UAAAA,cAAc,GAAG,IAAjB,CAAA;AACD,SAFD,MAEO;AACL,UAAA,MAAM7B,CAAN,CAAA;AACD,SAAA;AACF,OAAA;;;;;AAlBH,IAAA,KAAwB,UAAA,EAAAgD,sBAAA,GAAAjB,oBAAxB,EAAwBrC,EAAA,GAAAsD,sBAAA,CAAArD,MAAxB,EAAwBD,EAAoB,EAA5C,EAA4C;AAAvC,MAAA,IAAM6C,SAAS,GAAAS,sBAAA,CAAAtD,EAAA,CAAf,CAAA;;4BAAM6C;;;AAmBV,KAAA;;IAED,IAAIT,MAAM,KAAKjD,SAAf,EAA0B;AACxB,MAAA,OAAOiD,MAAP,CAAA;KADF,MAEO,IAAID,cAAJ,EAAoB;AACzB,MAAA,MAAM,IAAIhE,sBAAJ,CAA2B,yEAA3B,CAAN,CAAA;AACD,KAjDiC;;;AAoDlC,IAAA,OAAO,KAAP,CAAA;GAvDF,CAAA;;AA0DAE,EAAAA,kBAAgB,CAAAH,SAAhB,CAAgB6E,gBAAhB,GAAA,UACE7C,IADF,EAEET,UAFF,EAGEoD,SAHF,EAIEZ,UAJF,EAIoC;AAElC,IAAA,IAAMsB,iBAAiB,GAAGV,SAAS,CAACW,kBAApC,CAAA;;IAEA,IAAI,CAACX,SAAS,CAACZ,UAAV,IAAwB,EAAzB,EAA6BhC,MAA7B,GAAsC,CAA1C,EAA6C;AAC3C,MAAA,KAAmB,IAAAD,EAAA,GAAA,CAAA,EAAAhD,EAAA,GAAA6F,SAAS,CAACZ,UAA7B,EAAmBjC,EAAA,GAAAhD,EAAA,CAAAiD,MAAnB,EAAmBD,EAAA,EAAnB,EAAyC;AAApC,QAAA,IAAMyD,IAAI,GAAAzG,EAAA,CAAAgD,EAAA,CAAV,CAAA;AACH,QAAA,IAAM0D,YAAY,GAAGD,IAAI,CAACE,IAA1B,CAAA;QACA,IAAIC,OAAO,GAAG,KAAd,CAAA;;QAEA,IAAIF,YAAY,KAAK,QAArB,EAA+B;UAC7BE,OAAO,GAAGC,WAAW,CAACJ,IAAD,EAAOxB,UAAP,EAAmB,IAAKjD,CAAAA,OAAxB,CAArB,CAAA;AACD,SAFD,MAEO;AACL4E,UAAAA,OAAO,GAAGE,aAAa,CAACL,IAAD,EAAOxB,UAAP,CAAvB,CAAA;AACD,SAAA;;QAED,IAAI,CAAC2B,OAAL,EAAc;AACZ,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;AACF,OAAA;;MAED,IAAIL,iBAAiB,IAAIpE,SAAzB,EAAoC;AAClC,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAIoE,iBAAiB,IAAIpE,SAArB,IAAkC4E,KAAK,CAAC7D,IAAI,CAACV,GAAN,EAAWC,UAAX,CAAL,GAA8B8D,iBAAiB,GAAG,KAAxF,EAA+F;AAC7F,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GAjCF,CAAA;;EAoCAlF,kBAAA,CAAAH,SAAA,CAAAmF,kBAAA,GAAA,UAAmBnD,IAAnB,EAA6CT,UAA7C,EAA+D;IAC7D,IAAMuE,SAAS,GAAGD,KAAK,CAAC7D,IAAI,CAACV,GAAN,EAAWC,UAAX,EAAuB,SAAvB,CAAvB,CAAA;;IACA,IAAMwE,eAAe,GAAG,IAAA,CAAKC,kBAAL,CAAwBhE,IAAxB,CAAA,CAA8BiE,IAA9B,CAAmC,UAACxB,OAAD,EAAQ;MACjE,OAAOqB,SAAS,IAAIrB,OAAO,CAACyB,QAArB,IAAiCJ,SAAS,GAAGrB,OAAO,CAAC0B,QAA5D,CAAA;AACD,KAFuB,CAAxB,CAAA;;AAIA,IAAA,IAAIJ,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAACzE,GAAvB,CAAA;AACD,KAAA;;AACD,IAAA,OAAOL,SAAP,CAAA;GATF,CAAA;;AAYAd,EAAAA,kBAAkB,CAAAH,SAAlB,CAAkBgG,kBAAlB,GAAA,UAAmBhE,IAAnB,EAA2C;;;IACzC,IAAMoE,WAAW,GAA0D,EAA3E,CAAA;IACA,IAAIF,QAAQ,GAAG,CAAf,CAAA;IACA,IAAIC,QAAQ,GAAG,CAAf,CAAA;AACA,IAAA,IAAM3C,WAAW,GAAGxB,IAAI,CAACU,OAAL,IAAgB,EAApC,CAAA;IACA,IAAM2D,aAAa,GAGb,CAAA,CAAAvH,EAAA,GAAA0E,WAAW,CAACwB,YAAZ,MAA0B,IAA1B,IAA0BlG,EAAA,KAAA,KAAA,CAA1B,GAA0B,KAAA,CAA1B,GAA0BA,EAAA,CAAAmG,QAA1B,KAAsC,EAH5C,CAAA;AAKAoB,IAAAA,aAAa,CAACC,OAAd,CAAsB,UAAC7B,OAAD,EAAQ;AAC5B0B,MAAAA,QAAQ,GAAGD,QAAQ,GAAGzB,OAAO,CAACa,kBAAR,GAA6B,KAAnD,CAAA;MACAc,WAAW,CAACG,IAAZ,CAAiB;AAAEL,QAAAA,QAAQ,UAAV;AAAYC,QAAAA,QAAQ,EAAAA,QAApB;QAAsB7E,GAAG,EAAEmD,OAAO,CAACnD,GAAAA;OAApD,CAAA,CAAA;AACA4E,MAAAA,QAAQ,GAAGC,QAAX,CAAA;KAHF,CAAA,CAAA;AAKA,IAAA,OAAOC,WAAP,CAAA;GAfF,CAAA;;AAkBMjG,EAAAA,kBAAgB,CAAAH,SAAhB,CAAgBkB,gBAAhB,GAAN,UAAuBsF,WAAvB,EAA0C;AAAnB,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,WAAmB,GAAA,KAAnB,CAAA;AAAmB,KAAA;;;;;;kBACpC,CAAC,IAAKzF,CAAAA,sBAAN,IAAgCyF,cAAhC,OAA2C,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAA3C,CAAA;AACF,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKC,iBAAL,EAAN,CAAA,CAAA;;;AAAA3H,YAAAA,EAAA,CAAAC,IAAA,EAAA,CAAA;;;;;;;;;;;GAFE,CAAA;;AAMAoB,EAAAA,kBAAA,CAAAH,SAAA,CAAAyG,iBAAA,GAAN,YAAA;;;;;;;;;YACE,IAAI,IAAA,CAAKzF,MAAT,EAAiB;cACf0F,YAAY,CAAC,IAAK1F,CAAAA,MAAN,CAAZ,CAAA;cACA,IAAKA,CAAAA,MAAL,GAAcC,SAAd,CAAA;AACD,aAAA;;AACD,YAAA,IAAA,CAAKD,MAAL,GAAc2F,UAAU,CAAC,YAAA;cAAM,OAAAlH,KAAI,CAACgH,iBAAL,EAAA,CAAA;aAAP,EAAiC,IAAKrG,CAAAA,eAAtC,CAAxB,CAAA;;;;;;AAGc,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKwG,8BAAL,EAAN,CAAA,CAAA;;;AAAN/H,YAAAA,GAAG,GAAGC,EAA2C,CAAAC,IAA3C,EAAN,CAAA;;AAEN,YAAA,IAAIF,GAAG,IAAIA,GAAG,CAACG,MAAJ,KAAe,GAA1B,EAA+B;AAC7B,cAAA,MAAM,IAAIK,WAAJ,CACJ,6IADI,CAAN,CAAA;AAGD,aAAA;;AAED,YAAA,IAAIR,GAAG,IAAIA,GAAG,CAACG,MAAJ,KAAe,GAA1B,EAA+B;AAC7B;AACA;AACA,cAAA,OAAM,CAAA,CAAA;AAAA;eAAN,CAAA;AACD,aAAA;;AAEoB,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAMH,GAAG,CAACM,IAAJ,EAAN,CAAA,CAAA;;;AAAf0H,YAAAA,YAAY,GAAG/H,EAAgB,CAAAC,IAAhB,EAAf,CAAA;;AACN,YAAA,IAAI,EAAE,OAAA,IAAW8H,YAAb,CAAJ,EAAgC;AAC9B3E,cAAAA,OAAO,CAACG,KAAR,CAAc,+CAAA,CAAAF,MAAA,CAAgD2E,IAAI,CAACC,SAAL,CAAeF,YAAf,CAAhD,CAAd,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAA,CAAKlG,YAAL,GAAoBkG,YAAY,CAACG,KAAb,IAAsB,EAA1C,CAAA;YACA,IAAKpG,CAAAA,iBAAL,GAAyB,IAAA,CAAKD,YAAL,CAAkBsG,MAAlB,CACvB,UAACC,GAAD,EAAMC,IAAN,EAAU;cAAK,OAAED,GAAG,CAACC,IAAI,CAAC7F,GAAN,CAAH,GAAgB6F,IAAjB,EAAwBD,GAAzB,CAAA;aADQ,EAEa,EAFb,CAAzB,CAAA;AAIA,YAAA,IAAA,CAAKrG,gBAAL,GAAwBgG,YAAY,CAACO,kBAAb,IAAmC,EAA3D,CAAA;AACA,YAAA,IAAA,CAAKtG,OAAL,GAAe+F,YAAY,CAAC/F,OAAb,IAAwB,EAAvC,CAAA;YACA,IAAKC,CAAAA,sBAAL,GAA8B,IAA9B,CAAA;;;;;;;AAGA;;YACA,IAAIsG,KAAG,YAAYhI,WAAnB,EAAgC;AAC9B,cAAA,MAAMgI,KAAN,CAAA;AACD,aAAA;;;;;;;;;;;;;GAxCC,CAAA;;AA4CAlH,EAAAA,kBAAA,CAAAH,SAAA,CAAA4G,8BAAA,GAAN,YAAA;;;;;;AACQ3I,YAAAA,GAAG,GAAG,EAAA,CAAGkE,MAAH,CAAG,KAAK3B,IAAR,6CAAA,CAAA,OAAA,CAAwD,IAAA,CAAKF,aAA7D,EAA0E,eAA1E,CAAN,CAAA;AAEApC,YAAAA,OAAO,GAAwB;AACnCK,cAAAA,MAAM,EAAE,KAD2B;AAEnCD,cAAAA,OAAO,EAAE;AACP,gBAAA,cAAA,EAAgB,kBADT;AAEPgJ,gBAAAA,aAAa,EAAE,SAAAnF,CAAAA,MAAA,CAAU,IAAA,CAAK9B,cAAf,CAFR;gBAGP,YAAc,EAAA,eAAA,CAAgB8B,MAAhB,CAAgBoF,OAAhB,CAAA;AAHP,eAAA;aAFL,CAAA;AASFC,YAAAA,YAAY,GAAG,IAAf,CAAA;;YAEJ,IAAI,IAAA,CAAKjH,OAAL,IAAgB,OAAO,KAAKA,OAAZ,KAAwB,QAA5C,EAAsD;cAC9CkH,YAAa,GAAA,IAAIC,eAAJ,EAAb,CAAA;cACNF,YAAY,GAAGG,cAAc,CAAC,YAAA;AAC5BF,gBAAAA,YAAU,CAACG,KAAX,EAAA,CAAA;eAD2B,EAE1B,IAAKrH,CAAAA,OAFqB,CAA7B,CAAA;AAGArC,cAAAA,OAAO,CAACS,MAAR,GAAiB8I,YAAU,CAAC9I,MAA5B,CAAA;AACD,aAAA;;;;;;;AAGQ,YAAA,OAAM,CAAA,CAAA;AAAA;AAAA,cAAA,KAAKX,KAAL,CAAWC,GAAX,EAAgBC,OAAhB,CAAA,CAAN,CAAA;;AAAP,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOY,OAAA,EAAP,CAAA,CAAA;;;;AAEA,YAAA,MAAM+I,KAAN,CAAA;;;YAEAnB,YAAY,CAACc,YAAD,CAAZ,CAAA;;;;;;;;;;;;GA3BE,CAAA;;AA+BNrH,EAAAA,kBAAA,CAAAH,SAAA,CAAA8H,UAAA,GAAA,YAAA;IACEpB,YAAY,CAAC,IAAK1F,CAAAA,MAAN,CAAZ,CAAA;GADF,CAAA;;AAGF,EAAA,OAACb,kBAAD,CAAA;AAAC,CA3YD,EAAA;AA8YA;AACA;AACA;;;AACA,SAAS0F,KAAT,CAAevE,GAAf,EAA4BC,UAA5B,EAAgDwG,IAAhD,EAAiE;AAAjB,EAAA,IAAAA,IAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,IAAiB,GAAA,EAAjB,CAAA;AAAiB,GAAA;;;EAE/D,IAAMC,QAAQ,GAAGC,gBAAU,EAA3B,CAAA;AACAD,EAAAA,QAAQ,CAACE,MAAT,CAAgB,EAAG/F,CAAAA,MAAH,CAAGb,GAAH,EAAU,GAAV,CAAA,CAAUa,MAAV,CAAUZ,UAAV,EAAuBY,MAAvB,CAAuB4F,IAAvB,CAAhB,CAAA,CAAA;AACA,EAAA,OAAOI,QAAQ,CAACH,QAAQ,CAACI,MAAT,CAAgB,KAAhB,CAAuBC,CAAAA,KAAvB,CAA6B,CAA7B,EAAgC,EAAhC,CAAD,EAAsC,EAAtC,CAAR,GAAoDjJ,UAA3D,CAAA;AACD,CAAA;;AAED,SAASwG,aAAT,CACE0C,QADF,EAEEC,cAFF,EAEqC;AAEnC,EAAA,IAAMjH,GAAG,GAAGgH,QAAQ,CAAChH,GAArB,CAAA;AACA,EAAA,IAAMkH,KAAK,GAAGF,QAAQ,CAACE,KAAvB,CAAA;AACA,EAAA,IAAMC,QAAQ,GAAGH,QAAQ,CAACG,QAAT,IAAqB,OAAtC,CAAA;;AAEA,EAAA,IAAI,EAAEnH,GAAG,IAAIiH,cAAT,CAAJ,EAA8B;IAC5B,MAAM,IAAItI,sBAAJ,CAA2B,kBAAA,CAAYqB,GAAZ,EAAe,8BAAf,CAA3B,CAAN,CAAA;AACD,GAFD,MAEO,IAAImH,QAAQ,KAAK,YAAjB,EAA+B;AACpC,IAAA,MAAM,IAAIxI,sBAAJ,CAA2B,sCAA3B,CAAN,CAAA;AACD,GAAA;;AAED,EAAA,IAAMyI,aAAa,GAAGH,cAAc,CAACjH,GAAD,CAApC,CAAA;;AAEA,EAAA,QAAQmH,QAAR;AACE,IAAA,KAAK,OAAL;AACE,MAAA,OAAOE,KAAK,CAACC,OAAN,CAAcJ,KAAd,IAAuBA,KAAK,CAACK,OAAN,CAAcH,aAAd,CAAiC,KAAA,CAAC,CAAzD,GAA6DF,KAAK,KAAKE,aAA9E,CAAA;;AACF,IAAA,KAAK,QAAL;AACE,MAAA,OAAOC,KAAK,CAACC,OAAN,CAAcJ,KAAd,IAAuBA,KAAK,CAACK,OAAN,CAAcH,aAAd,CAAiC,KAAA,CAAC,CAAzD,GAA6DF,KAAK,KAAKE,aAA9E,CAAA;;AACF,IAAA,KAAK,QAAL;MACE,OAAOpH,GAAG,IAAIiH,cAAd,CAAA;;AACF,IAAA,KAAK,WAAL;AACE,MAAA,OAAO5E,MAAM,CAAC+E,aAAD,CAAN,CAAsBlK,WAAtB,EAAoCsK,CAAAA,QAApC,CAA6CnF,MAAM,CAAC6E,KAAD,CAAN,CAAchK,WAAd,EAA7C,CAAP,CAAA;;AACF,IAAA,KAAK,eAAL;AACE,MAAA,OAAO,CAACmF,MAAM,CAAC+E,aAAD,CAAN,CAAsBlK,WAAtB,EAAA,CAAoCsK,QAApC,CAA6CnF,MAAM,CAAC6E,KAAD,CAAN,CAAchK,WAAd,EAA7C,CAAR,CAAA;;AACF,IAAA,KAAK,OAAL;MACE,OAAOuK,YAAY,CAACpF,MAAM,CAAC6E,KAAD,CAAP,CAAZ,IAA+B7E,MAAM,CAAC+E,aAAD,CAAN,CAAsBM,KAAtB,CAA4BrF,MAAM,CAAC6E,KAAD,CAAlC,MAA+C,IAArF,CAAA;;AACF,IAAA,KAAK,WAAL;MACE,OAAOO,YAAY,CAACpF,MAAM,CAAC6E,KAAD,CAAP,CAAZ,IAA+B7E,MAAM,CAAC+E,aAAD,CAAN,CAAsBM,KAAtB,CAA4BrF,MAAM,CAAC6E,KAAD,CAAlC,MAA+C,IAArF,CAAA;;AACF,IAAA,KAAK,IAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,GAAGF,KAA/D,CAAA;;AACF,IAAA,KAAK,KAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,IAAIF,KAAhE,CAAA;;AACF,IAAA,KAAK,IAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,GAAGF,KAA/D,CAAA;;AACF,IAAA,KAAK,KAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,IAAIF,KAAhE,CAAA;;AACF,IAAA,KAAK,eAAL,CAAA;AACA,IAAA,KAAK,gBAAL;AACE,MAAA,IAAMS,UAAU,GAAGC,iBAAiB,CAACV,KAAD,CAApC,CAAA;AACA,MAAA,IAAMW,YAAY,GAAGD,iBAAiB,CAACR,aAAD,CAAtC,CAAA;;MACA,IAAID,QAAQ,KAAK,gBAAjB,EAAmC;QACjC,OAAOU,YAAY,GAAGF,UAAtB,CAAA;AACD,OAAA;;MACD,OAAOE,YAAY,GAAGF,UAAtB,CAAA;;AACF,IAAA;AACE/G,MAAAA,OAAO,CAACG,KAAR,CAAc,2BAAA,CAAqBoG,QAArB,CAAd,CAAA,CAAA;AACA,MAAA,OAAO,KAAP,CAAA;AAjCJ,GAAA;AAmCD,CAAA;;AAED,SAAS9C,WAAT,CACE2C,QADF,EAEEC,cAFF,EAGEa,gBAHF,EAGiD;AAE/C,EAAA,IAAMC,QAAQ,GAAG1F,MAAM,CAAC2E,QAAQ,CAACE,KAAV,CAAvB,CAAA;;AACA,EAAA,IAAI,EAAEa,QAAQ,IAAID,gBAAd,CAAJ,EAAqC;AACnC,IAAA,MAAM,IAAInJ,sBAAJ,CAA2B,0DAA3B,CAAN,CAAA;AACD,GAAA;;AAED,EAAA,IAAMqJ,aAAa,GAAGF,gBAAgB,CAACC,QAAD,CAAtC,CAAA;AACA,EAAA,OAAOE,kBAAkB,CAACD,aAAD,EAAgBf,cAAhB,EAAgCa,gBAAhC,CAAzB,CAAA;AACD,CAAA;;AAED,SAASG,kBAAT,CACED,aADF,EAEEf,cAFF,EAGEa,gBAHF,EAGiD;EAE/C,IAAI,CAACE,aAAL,EAAoB;AAClB,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;AAED,EAAA,IAAME,iBAAiB,GAAGF,aAAa,CAAC7D,IAAxC,CAAA;AACA,EAAA,IAAM1B,UAAU,GAAGuF,aAAa,CAACG,MAAjC,CAAA;;EAEA,IAAI,CAAC1F,UAAD,IAAeA,UAAU,CAAChC,MAAX,KAAsB,CAAzC,EAA4C;AAC1C;AACA,IAAA,OAAO,IAAP,CAAA;AACD,GAAA;;EAED,IAAI2H,oBAAoB,GAAG,KAA3B,CAAA;;AAEA,EAAA,IAAI,QAAY3F,IAAAA,UAAU,CAAC,CAAD,CAA1B,EAA+B;AAC7B;AACA,IAAA,KAAmB,IAAAjC,EAAA,GAAA,CAAA,EAAAhD,EAAA,GAAAiF,UAAnB,EAAmBjC,EAA6B,GAAAhD,EAAA,CAAAiD,MAAhD,EAAmBD,IAAnB,EAAkD;AAA7C,MAAA,IAAMyD,IAAI,GAAAzG,EAAA,CAAAgD,EAAA,CAAV,CAAA;;MACH,IAAI;QACF,IAAM4D,OAAO,GAAG6D,kBAAkB,CAAChE,IAAD,EAAOgD,cAAP,EAAuBa,gBAAvB,CAAlC,CAAA;;QACA,IAAII,iBAAiB,KAAK,KAA1B,EAAiC;UAC/B,IAAI,CAAC9D,OAAL,EAAc;AACZ,YAAA,OAAO,KAAP,CAAA;AACD,WAAA;AACF,SAJD,MAIO;AACL;AACA,UAAA,IAAIA,OAAJ,EAAa;AACX,YAAA,OAAO,IAAP,CAAA;AACD,WAAA;AACF,SAAA;OAXH,CAYE,OAAOiE,GAAP,EAAY;QACZ,IAAIA,GAAG,YAAY1J,sBAAnB,EAA2C;AACzCiC,UAAAA,OAAO,CAACf,KAAR,CAAc,6BAAA,CAAAgB,MAAA,CAA8BoD,IAA9B,EAA+C,YAA/C,CAAA,CAA+CpD,MAA/C,CAA+CwH,GAA/C,CAAd,CAAA,CAAA;AACAD,UAAAA,oBAAoB,GAAG,IAAvB,CAAA;AACD,SAHD,MAGO;AACL,UAAA,MAAMC,GAAN,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,IAAID,oBAAJ,EAA0B;AACxB,MAAA,MAAM,IAAIzJ,sBAAJ,CAA2B,0DAA3B,CAAN,CAAA;AACD,KA3B4B;;;IA6B7B,OAAOuJ,iBAAiB,KAAK,KAA7B,CAAA;AACD,GA9BD,MA8BO;AACL,IAAA,KAAmB,IAAA7H,EAAA,GAAA,CAAA,EAAAc,EAAA,GAAAsB,UAAnB,EAAmBpC,EAA4B,GAAAc,EAAA,CAAAV,MAA/C,EAAmBJ,IAAnB,EAAiD;AAA5C,MAAA,IAAM4D,IAAI,GAAA9C,EAAA,CAAAd,EAAA,CAAV,CAAA;;MACH,IAAI;QACF,IAAI+D,OAAO,SAAX,CAAA;;AACA,QAAA,IAAIH,IAAI,CAACE,IAAL,KAAc,QAAlB,EAA4B;UAC1BC,OAAO,GAAGC,WAAW,CAACJ,IAAD,EAAOgD,cAAP,EAAuBa,gBAAvB,CAArB,CAAA;AACD,SAFD,MAEO;AACL1D,UAAAA,OAAO,GAAGE,aAAa,CAACL,IAAD,EAAOgD,cAAP,CAAvB,CAAA;AACD,SAAA;;AAED,QAAA,IAAMqB,QAAQ,GAAGrE,IAAI,CAACqE,QAAL,IAAiB,KAAlC,CAAA;;QAEA,IAAIJ,iBAAiB,KAAK,KAA1B,EAAiC;AAC/B;AACA,UAAA,IAAI,CAAC9D,OAAD,IAAY,CAACkE,QAAjB,EAA2B;AACzB,YAAA,OAAO,KAAP,CAAA;AACD,WAAA;;UACD,IAAIlE,OAAO,IAAIkE,QAAf,EAAyB;AACvB,YAAA,OAAO,KAAP,CAAA;AACD,WAAA;AACF,SARD,MAQO;AACL;AACA,UAAA,IAAIlE,OAAO,IAAI,CAACkE,QAAhB,EAA0B;AACxB,YAAA,OAAO,IAAP,CAAA;AACD,WAAA;;AACD,UAAA,IAAI,CAAClE,OAAD,IAAYkE,QAAhB,EAA0B;AACxB,YAAA,OAAO,IAAP,CAAA;AACD,WAAA;AACF,SAAA;OA1BH,CA2BE,OAAOD,GAAP,EAAY;QACZ,IAAIA,GAAG,YAAY1J,sBAAnB,EAA2C;AACzCiC,UAAAA,OAAO,CAACf,KAAR,CAAc,6BAAA,CAAAgB,MAAA,CAA8BoD,IAA9B,EAA+C,YAA/C,CAAA,CAA+CpD,MAA/C,CAA+CwH,GAA/C,CAAd,CAAA,CAAA;AACAD,UAAAA,oBAAoB,GAAG,IAAvB,CAAA;AACD,SAHD,MAGO;AACL,UAAA,MAAMC,GAAN,CAAA;AACD,SAAA;AACF,OAAA;AACF,KAAA;;AAED,IAAA,IAAID,oBAAJ,EAA0B;AACxB,MAAA,MAAM,IAAIzJ,sBAAJ,CAA2B,0DAA3B,CAAN,CAAA;AACD,KAzCI;;;IA4CL,OAAOuJ,iBAAiB,KAAK,KAA7B,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAST,YAAT,CAAsBc,KAAtB,EAAmC;EACjC,IAAI;IACF,IAAIC,MAAJ,CAAWD,KAAX,CAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAFF,CAGE,OAAOF,GAAP,EAAY;AACZ,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAAST,iBAAT,CAA2BV,KAA3B,EAA8E;EAC5E,IAAIA,KAAK,YAAYuB,IAArB,EAA2B;AACzB,IAAA,OAAOvB,KAAP,CAAA;GADF,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;AACjE,IAAA,IAAMwB,IAAI,GAAG,IAAID,IAAJ,CAASvB,KAAT,CAAb,CAAA;;IACA,IAAI,CAACyB,KAAK,CAACD,IAAI,CAACE,OAAL,EAAD,CAAV,EAA4B;AAC1B,MAAA,OAAOF,IAAP,CAAA;AACD,KAAA;;IACD,MAAM,IAAI/J,sBAAJ,CAA2B,SAAA,CAAGuI,KAAH,EAAQ,+BAAR,CAA3B,CAAN,CAAA;AACD,GANM,MAMA;IACL,MAAM,IAAIvI,sBAAJ,CAA2B,2BAAA,CAAqBuI,KAArB,EAA0B,2CAA1B,CAA3B,CAAN,CAAA;AACD,GAAA;AACF;;AC9lBD,IAAM2B,cAAc,GAAG,EAAA,GAAK,IAA5B,CAAA;AACA,IAAMC,cAAc,GAAG,EAAK,GAAA,IAA5B;;AAGA,IAAAC,OAAA;AAAA;AAAA,UAAA/K,MAAA,EAAA;AAA6BC,EAAAA,SAAoB,CAAA8K,OAAA,EAAA/K,MAAA,CAApB,CAAA;;AAS3B,EAAA,SAAY+K,OAAZ,CAAYC,MAAZ,EAA4BpM,OAA5B,EAAwD;AAA5B,IAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,OAA4B,GAAA,EAA5B,CAAA;AAA4B,KAAA;;IAAxD,IAqBCuB,KAAA,GAAA,IArBD,CAAA;;;;IACEvB,OAAO,CAACqM,WAAR,GAAsB,CAAArM,OAAO,KAAA,IAAP,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAAA,OAAO,CAAEqM,WAAT,KAAwB,MAA9C,CAAA;YACAjL,MAAM,CAAAY,IAAN,CAAM,IAAN,EAAMoK,MAAN,EAAcpM,OAAd,CAAA,IAAsB;AAVhBuB,IAAAA,KAAA,CAAA+K,cAAA,GAAiB,IAAIC,oBAAJ,EAAjB,CAAA;IAYNhL,KAAI,CAACvB,OAAL,GAAeA,OAAf,CAAA;;IAEA,IAAIA,OAAO,CAACmC,cAAZ,EAA4B;AAC1BZ,MAAAA,KAAI,CAACiL,kBAAL,GAA0B,IAAIvK,kBAAJ,CAAuB;AAC/CC,QAAAA,eAAe,EACb,OAAOlC,OAAO,CAACyM,2BAAf,KAA+C,QAA/C,GACIzM,OAAO,CAACyM,2BADZ,GAEIR,cAJyC;QAK/C9J,cAAc,EAAEnC,OAAO,CAACmC,cALuB;AAM/CC,QAAAA,aAAa,EAAEgK,MANgC;AAO/C/J,QAAAA,OAAO,EAAE,CAAAzB,EAAA,GAAAZ,OAAO,CAAC0M,cAAR,UAAA,iBAAA,KAAA,GAA0B,KAPY;QAQ/CpK,IAAI,EAAEf,KAAI,CAACe,IARoC;QAS/CxC,KAAK,EAAEE,OAAO,CAACF,KAAAA;AATgC,OAAvB,CAA1B,CAAA;AAWD,KAAA;;IACDyB,KAAI,CAACoL,0BAAL,GAAkC,EAAlC,CAAA;AACApL,IAAAA,KAAI,CAACqL,YAAL,GAAoB5M,OAAO,CAAC4M,YAAR,IAAwBV,cAA5C,CAAA;;AACD,GAAA;;AAEDC,EAAAA,OAAoB,CAAArK,SAApB,CAAoB+K,oBAApB,GAAA,UAAqBzJ,GAArB,EAAkD;AAChD,IAAA,OAAO,KAAKkJ,cAAL,CAAoBQ,WAApB,CAAgC1J,GAAhC,CAAP,CAAA;GADF,CAAA;;EAIA+I,OAAA,CAAArK,SAAA,CAAAiL,oBAAA,GAAA,UAAqB3J,GAArB,EAAoDkH,KAApD,EAAqE;IACnE,OAAO,IAAA,CAAKgC,cAAL,CAAoBU,WAApB,CAAgC5J,GAAhC,EAAqCkH,KAArC,CAAP,CAAA;GADF,CAAA;;EAIA6B,OAAA,CAAArK,SAAA,CAAAhC,KAAA,GAAA,UAAMC,GAAN,EAAmBC,OAAnB,EAA+C;IAC7C,OAAO,IAAA,CAAKA,OAAL,CAAaF,KAAb,GAAqB,IAAKE,CAAAA,OAAL,CAAaF,KAAb,CAAmBC,GAAnB,EAAwBC,OAAxB,CAArB,GAAwDF,KAAK,CAACC,GAAD,EAAMC,OAAN,CAApE,CAAA;GADF,CAAA;;AAIAmM,EAAAA,OAAA,CAAArK,SAAA,CAAAmL,YAAA,GAAA,YAAA;AACE,IAAA,OAAO,cAAP,CAAA;GADF,CAAA;;AAGAd,EAAAA,OAAA,CAAArK,SAAA,CAAAoL,iBAAA,GAAA,YAAA;AACE,IAAA,OAAO7D,OAAP,CAAA;GADF,CAAA;;AAGA8C,EAAAA,OAAA,CAAArK,SAAA,CAAAqL,kBAAA,GAAA,YAAA;AACE,IAAA,OAAO,eAAAlJ,CAAAA,MAAA,CAAgBoF,OAAhB,CAAP,CAAA;GADF,CAAA;;AAIA8C,EAAAA,OAAA,CAAArK,SAAA,CAAAsL,MAAA,GAAA,YAAA;IACE,OAAOhM,MAAA,CAAAU,SAAA,CAAMuL,KAAN,CAAWrL,IAAX,CAAW,IAAX,CAAP,CAAA;GADF,CAAA;;AAIAmK,EAAAA,OAAA,CAAArK,SAAA,CAAAwL,OAAA,GAAA,YAAA;IACE,OAAOlM,MAAA,CAAAU,SAAA,CAAMyL,MAAN,CAAYvL,IAAZ,CAAY,IAAZ,CAAP,CAAA;GADF,CAAA;;AAIAmK,EAAAA,OAAK,CAAArK,SAAL,CAAKmB,KAAL,GAAA,UAAMC,OAAN,EAA6B;;;AAAvB,IAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,OAAuB,GAAA,IAAvB,CAAA;AAAuB,KAAA;;IAC3B9B,MAAA,CAAAU,SAAA,CAAMmB,KAAN,CAAWjB,IAAX,CAAW,IAAX,EAAYkB,OAAZ,CAAA,CAAA;;IACA,CAAAtC,EAAA,GAAA,IAAK4L,CAAAA,kBAAL,MAAuB,IAAvB,IAAuB5L,EAAA,KAAA,KAAA,CAAvB,GAAuB,KAAA,CAAvB,GAAuBA,EAAA,CAAEqC,KAAF,CAAQC,OAAR,CAAvB,CAAA;GAFF,CAAA;;AAKAiJ,EAAAA,OAAO,CAAArK,SAAP,CAAO0L,OAAP,GAAA,UAAQ5M,EAAR,EAA4G;IAA5G,IAyBCW,KAAA,GAAA,IAzBD,CAAA;;AAAU,IAAA,IAAA8B,UAAU,gBAAV;AAAA,QAAYoK,KAAK,WAAjB;AAAA,QAAmB5H,UAAU,gBAA7B;AAAA,QAA+BvC,MAAM,GAAA1C,EAAA,CAAA0C,MAArC;AAAA,QAAuCoK,gBAAgB,GAAA9M,EAAA,CAAA8M,gBAAvD;AAAA,QAAyDC,SAAS,GAAA/M,EAAA,CAAA+M,SAAlE;AAAA,QAAoEC,YAAY,GAAAhN,EAAA,CAAAgN,YAAhF,CAAA;;AACR,IAAA,IAAMC,QAAQ,GAAG,UAACC,KAAD,EAAoC;AACnD1M,MAAAA,MAAA,CAAAU,SAAA,CAAMiM,gBAAN,CAAuB/L,IAAvB,CAAuBT,KAAvB,EAAuB8B,UAAvB,EAAmCoK,KAAnC,EAA0CK,KAA1C,EAAiD;AAAEH,QAAAA,SAAS,WAAX;AAAaC,QAAAA,YAAY,EAAAA,YAAAA;OAA1E,CAAA,CAAA;KADF,CAAA;;AAIA,IAAA,IAAIF,gBAAJ,EAAsB;MACpBtM,MAAA,CAAAU,SAAA,CAAMkM,wBAAN,CAA+BhM,IAA/B,CAA+B,IAA/B,EAA+BqB,UAA/B,EAA2CC,MAA3C,EAAmDP,SAAnD,EAA8DA,SAA9D,EAAyE6K,YAAzE,EAAuFK,IAAvF,CAA4F,UAACnF,KAAD,EAAM;QAChG,IAAMoF,wBAAwB,GAAqC,EAAnE,CAAA;;AACA,QAAA,IAAIpF,KAAJ,EAAW;UACT,KAAiC,IAAqBlF,EAAA,GAAA,CAArB,EAAAhD,EAAA,GAAAgB,MAAM,CAACuM,OAAP,CAAerF,KAAf,CAAjC,EAAiClF,EAAqB,GAAAhD,EAAA,CAAAiD,MAAtD,EAAiCD,IAAjC,EAAwD;AAA7C,YAAA,IAAAH,WAAA;AAAA,gBAAC2K,OAAO,GAAA3K,EAAA,CAAA,CAAA,CAAR;AAAA,gBAAU8C,OAAO,GAAA9C,EAAA,CAAA,CAAA,CAAjB,CAAA;;YACT,IAAI8C,OAAO,KAAK,KAAhB,EAAuB;cACrB2H,wBAAwB,CAAC,YAAYjK,MAAZ,CAAYmK,OAAZ,CAAD,CAAxB,GAAkD7H,OAAlD,CAAA;AACD,aAAA;AACF,WAAA;AACF,SAAA;;AACD,QAAA,IAAM8H,WAAW,GAAGzM,MAAM,CAAC0M,IAAP,CAAYxF,KAAK,IAAI,EAArB,CAAyByF,CAAAA,MAAzB,CAAgC,UAACzK,IAAD,EAAU;AAAA,UAAA,OAAA,CAAAgF,KAAK,KAAL,IAAA,IAAAA,KAAK,WAAL,SAAA,GAAAA,KAAK,CAAGhF,IAAH,CAAL,MAAkB,KAAlB,CAAA;AAAuB,SAAjE,CAApB,CAAA;;QACA,IAAM0K,cAAc,GAClBC,QAAA,CAAA;UAAAC,qBAAqB,EAAEL,WAAW,IAAItL,SAAAA;SAAtC,EACGmL,wBADH,CADF,CAAA;;QAIAL,QAAQ,CAAAY,QAAA,CAAAA,QAAA,CAAAA,QAAA,CAAA,EAAA,EAAM5I,UAAN,CAAA,EAAkB;AAAA8I,UAAAA,OAAO,EAAErL,MAAAA;AAAT,SAAlB,CAAA,EAAsCkL,cAAtC,CAAA,CAAR,CAAA;OAdF,CAAA,CAAA;AAgBD,KAjBD,MAiBO;MACLX,QAAQ,uBAAMhI,aAAU;AAAE8I,QAAAA,OAAO,EAAErL,MAAAA;AAAX,QAAhB,CAAR,CAAA;AACD,KAAA;GAxBH,CAAA;;AA2BA6I,EAAAA,OAAQ,CAAArK,SAAR,CAAQ8M,QAAR,GAAA,UAAShO,EAAT,EAAoE;AAAzD,IAAA,IAAAyC,UAAU,gBAAV;AAAA,QAAYwC,UAAU,GAAAjF,EAAA,CAAAiF,UAAtB;AAAA,QAAwB+H,YAAY,GAAAhN,EAAA,CAAAgN,YAApC,CAAyD;;AAElE,IAAA,IAAMrK,gBAAgB,GAAG,CAAAsC,UAAU,KAAV,IAAA,IAAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,UAAU,CAAEgJ,IAAZ,KAAoBhJ,UAA7C,CAAA;;IAEAzE,MAAM,CAAAU,SAAN,CAAMgN,iBAAN,CACE9M,IADF,CACE,IADF,EACEqB,UADF,EAEE;AACEwL,MAAAA,IAAI,EAAEtL,gBAAAA;AADR,KAFF,EAKE;AAAEqK,MAAAA,YAAY,EAAAA,YAAAA;KALhB,CAAA,CAAA;GAJF,CAAA;;AAaAzB,EAAAA,OAAK,CAAArK,SAAL,CAAKiN,KAAL,GAAA,UAAMxO,IAAN,EAAyE;AACvEa,IAAAA,MAAM,CAAAU,SAAN,CAAMkN,cAAN,KAAA,KAAA,EAAqBzO,IAAI,CAACwO,KAA1B,EAAiCxO,IAAI,CAAC8C,UAAtC,EAAkDN,SAAlD,EAA6D;MAAE6K,YAAY,EAAErN,IAAI,CAACqN,YAAAA;KAAlF,CAAA,CAAA;GADF,CAAA;;EAIMzB,OAAA,CAAArK,SAAA,CAAAqB,cAAA,GAAN,UACEC,GADF,EAEEC,UAFF,EAGErD,OAHF,EAUG;;;;;;;;;;;YAEKyD,EAAA,GAA8DzD,OAAO,IAAI,EAAzE,EAAEsD,MAAM,GAAAG,EAAA,CAAAH,MAAR,EAAUC,gBAAgB,GAAAE,EAAA,CAAAF,gBAA1B,EAA4BC,eAAe,GAAAC,EAAA,CAAAD,eAA3C,EAA6CoK,YAAY,kBAAzD,CAAA;AACFrJ,YAAAA,EAAiD,GAAAvE,OAAO,IAAI,EAA5D,EAAEiP,mBAAmB,GAAA1K,EAAA,CAAA0K,mBAArB,EAAuBC,qBAAqB,GAAA3K,EAAA,CAAA2K,qBAA5C;;YAGJ,IAAID,mBAAmB,IAAIlM,SAA3B,EAAsC;AACpCkM,cAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,aAAA;;YACD,IAAIC,qBAAqB,IAAInM,SAA7B,EAAwC;AACtCmM,cAAAA,qBAAqB,GAAG,IAAxB,CAAA;AACD,aAAA;;AAEc,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAM,CAAAtO,EAAA,GAAA,IAAA,CAAK4L,kBAAL,MAAuB,IAAvB,IAAuB5L,EAAA,KAAA,KAAA,CAAvB,GAAuB,KAAA,CAAvB,GAAuBA,EAAA,CAAEuC,cAAF,CAC1CC,GAD0C,EAE1CC,UAF0C,EAG1CC,MAH0C,EAI1CC,gBAJ0C,EAK1CC,eAL0C,CAA7B,CAAA,CAAA;;;AAAXE,YAAAA,QAAQ,GAAGoB,EAMd,CAAAjE,IANc,EAAX,CAAA;YAQEsO,uBAAuB,GAAGzL,QAAQ,KAAKX,SAAvC,CAAA;YAEF,IAAA,EAAA,CAACoM,uBAAD,IAA4B,CAACF,mBAA7B,CAAA,EAAA,OAAgD,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAhD,CAAA;AACS,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM7N,MAAM,CAAAU,SAAN,CAAMsN,uBAAN,CACfpN,IADe,CACf,IADe,EACfoB,GADe,EAEfC,UAFe,EAGfC,MAHe,EAIfC,gBAJe,EAKfC,eALe,EAMfoK,YANe,CAAN,CAAA,CAAA;;;AAAXlK,YAAAA,QAAQ,GAAGoB,OAAA,EAAX,CAAA;;;;YAUIuK,sBAAsB,GAAG,EAAGpL,CAAAA,MAAH,CAAGb,GAAH,EAAU,GAAV,CAAUa,CAAAA,MAAV,CAAUP,QAAV,CAAzB,CAAA;;AAEN,YAAA,IACEwL,qBAAqB,KACpB,EAAE7L,UAAU,IAAI,IAAA,CAAKsJ,0BAArB,CACC,IAAA,CAAC,KAAKA,0BAAL,CAAgCtJ,UAAhC,CAA4CuH,CAAAA,QAA5C,CAAqDyE,sBAArD,CAFkB,CADvB,EAIE;cACA,IAAIzN,MAAM,CAAC0M,IAAP,CAAY,IAAA,CAAK3B,0BAAjB,CAAA,CAA6C9I,MAA7C,IAAuD,IAAK+I,CAAAA,YAAhE,EAA8E;gBAC5E,IAAKD,CAAAA,0BAAL,GAAkC,EAAlC,CAAA;AACD,eAAA;;cACD,IAAIlC,KAAK,CAACC,OAAN,CAAc,IAAA,CAAKiC,0BAAL,CAAgCtJ,UAAhC,CAAd,CAAJ,EAAgE;AAC9D,gBAAA,IAAA,CAAKsJ,0BAAL,CAAgCtJ,UAAhC,CAA4CgF,CAAAA,IAA5C,CAAiDgH,sBAAjD,CAAA,CAAA;AACD,eAFD,MAEO;AACL,gBAAA,IAAA,CAAK1C,0BAAL,CAAgCtJ,UAAhC,CAA8C,GAAA,CAACgM,sBAAD,CAA9C,CAAA;AACD,eAAA;;AACD,cAAA,IAAA,CAAK7B,OAAL,CAAa;AACXnK,gBAAAA,UAAU,EAAAA,UADC;AAEXoK,gBAAAA,KAAK,EAAE,sBAFI;gBAGX5H,UAAU,GAAAnB,EAAA,GAAA;AACR4K,kBAAAA,aAAa,EAAElM,GADP;AAERmM,kBAAAA,sBAAsB,EAAE7L,QAFhB;AAGR8L,kBAAAA,iBAAiB,EAAEL,uBAAAA;AAHX,iBAAA,EAIRzK,EAAA,CAAC,WAAA,CAAYT,MAAZ,CAAYb,GAAZ,CAAD,CAAA,GAAqBM,QAJb,EAKTgB,EALS,CAHC;AASXpB,gBAAAA,MAAM,EAAAA,MATK;AAUXsK,gBAAAA,YAAY,EAAAA,YAAAA;eAVd,CAAA,CAAA;AAYD,aAAA;;AACD,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOlK,QAAP,CAAA,CAAA;;;;GAxEI,CAAA;;AA2EAyI,EAAAA,OAAqB,CAAArK,SAArB,CAAqB2N,qBAArB,GAAN,UACErM,GADF,EAEEC,UAFF,EAGEgB,UAHF,EAIErE,OAJF,EAWG;;;;;;;;;YAEKyD,EAAA,GAA8DzD,OAAO,IAAI,EAAzE,EAAEsD,MAAM,GAAAG,EAAA,CAAAH,MAAR,EAAUC,gBAAgB,GAAAE,EAAA,CAAAF,gBAA1B,EAA4BC,eAAe,GAAAC,EAAA,CAAAD,eAA3C,EAA6CoK,YAAY,kBAAzD,CAAA;AACFrJ,YAAAA,EAAiD,GAAAvE,OAAO,IAAI,EAA5D,EAAEiP,mBAAmB,GAAA1K,EAAA,CAAA0K,mBAArB,EAA4C1K,EAAA,CAAA2K,qBAA5C,CAAA;AACAxL,YAAAA,QAAQ,GAAGX,SAAX,CAAA;iBAGA,CAACsB,YAAD,OAAW,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAX,CAAA;AACW,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAM,IAAKlB,CAAAA,cAAL,CAAoBC,GAApB,EAAyBC,UAAzB,EACdoL,QAAA,CAAAA,QAAA,CAAA,EAAA,EAAAzO,OAAA,CAAA,EACH;AAAAiP,cAAAA,mBAAmB,EAAE,IAAA;aADlB,CADc,CAAN,CAAA,CAAA;;;AAAb5K,YAAAA,UAAU,GAAGK,OAAA,EAAb,CAAA;;;;AAME,YAAA,IAAA,CAAAL,UAAA,EAAA,OAAU,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAV,CAAA;AACS,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,CAAAzD,EAAA,GAAA,IAAK4L,CAAAA,kBAAL,MAAuB,IAAvB,IAAuB5L,EAAA,KAAA,KAAA,CAAvB,GAAuB,KAAA,CAAvB,GAAuBA,EAAA,CAAEwD,gCAAF,CAAmChB,GAAnC,EAAwCiB,UAAxC,CAA7B,CAAA,CAAA;;;AAAXX,YAAAA,QAAQ,GAAGgB,OAAA,EAAX,CAAA;;;;AAGF;YACA,IAAIuK,mBAAmB,IAAIlM,SAA3B,EAAsC;AACpCkM,cAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,aAAA;;;YAMD,IAAIA,mBAAmB,IAAIlM,SAA3B,EAAsC;AACpCkM,cAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,aAAA;;YAEKS,0BAA0B,GAAGhM,QAAQ,KAAKX,SAA1C,CAAA;YAEF,IAAA,EAAA,CAAC2M,0BAAD,IAA+B,CAACT,mBAAhC,CAAA,EAAA,OAAmD,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAnD,CAAA;AACS,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM7N,MAAM,CAAAU,SAAN,CAAM6N,8BAAN,CACf3N,IADe,CACf,IADe,EACfoB,GADe,EAEfC,UAFe,EAGfC,MAHe,EAIfC,gBAJe,EAKfC,eALe,EAMfoK,YANe,CAAN,CAAA,CAAA;;;AAAXlK,YAAAA,QAAQ,GAAGgB,OAAA,EAAX,CAAA;;;;YAUF,IAAI;AACF,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOkE,IAAI,CAACgH,KAAL,CAAWlM,QAAX,CAAP,CAAA,CAAA;aADF,CAEE,OAAMoB,EAAN,EAAM;AACN,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOpB,QAAP,CAAA,CAAA;AACD,aAAA;;;;;;;;GA3DG,CAAA;;EA8DAyI,OAAA,CAAArK,SAAA,CAAA+N,gBAAA,GAAN,UACEzM,GADF,EAEEC,UAFF,EAGErD,OAHF,EAUG;;;;;;AAEY,YAAA,OAAM,CAAA,CAAA;AAAA;cAAA,IAAA,CAAKmD,cAAL,CAAoBC,GAApB,EAAyBC,UAAzB,EAAqCrD,OAArC,CAAA,CAAN,CAAA;;;AAAP8P,YAAAA,IAAI,GAAGlP,EAAmD,CAAAC,IAAnD,EAAP,CAAA;;YACN,IAAIiP,IAAI,KAAK/M,SAAb,EAAwB;AACtB,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOA,SAAP,CAAA,CAAA;AACD,aAAA;;AACD,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAO,CAAC,CAAC+M,IAAF,IAAU,KAAjB,CAAA,CAAA;;;;GAhBI,CAAA;;EAmBA3D,OAAA,CAAArK,SAAA,CAAAiO,WAAA,GAAN,UACE1M,UADF,EAEErD,OAFF,EAQG;;;;;;AAEgB,YAAA,OAAM,CAAA,CAAA;AAAA;AAAA,cAAA,KAAK+E,sBAAL,CAA4B1B,UAA5B,EAAwCrD,OAAxC,CAAA,CAAN,CAAA;;;AAAX0D,YAAAA,QAAQ,GAAG9C,EAAsD,CAAAC,IAAtD,EAAX,CAAA;AACN,YAAA,OAAO,CAAA,CAAA;AAAA;cAAA6C,QAAQ,CAACjB,YAAT,CAAP,CAAA;;;;GAXI,CAAA;;EAcA0J,OAAA,CAAArK,SAAA,CAAAiD,sBAAA,GAAN,UACE1B,UADF,EAEErD,OAFF,EAQG;;;;;;;;;YAEKyD,EAAA,GAA8DzD,OAAO,IAAI,EAAzE,EAAEsD,MAAM,GAAAG,EAAA,CAAAH,MAAR,EAAUC,gBAAgB,GAAAE,EAAA,CAAAF,gBAA1B,EAA4BC,eAAe,GAAAC,EAAA,CAAAD,eAA3C,EAA6CoK,YAAY,kBAAzD,CAAA;YACAqB,mBAAmB,GAAK,CAAAjP,OAAO,IAAI,EAAX,qBAAxB;;YAGN,IAAIiP,mBAAmB,IAAIlM,SAA3B,EAAsC;AACpCkM,cAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,aAAA;;AAE6B,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAM,CAAArO,EAAA,GAAA,IAAA,CAAK4L,kBAAL,UAAA,iBAAA,SAAA,MAAyBzH,uBAC3D1B,YACAC,QACAC,kBACAC,gBAJ4B,CAAA,CAAA;;;AAAxBwM,YAAAA,qBAAqB,GAAGzL,EAK7B,CAAA1D,IAL6B,EAAxB,CAAA;AAOF4B,YAAAA,YAAY,GAAG,EAAf,CAAA;AACAwN,YAAAA,mBAAmB,GAAG,EAAtB,CAAA;AACAjL,YAAAA,gBAAgB,GAAG,IAAnB,CAAA;;AACJ,YAAA,IAAIgL,qBAAJ,EAA2B;cACzBvN,YAAY,GAAGuN,qBAAqB,CAACtM,QAArC,CAAA;cACAuM,mBAAmB,GAAGD,qBAAqB,CAACvL,QAA5C,CAAA;cACAO,gBAAgB,GAAGgL,qBAAqB,CAAChL,gBAAzC,CAAA;AACD,aAAA;;YAEG,IAAA,EAAAA,gBAAgB,IAAI,CAACiK,mBAArB,CAAA,EAAA,OAAwC,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAxC,CAAA;AAC6B,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM7N,MAAM,CAAAU,SAAN,CAAMoO,mCAAN,CACnClO,IADmC,CACnC,IADmC,EACnCqB,UADmC,EAEnCC,MAFmC,EAGnCC,gBAHmC,EAInCC,eAJmC,EAKnCoK,YALmC,CAAN,CAAA,CAAA;;;AAAzBuC,YAAAA,sBAAsB,GAAG5L,EAM9B,CAAA1D,IAN8B,EAAzB,CAAA;AAON4B,YAAAA,YAAY,GAAAgM,QAAA,CAAAA,QAAA,CAAA,EAAA,EACPhM,YADO,CAAA,EAEN0N,sBAAsB,CAACrH,KAAvB,IAAgC,EAF1B,CAAZ,CAAA;AAIAmH,YAAAA,mBAAmB,GAAAxB,QAAA,CAAAA,QAAA,CAAA,EAAA,EACdwB,mBADc,CAAA,EAEbE,sBAAsB,CAAC1L,QAAvB,IAAmC,EAFtB,CAAnB,CAAA;;;AAMF,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAO;AAAEhC,cAAAA,YAAY,EAAAA,YAAd;AAAgBwN,cAAAA,mBAAmB,EAAAA,mBAAAA;AAAnC,aAAP,CAAA,CAAA;;;;GApDI,CAAA;;AAuDN9D,EAAAA,OAAa,CAAArK,SAAb,CAAasO,aAAb,GAAA,UAAcxP,EAAd,EAAiG;AAAjF,IAAA,IAAAyP,SAAS,GAAAzP,EAAA,CAAAyP,SAAT;AAAA,QAAWC,QAAQ,GAAA1P,EAAA,CAAA0P,QAAnB;AAAA,QAAqBzK,UAAU,GAAAjF,EAAA,CAAAiF,UAA/B;AAAA,QAAiCxC,UAAU,GAAAzC,EAAA,CAAAyC,UAA3C;AAAA,QAA6CuK,YAAY,GAAAhN,EAAA,CAAAgN,YAAzD,CAAA;;AACdxM,IAAAA,MAAA,CAAAU,SAAA,CAAMyO,sBAAN,CAA4BvO,IAA5B,CAA4B,IAA5B,EAA6BqO,SAA7B,EAAwCC,QAAxC,EAAkDzK,UAAlD,EAA8D;AAAE+H,MAAAA,YAAY,EAAAA,YAAAA;AAAd,KAA9D,EAAgFvK,UAAhF,CAAA,CAAA;GADF,CAAA;;AAIM8I,EAAAA,OAAA,CAAArK,SAAA,CAAA0O,kBAAA,GAAN,YAAA;;;;;;;AACE,YAAA,OAAM,CAAA,CAAA;AAAA;cAAA,CAAA5P,EAAA,GAAA,IAAA,CAAK4L,kBAAL,MAAyB,IAAzB,IAAyB5L,EAAA,KAAA,KAAA,CAAzB,GAAyB,KAAA,CAAzB,GAAyBA,EAAA,CAAAoC,gBAAA,CAAiB,IAAjB,CAAzB,CAAN,CAAA;;;AAAAS,YAAAA,EAAA,CAAA5C,IAAA,EAAA,CAAA;;;;;;;;GADI,CAAA;;AAINsL,EAAAA,OAAA,CAAArK,SAAA,CAAA2O,QAAA,GAAA,YAAA;IACE,KAAK,IAAA,CAAKC,aAAL,EAAL,CAAA;GADF,CAAA;;AAIMvE,EAAAA,OAAA,CAAArK,SAAA,CAAA4O,aAAA,GAAN,YAAA;;;;;AACE,QAAA,CAAA9P,EAAA,GAAA,IAAA,CAAK4L,kBAAL,MAAyB,IAAzB,IAAyB5L,EAAA,KAAA,KAAA,CAAzB,GAAyB,KAAA,CAAzB,GAAyBA,EAAA,CAAAgJ,UAAA,EAAzB,CAAA;AACA,QAAA,OAAO,CAAA,CAAA;AAAA;UAAAxI,MAAA,CAAAU,SAAA,CAAM4O,aAAN,CAAmB1O,IAAnB,CAAmB,IAAnB,CAAA,CAAP,CAAA;;;GAFI,CAAA;;AAIR,EAAA,OAACmK,OAAD,CAAA;AAhWA,CAAA,CAA6BwE,oBAA7B;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../node_modules/tslib/tslib.es6.js","../../posthog-core/src/types.ts","../../posthog-core/src/utils.ts","../../posthog-core/src/lz-string.ts","../../posthog-core/src/eventemitter.ts","../../posthog-core/src/index.ts","../../posthog-core/src/storage-memory.ts","../src/fetch.ts","../src/feature-flags.ts","../src/posthog-node.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export type PosthogCoreOptions = {\n // PostHog API host (https://app.posthog.com by default)\n host?: string\n // The number of events to queue before sending to Posthog (flushing)\n flushAt?: number\n // The interval in milliseconds between periodic flushes\n flushInterval?: number\n // If set to false, tracking will be disabled until `optIn` is called\n enable?: boolean\n // Whether to track that `getFeatureFlag` was called (used by Expriements)\n sendFeatureFlagEvent?: boolean\n // Whether to load feature flags when initialised or not\n preloadFeatureFlags?: boolean\n // Option to bootstrap the library with given distinctId and feature flags\n bootstrap?: {\n distinctId?: string\n isIdentifiedId?: boolean\n featureFlags?: Record<string, boolean | string>\n featureFlagPayloads?: Record<string, JsonType>\n }\n // How many times we will retry HTTP requests\n fetchRetryCount?: number\n // The delay between HTTP request retries\n fetchRetryDelay?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // For Session Analysis how long before we expire a session (defaults to 30 mins)\n sessionExpirationTimeSeconds?: number\n // Whether to post events to PostHog in JSON or compressed format\n captureMode?: 'json' | 'form'\n disableGeoip?: boolean\n}\n\nexport enum PostHogPersistedProperty {\n AnonymousId = 'anonymous_id',\n DistinctId = 'distinct_id',\n Props = 'props',\n FeatureFlags = 'feature_flags',\n FeatureFlagPayloads = 'feature_flag_payloads',\n OverrideFeatureFlags = 'override_feature_flags',\n Queue = 'queue',\n OptedOut = 'opted_out',\n SessionId = 'session_id',\n SessionLastTimestamp = 'session_timestamp',\n PersonProperties = 'person_properties',\n GroupProperties = 'group_properties',\n InstalledAppBuild = 'installed_app_build', // only used by posthog-react-native\n InstalledAppVersion = 'installed_app_version', // only used by posthog-react-native\n}\n\nexport type PostHogFetchOptions = {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH'\n mode?: 'no-cors'\n credentials?: 'omit'\n headers: { [key: string]: string }\n body?: string\n signal?: AbortSignal\n}\n\n// Check out posthog-js for these additional options and try to keep them in sync\nexport type PosthogCaptureOptions = {\n timestamp?: Date\n disableGeoip?: boolean\n}\n\nexport type PostHogFetchResponse = {\n status: number\n text: () => Promise<string>\n json: () => Promise<any>\n}\n\nexport type PostHogQueueItem = {\n message: any\n callback?: (err: any) => void\n}\n\nexport type PostHogEventProperties = {\n [key: string]: any\n}\n\nexport type PostHogAutocaptureElement = {\n $el_text?: string\n tag_name: string\n href?: string\n nth_child?: number\n nth_of_type?: number\n order?: number\n} & {\n [key: string]: any\n} // Any key prefixed with `attr__` can be added\n\nexport type PostHogDecideResponse = {\n config: { enable_collect_everything: boolean }\n editorParams: { toolbarVersion: string; jsURL: string }\n isAuthenticated: true\n supportedCompression: string[]\n featureFlags: {\n [key: string]: string | boolean\n }\n featureFlagPayloads: {\n [key: string]: JsonType\n }\n errorsWhileComputingFlags: boolean\n sessionRecording: boolean\n}\n\nexport type PosthogFlagsAndPayloadsResponse = {\n featureFlags: PostHogDecideResponse['featureFlags']\n featureFlagPayloads: PostHogDecideResponse['featureFlagPayloads']\n}\n\nexport type JsonType = string | number | boolean | null | { [key: string]: JsonType } | Array<JsonType>\n","export function assert(truthyValue: any, message: string): void {\n if (!truthyValue) {\n throw new Error(message)\n }\n}\n\nexport function removeTrailingSlash(url: string): string {\n return url?.replace(/\\/+$/, '')\n}\n\nexport interface RetriableOptions {\n retryCount?: number\n retryDelay?: number\n retryCheck?: (err: any) => boolean\n}\n\nexport async function retriable<T>(fn: () => Promise<T>, props: RetriableOptions = {}): Promise<T> {\n const { retryCount = 3, retryDelay = 5000, retryCheck = () => true } = props\n let lastError = null\n\n for (let i = 0; i < retryCount + 1; i++) {\n if (i > 0) {\n // don't wait when it's the last try\n await new Promise((r) => setTimeout(r, retryDelay))\n }\n\n try {\n const res = await fn()\n return res\n } catch (e) {\n lastError = e\n if (!retryCheck(e)) {\n throw e\n }\n }\n }\n\n throw lastError\n}\n\n// https://stackoverflow.com/a/8809472\nexport function generateUUID(globalThis?: any): string {\n // Public Domain/MIT\n let d = new Date().getTime() //Timestamp\n let d2 =\n (globalThis && globalThis.performance && globalThis.performance.now && globalThis.performance.now() * 1000) || 0 //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16 //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\n })\n}\n\nexport function currentTimestamp(): number {\n return new Date().getTime()\n}\n\nexport function currentISOTime(): string {\n return new Date().toISOString()\n}\n\nexport function safeSetTimeout(fn: () => void, timeout: number): any {\n // NOTE: we use this so rarely that it is totally fine to do `safeSetTimeout(fn, 0)``\n // rather than setImmediate.\n const t = setTimeout(fn, timeout) as any\n // We unref if available to prevent Node.js hanging on exit\n t?.unref && t?.unref()\n return t\n}\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\n\n// private property\nconst f = String.fromCharCode\nconst keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\nconst baseReverseDic: any = {}\n\nfunction getBaseValue(alphabet: any, character: any): any {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {}\n for (let i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i\n }\n }\n return baseReverseDic[alphabet][character]\n}\n\nexport const LZString = {\n compressToBase64: function (input: any): string {\n if (input == null) {\n return ''\n }\n const res = LZString._compress(input, 6, function (a: any) {\n return keyStrBase64.charAt(a)\n })\n switch (\n res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n case 0:\n return res\n case 1:\n return res + '==='\n case 2:\n return res + '=='\n case 3:\n return res + '='\n }\n },\n\n decompressFromBase64: function (input: any): any {\n if (input == null) {\n return ''\n }\n if (input == '') {\n return null\n }\n return LZString._decompress(input.length, 32, function (index: any) {\n return getBaseValue(keyStrBase64, input.charAt(index))\n })\n },\n\n compress: function (uncompressed: any): any {\n return LZString._compress(uncompressed, 16, function (a: any) {\n return f(a)\n })\n },\n _compress: function (uncompressed: any, bitsPerChar: any, getCharFromInt: any): any {\n if (uncompressed == null) {\n return ''\n }\n const context_dictionary: any = {},\n context_dictionaryToCreate: any = {},\n context_data = []\n\n let i,\n value,\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_val = 0,\n context_data_position = 0,\n ii\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val))\n break\n } else {\n context_data_position++\n }\n }\n return context_data.join('')\n },\n\n decompress: function (compressed: any): any {\n if (compressed == null) {\n return ''\n }\n if (compressed == '') {\n return null\n }\n return LZString._decompress(compressed.length, 32768, function (index: any) {\n return compressed.charCodeAt(index)\n })\n },\n\n _decompress: function (length: any, resetValue: any, getNextValue: any): any {\n const dictionary = [],\n result = [],\n data = { val: getNextValue(0), position: resetValue, index: 1 }\n\n let next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry: any = '',\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i\n }\n\n bits = 0\n maxpower = Math.pow(2, 2)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n switch ((next = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 2:\n return ''\n }\n dictionary[3] = c\n w = c\n result.push(c)\n while (true) {\n if (data.index > length) {\n return ''\n }\n\n bits = 0\n maxpower = Math.pow(2, numBits)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n switch ((c = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 2:\n return result.join('')\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n\n if (dictionary[c]) {\n entry = dictionary[c]\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0)\n } else {\n return null\n }\n }\n result.push(entry)\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0)\n enlargeIn--\n\n w = entry\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n }\n },\n}\n","export class SimpleEventEmitter {\n events: { [key: string]: ((...args: any[]) => void)[] } = {}\n\n constructor() {\n this.events = {}\n }\n\n on(event: string, listener: (...args: any[]) => void): () => void {\n if (!this.events[event]) {\n this.events[event] = []\n }\n this.events[event].push(listener)\n\n return () => {\n this.events[event] = this.events[event].filter((x) => x !== listener)\n }\n }\n\n emit(event: string, payload: any): void {\n for (const listener of this.events[event] || []) {\n listener(payload)\n }\n for (const listener of this.events['*'] || []) {\n listener(event, payload)\n }\n }\n}\n","import {\n PostHogFetchOptions,\n PostHogFetchResponse,\n PostHogQueueItem,\n PostHogAutocaptureElement,\n PostHogDecideResponse,\n PosthogCoreOptions,\n PostHogEventProperties,\n PostHogPersistedProperty,\n PosthogCaptureOptions,\n JsonType,\n} from './types'\nimport {\n assert,\n currentISOTime,\n currentTimestamp,\n generateUUID,\n removeTrailingSlash,\n retriable,\n RetriableOptions,\n safeSetTimeout,\n} from './utils'\nexport * as utils from './utils'\nimport { LZString } from './lz-string'\nimport { SimpleEventEmitter } from './eventemitter'\n\nclass PostHogFetchHttpError extends Error {\n name = 'PostHogFetchHttpError'\n\n constructor(public response: PostHogFetchResponse) {\n super('HTTP error while fetching PostHog: ' + response.status)\n }\n}\n\nclass PostHogFetchNetworkError extends Error {\n name = 'PostHogFetchNetworkError'\n\n constructor(public error: unknown) {\n // TRICKY: \"cause\" is a newer property but is just ignored otherwise. Cast to any to ignore the type issue.\n // @ts-ignore\n super('Network error while fetching PostHog', error instanceof Error ? { cause: error } : {})\n }\n}\n\nfunction isPostHogFetchError(err: any): boolean {\n return typeof err === 'object' && (err.name === 'PostHogFetchHttpError' || err.name === 'PostHogFetchNetworkError')\n}\n\nexport abstract class PostHogCoreStateless {\n // options\n private apiKey: string\n host: string\n private flushAt: number\n private flushInterval: number\n private requestTimeout: number\n private captureMode: 'form' | 'json'\n private removeDebugCallback?: () => void\n private debugMode: boolean = false\n private pendingPromises: Record<string, Promise<any>> = {}\n private disableGeoip: boolean = true\n\n private _optoutOverride: boolean | undefined\n\n // internal\n protected _events = new SimpleEventEmitter()\n protected _flushTimer?: any\n protected _retryOptions: RetriableOptions\n\n // Abstract methods to be overridden by implementations\n abstract fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse>\n abstract getLibraryId(): string\n abstract getLibraryVersion(): string\n abstract getCustomUserAgent(): string | void\n\n // This is our abstracted storage. Each implementation should handle its own\n abstract getPersistedProperty<T>(key: PostHogPersistedProperty): T | undefined\n abstract setPersistedProperty<T>(key: PostHogPersistedProperty, value: T | null): void\n\n constructor(apiKey: string, options?: PosthogCoreOptions) {\n assert(apiKey, \"You must pass your PostHog project's api key.\")\n\n this.apiKey = apiKey\n this.host = removeTrailingSlash(options?.host || 'https://app.posthog.com')\n this.flushAt = options?.flushAt ? Math.max(options?.flushAt, 1) : 20\n this.flushInterval = options?.flushInterval ?? 10000\n this.captureMode = options?.captureMode || 'form'\n\n // If enable is explicitly set to false we override the optout\n this._optoutOverride = options?.enable === false\n\n this._retryOptions = {\n retryCount: options?.fetchRetryCount ?? 3,\n retryDelay: options?.fetchRetryDelay ?? 3000,\n retryCheck: isPostHogFetchError,\n }\n this.requestTimeout = options?.requestTimeout ?? 10000 // 10 seconds\n this.disableGeoip = options?.disableGeoip ?? true\n }\n\n protected getCommonEventProperties(): any {\n return {\n $lib: this.getLibraryId(),\n $lib_version: this.getLibraryVersion(),\n }\n }\n\n public get optedOut(): boolean {\n return this.getPersistedProperty(PostHogPersistedProperty.OptedOut) ?? this._optoutOverride ?? false\n }\n\n optIn(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, false)\n }\n\n optOut(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, true)\n }\n\n on(event: string, cb: (...args: any[]) => void): () => void {\n return this._events.on(event, cb)\n }\n\n debug(enabled: boolean = true): void {\n this.removeDebugCallback?.()\n\n this.debugMode = enabled\n\n if (enabled) {\n this.removeDebugCallback = this.on('*', (event, payload) => console.log('PostHog Debug', event, payload))\n }\n }\n\n private buildPayload(payload: { distinct_id: string; event: string; properties?: PostHogEventProperties }): any {\n return {\n distinct_id: payload.distinct_id,\n event: payload.event,\n properties: {\n ...(payload.properties || {}),\n ...this.getCommonEventProperties(), // Common PH props\n },\n }\n }\n\n /***\n *** TRACKING\n ***/\n protected identifyStateless(\n distinctId: string,\n properties?: PostHogEventProperties,\n options?: PosthogCaptureOptions\n ): this {\n // The properties passed to identifyStateless are event properties.\n // To add person properties, pass in all person properties to the `$set` key.\n\n const payload = {\n ...this.buildPayload({\n distinct_id: distinctId,\n event: '$identify',\n properties,\n }),\n }\n\n this.enqueue('identify', payload, options)\n return this\n }\n\n protected captureStateless(\n distinctId: string,\n event: string,\n properties?: { [key: string]: any },\n options?: PosthogCaptureOptions\n ): this {\n const payload = this.buildPayload({ distinct_id: distinctId, event, properties })\n this.enqueue('capture', payload, options)\n\n return this\n }\n\n protected aliasStateless(\n alias: string,\n distinctId: string,\n properties?: { [key: string]: any },\n options?: PosthogCaptureOptions\n ): this {\n const payload = this.buildPayload({\n event: '$create_alias',\n distinct_id: distinctId,\n properties: {\n ...(properties || {}),\n distinct_id: distinctId,\n alias,\n },\n })\n\n this.enqueue('alias', payload, options)\n return this\n }\n\n /***\n *** GROUPS\n ***/\n protected groupIdentifyStateless(\n groupType: string,\n groupKey: string | number,\n groupProperties?: PostHogEventProperties,\n options?: PosthogCaptureOptions,\n distinctId?: string,\n eventProperties?: PostHogEventProperties\n ): this {\n const payload = this.buildPayload({\n distinct_id: distinctId || `$${groupType}_${groupKey}`,\n event: '$groupidentify',\n properties: {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupProperties || {},\n ...(eventProperties || {}),\n },\n })\n\n this.enqueue('capture', payload, options)\n return this\n }\n\n /***\n *** FEATURE FLAGS\n ***/\n\n protected async getDecide(\n distinctId: string,\n groups: Record<string, string | number> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n extraPayload: Record<string, any> = {}\n ): Promise<PostHogDecideResponse | undefined> {\n const url = `${this.host}/decide/?v=3`\n const fetchOptions: PostHogFetchOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n token: this.apiKey,\n distinct_id: distinctId,\n groups,\n person_properties: personProperties,\n group_properties: groupProperties,\n ...extraPayload,\n }),\n }\n return this.fetchWithRetry(url, fetchOptions)\n .then((response) => response.json() as Promise<PostHogDecideResponse>)\n .catch((error) => {\n console.error('Error fetching feature flags', error)\n return undefined\n })\n }\n\n protected async getFeatureFlagStateless(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<boolean | string | undefined> {\n const featureFlags = await this.getFeatureFlagsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n\n if (!featureFlags) {\n // If we haven't loaded flags yet, or errored out, we respond with undefined\n return undefined\n }\n\n let response = featureFlags[key]\n // `/decide` v3 returns all flags\n\n if (response === undefined) {\n // For cases where the flag is unknown, return false\n response = false\n }\n\n // If we have flags we either return the value (true or string) or false\n return response\n }\n\n protected async getFeatureFlagPayloadStateless(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<JsonType | undefined> {\n const payloads = await this.getFeatureFlagPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n\n if (!payloads) {\n return undefined\n }\n\n const response = payloads[key]\n\n // Undefined means a loading or missing data issue. Null means evaluation happened and there was no match\n if (response === undefined) {\n return null\n }\n\n return this._parsePayload(response)\n }\n\n protected async getFeatureFlagPayloadsStateless(\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<PostHogDecideResponse['featureFlagPayloads'] | undefined> {\n const payloads = (\n await this.getFeatureFlagsAndPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n ).payloads\n\n if (payloads) {\n return Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]))\n }\n return payloads\n }\n\n protected _parsePayload(response: any): any {\n try {\n return JSON.parse(response)\n } catch {\n return response\n }\n }\n\n protected async getFeatureFlagsStateless(\n distinctId: string,\n groups: Record<string, string | number> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<PostHogDecideResponse['featureFlags'] | undefined> {\n return (\n await this.getFeatureFlagsAndPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n ).flags\n }\n\n protected async getFeatureFlagsAndPayloadsStateless(\n distinctId: string,\n groups: Record<string, string | number> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {},\n disableGeoip?: boolean\n ): Promise<{\n flags: PostHogDecideResponse['featureFlags'] | undefined\n payloads: PostHogDecideResponse['featureFlagPayloads'] | undefined\n }> {\n const extraPayload: Record<string, any> = {}\n if (disableGeoip ?? this.disableGeoip) {\n extraPayload['geoip_disable'] = true\n }\n const decideResponse = await this.getDecide(distinctId, groups, personProperties, groupProperties, extraPayload)\n\n const flags = decideResponse?.featureFlags\n const payloads = decideResponse?.featureFlagPayloads\n\n return {\n flags,\n payloads,\n }\n }\n\n /***\n *** QUEUEING AND FLUSHING\n ***/\n protected enqueue(type: string, _message: any, options?: PosthogCaptureOptions): void {\n if (this.optedOut) {\n this._events.emit(type, `Library is disabled. Not sending event. To re-enable, call posthog.enable()`)\n return\n }\n\n const message = {\n ..._message,\n type: type,\n library: this.getLibraryId(),\n library_version: this.getLibraryVersion(),\n timestamp: options?.timestamp ? options?.timestamp : currentISOTime(),\n }\n\n const addGeoipDisableProperty = options?.disableGeoip ?? this.disableGeoip\n if (addGeoipDisableProperty) {\n if (!message.properties) {\n message.properties = {}\n }\n message['properties']['$geoip_disable'] = true\n }\n\n if (message.distinctId) {\n message.distinct_id = message.distinctId\n delete message.distinctId\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n queue.push({ message })\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n this._events.emit(type, message)\n\n // Flush queued events if we meet the flushAt length\n if (queue.length >= this.flushAt) {\n this.flush()\n }\n\n if (this.flushInterval && !this._flushTimer) {\n this._flushTimer = safeSetTimeout(() => this.flush(), this.flushInterval)\n }\n }\n\n flushAsync(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.flush((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n flush(callback?: (err?: any, data?: any) => void): void {\n if (this._flushTimer) {\n clearTimeout(this._flushTimer)\n this._flushTimer = null\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n if (!queue.length) {\n return callback?.()\n }\n\n const items = queue.splice(0, this.flushAt)\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n const messages = items.map((item) => item.message)\n\n const data = {\n api_key: this.apiKey,\n batch: messages,\n sent_at: currentISOTime(),\n }\n\n const promiseUUID = generateUUID()\n\n const done = (err?: any): void => {\n if (err) {\n this._events.emit('error', err)\n }\n callback?.(err, messages)\n // remove promise from pendingPromises\n delete this.pendingPromises[promiseUUID]\n this._events.emit('flush', messages)\n }\n\n // Don't set the user agent if we're not on a browser. The latest spec allows\n // the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers\n // and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),\n // but browsers such as Chrome and Safari have not caught up.\n const customUserAgent = this.getCustomUserAgent()\n const headers: { [key: string]: string } = {}\n if (customUserAgent) {\n headers['user-agent'] = customUserAgent\n }\n\n const payload = JSON.stringify(data)\n\n const url =\n this.captureMode === 'form'\n ? `${this.host}/e/?ip=1&_=${currentTimestamp()}&v=${this.getLibraryVersion()}`\n : `${this.host}/batch/`\n\n const fetchOptions: PostHogFetchOptions =\n this.captureMode === 'form'\n ? {\n method: 'POST',\n mode: 'no-cors',\n credentials: 'omit',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: `data=${encodeURIComponent(LZString.compressToBase64(payload))}&compression=lz64`,\n }\n : {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: payload,\n }\n const requestPromise = this.fetchWithRetry(url, fetchOptions)\n this.pendingPromises[promiseUUID] = requestPromise\n\n requestPromise\n .then(() => done())\n .catch((err) => {\n done(err)\n })\n }\n\n private async fetchWithRetry(\n url: string,\n options: PostHogFetchOptions,\n retryOptions?: RetriableOptions\n ): Promise<PostHogFetchResponse> {\n ;(AbortSignal as any).timeout ??= function timeout(ms: number) {\n const ctrl = new AbortController()\n setTimeout(() => ctrl.abort(), ms)\n return ctrl.signal\n }\n\n return await retriable(\n async () => {\n let res: PostHogFetchResponse | null = null\n try {\n res = await this.fetch(url, {\n signal: (AbortSignal as any).timeout(this.requestTimeout),\n ...options,\n })\n } catch (e) {\n // fetch will only throw on network errors or on timeouts\n throw new PostHogFetchNetworkError(e)\n }\n if (res.status < 200 || res.status >= 400) {\n throw new PostHogFetchHttpError(res)\n }\n return res\n },\n { ...this._retryOptions, ...retryOptions }\n )\n }\n\n async shutdownAsync(): Promise<void> {\n clearTimeout(this._flushTimer)\n try {\n await this.flushAsync()\n await Promise.all(\n Object.values(this.pendingPromises).map((x) =>\n x.catch(() => {\n // ignore errors as we are shutting down and can't deal with them anyways.\n })\n )\n )\n } catch (e) {\n if (!isPostHogFetchError(e)) {\n throw e\n }\n console.error('Error while shutting down PostHog', e)\n }\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n}\n\nexport abstract class PostHogCore extends PostHogCoreStateless {\n // options\n private sendFeatureFlagEvent: boolean\n private flagCallReported: { [key: string]: boolean } = {}\n\n // internal\n protected _decideResponsePromise?: Promise<PostHogDecideResponse | undefined> // TODO: come back to this, fix typing\n protected _sessionExpirationTimeSeconds: number\n protected sessionProps: PostHogEventProperties = {}\n\n constructor(apiKey: string, options?: PosthogCoreOptions) {\n // Default for stateful mode is to not disable geoip. Only override if explicitly set\n const disableGeoipOption = options?.disableGeoip ?? false\n\n super(apiKey, { ...options, disableGeoip: disableGeoipOption })\n\n this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true\n this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes\n }\n\n protected setupBootstrap(options?: Partial<PosthogCoreOptions>): void {\n if (options?.bootstrap?.distinctId) {\n if (options?.bootstrap?.isIdentifiedId) {\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, options.bootstrap.distinctId)\n } else {\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, options.bootstrap.distinctId)\n }\n }\n\n if (options?.bootstrap?.featureFlags) {\n const activeFlags = Object.keys(options.bootstrap?.featureFlags || {})\n .filter((flag) => !!options.bootstrap?.featureFlags?.[flag])\n .reduce(\n (res: Record<string, string | boolean>, key) => (\n (res[key] = options.bootstrap?.featureFlags?.[key] || false), res\n ),\n {}\n )\n this.setKnownFeatureFlags(activeFlags)\n options?.bootstrap.featureFlagPayloads && this.setKnownFeatureFlagPayloads(options?.bootstrap.featureFlagPayloads)\n }\n }\n\n // NOTE: Props are lazy loaded from localstorage hence the complex getter setter logic\n private get props(): PostHogEventProperties {\n if (!this._props) {\n this._props = this.getPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props)\n }\n return this._props || {}\n }\n\n private set props(val: PostHogEventProperties | undefined) {\n this._props = val\n }\n\n private clearProps(): void {\n this.props = undefined\n this.sessionProps = {}\n }\n\n private _props: PostHogEventProperties | undefined\n\n on(event: string, cb: (...args: any[]) => void): () => void {\n return this._events.on(event, cb)\n }\n\n reset(propertiesToKeep?: PostHogPersistedProperty[]): void {\n const allPropertiesToKeep = [PostHogPersistedProperty.Queue, ...(propertiesToKeep || [])]\n\n // clean up props\n this.clearProps()\n\n for (const key of <(keyof typeof PostHogPersistedProperty)[]>Object.keys(PostHogPersistedProperty)) {\n if (!allPropertiesToKeep.includes(PostHogPersistedProperty[key])) {\n this.setPersistedProperty((PostHogPersistedProperty as any)[key], null)\n }\n }\n }\n\n protected getCommonEventProperties(): any {\n const featureFlags = this.getFeatureFlags()\n\n const featureVariantProperties: Record<string, string | boolean> = {}\n if (featureFlags) {\n for (const [feature, variant] of Object.entries(featureFlags)) {\n featureVariantProperties[`$feature/${feature}`] = variant\n }\n }\n return {\n $active_feature_flags: featureFlags ? Object.keys(featureFlags) : undefined,\n ...featureVariantProperties,\n ...super.getCommonEventProperties(),\n }\n }\n\n public enrichProperties(properties?: PostHogEventProperties): any {\n return {\n ...this.props, // Persisted properties first\n ...this.sessionProps, // Followed by session properties\n ...(properties || {}), // Followed by user specified properties\n ...this.getCommonEventProperties(), // Followed by FF props\n $session_id: this.getSessionId(),\n }\n }\n\n getSessionId(): string | undefined {\n let sessionId = this.getPersistedProperty<string>(PostHogPersistedProperty.SessionId)\n const sessionTimestamp = this.getPersistedProperty<number>(PostHogPersistedProperty.SessionLastTimestamp) || 0\n if (!sessionId || Date.now() - sessionTimestamp > this._sessionExpirationTimeSeconds * 1000) {\n sessionId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, sessionId)\n }\n this.setPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp, Date.now())\n\n return sessionId\n }\n\n resetSessionId(): void {\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, null)\n }\n\n getAnonymousId(): string {\n let anonId = this.getPersistedProperty<string>(PostHogPersistedProperty.AnonymousId)\n if (!anonId) {\n anonId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, anonId)\n }\n return anonId\n }\n\n getDistinctId(): string {\n return this.getPersistedProperty<string>(PostHogPersistedProperty.DistinctId) || this.getAnonymousId()\n }\n\n unregister(property: string): void {\n delete this.props[property]\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n register(properties: { [key: string]: any }): void {\n this.props = {\n ...this.props,\n ...properties,\n }\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n registerForSession(properties: { [key: string]: any }): void {\n this.sessionProps = {\n ...this.sessionProps,\n ...properties,\n }\n }\n\n unregisterForSession(property: string): void {\n delete this.sessionProps[property]\n }\n\n /***\n *** TRACKING\n ***/\n identify(distinctId?: string, properties?: PostHogEventProperties, options?: PosthogCaptureOptions): this {\n const previousDistinctId = this.getDistinctId()\n distinctId = distinctId || previousDistinctId\n\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n const allProperties = this.enrichProperties({\n ...properties,\n $anon_distinct_id: this.getAnonymousId(),\n $set: properties,\n })\n\n if (distinctId !== previousDistinctId) {\n // We keep the AnonymousId to be used by decide calls and identify to link the previousId\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId)\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)\n\n this.reloadFeatureFlags()\n }\n\n super.identifyStateless(distinctId, allProperties, options)\n\n return this\n }\n\n capture(event: string, properties?: { [key: string]: any }, options?: PosthogCaptureOptions): this {\n const distinctId = this.getDistinctId()\n\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n const allProperties = this.enrichProperties(properties)\n\n super.captureStateless(distinctId, event, allProperties, options)\n\n return this\n }\n\n alias(alias: string): this {\n const distinctId = this.getDistinctId()\n\n const allProperties = this.enrichProperties({})\n\n super.aliasStateless(alias, distinctId, allProperties)\n return this\n }\n\n autocapture(\n eventType: string,\n elements: PostHogAutocaptureElement[],\n properties: PostHogEventProperties = {},\n options?: PosthogCaptureOptions\n ): this {\n const distinctId = this.getDistinctId()\n const payload = {\n distinct_id: distinctId,\n event: '$autocapture',\n properties: {\n ...this.enrichProperties(properties),\n $event_type: eventType,\n $elements: elements,\n },\n }\n\n this.enqueue('autocapture', payload, options)\n return this\n }\n\n /***\n *** GROUPS\n ***/\n\n groups(groups: { [type: string]: string | number }): this {\n // Get persisted groups\n const existingGroups = this.props.$groups || {}\n\n this.register({\n $groups: {\n ...existingGroups,\n ...groups,\n },\n })\n\n if (Object.keys(groups).find((type) => existingGroups[type] !== groups[type])) {\n this.reloadFeatureFlags()\n }\n\n return this\n }\n\n group(\n groupType: string,\n groupKey: string | number,\n groupProperties?: PostHogEventProperties,\n options?: PosthogCaptureOptions\n ): this {\n this.groups({\n [groupType]: groupKey,\n })\n\n if (groupProperties) {\n this.groupIdentify(groupType, groupKey, groupProperties, options)\n }\n\n return this\n }\n\n groupIdentify(\n groupType: string,\n groupKey: string | number,\n groupProperties?: PostHogEventProperties,\n options?: PosthogCaptureOptions\n ): this {\n const distinctId = this.getDistinctId()\n\n const eventProperties = this.enrichProperties({})\n\n super.groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties)\n\n return this\n }\n\n /***\n * PROPERTIES\n ***/\n setPersonPropertiesForFlags(properties: { [type: string]: string }): this {\n // Get persisted person properties\n const existingProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.PersonProperties, {\n ...existingProperties,\n ...properties,\n })\n\n return this\n }\n\n resetPersonPropertiesForFlags(): void {\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.PersonProperties, {})\n }\n\n /** @deprecated - Renamed to setPersonPropertiesForFlags */\n personProperties(properties: { [type: string]: string }): this {\n return this.setPersonPropertiesForFlags(properties)\n }\n\n setGroupPropertiesForFlags(properties: { [type: string]: Record<string, string> }): this {\n // Get persisted group properties\n const existingProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n if (Object.keys(existingProperties).length !== 0) {\n Object.keys(existingProperties).forEach((groupType) => {\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType],\n }\n delete properties[groupType]\n })\n }\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.GroupProperties, {\n ...existingProperties,\n ...properties,\n })\n return this\n }\n\n resetGroupPropertiesForFlags(): void {\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.GroupProperties, {})\n }\n\n /** @deprecated - Renamed to setGroupPropertiesForFlags */\n groupProperties(properties: { [type: string]: Record<string, string> }): this {\n return this.setGroupPropertiesForFlags(properties)\n }\n\n /***\n *** FEATURE FLAGS\n ***/\n private decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse | undefined> {\n if (this._decideResponsePromise) {\n return this._decideResponsePromise\n }\n return this._decideAsync(sendAnonDistinctId)\n }\n\n private async _decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse | undefined> {\n const distinctId = this.getDistinctId()\n const groups = this.props.$groups || {}\n const personProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n const groupProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n const extraProperties = {\n $anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : undefined,\n }\n\n this._decideResponsePromise = super\n .getDecide(distinctId, groups, personProperties, groupProperties, extraProperties)\n .then((res) => {\n if (res?.featureFlags) {\n let newFeatureFlags = res.featureFlags\n let newFeatureFlagPayloads = res.featureFlagPayloads\n if (res.errorsWhileComputingFlags) {\n // if not all flags were computed, we upsert flags instead of replacing them\n const currentFlags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.FeatureFlags\n )\n const currentFlagPayloads = this.getPersistedProperty<PostHogDecideResponse['featureFlagPayloads']>(\n PostHogPersistedProperty.FeatureFlagPayloads\n )\n newFeatureFlags = { ...currentFlags, ...res.featureFlags }\n newFeatureFlagPayloads = { ...currentFlagPayloads, ...res.featureFlagPayloads }\n }\n this.setKnownFeatureFlags(newFeatureFlags)\n this.setKnownFeatureFlagPayloads(newFeatureFlagPayloads)\n }\n\n return res\n })\n .finally(() => {\n this._decideResponsePromise = undefined\n })\n return this._decideResponsePromise\n }\n\n private setKnownFeatureFlags(featureFlags: PostHogDecideResponse['featureFlags']): void {\n this.setPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.FeatureFlags,\n featureFlags\n )\n this._events.emit('featureflags', featureFlags)\n }\n\n private setKnownFeatureFlagPayloads(featureFlagPayloads: PostHogDecideResponse['featureFlagPayloads']): void {\n this.setPersistedProperty<PostHogDecideResponse['featureFlagPayloads']>(\n PostHogPersistedProperty.FeatureFlagPayloads,\n featureFlagPayloads\n )\n }\n\n getFeatureFlag(key: string): boolean | string | undefined {\n const featureFlags = this.getFeatureFlags()\n\n if (!featureFlags) {\n // If we haven't loaded flags yet, or errored out, we respond with undefined\n return undefined\n }\n\n let response = featureFlags[key]\n // `/decide` v3 returns all flags\n\n if (response === undefined) {\n // For cases where the flag is unknown, return false\n response = false\n }\n\n if (this.sendFeatureFlagEvent && !this.flagCallReported[key]) {\n this.flagCallReported[key] = true\n this.capture('$feature_flag_called', {\n $feature_flag: key,\n $feature_flag_response: response,\n })\n }\n\n // If we have flags we either return the value (true or string) or false\n return response\n }\n\n getFeatureFlagPayload(key: string): JsonType | undefined {\n const payloads = this.getFeatureFlagPayloads()\n\n if (!payloads) {\n return undefined\n }\n\n const response = payloads[key]\n\n // Undefined means a loading or missing data issue. Null means evaluation happened and there was no match\n if (response === undefined) {\n return null\n }\n\n return this._parsePayload(response)\n }\n\n getFeatureFlagPayloads(): PostHogDecideResponse['featureFlagPayloads'] | undefined {\n const payloads = this.getPersistedProperty<PostHogDecideResponse['featureFlagPayloads']>(\n PostHogPersistedProperty.FeatureFlagPayloads\n )\n if (payloads) {\n return Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]))\n }\n return payloads\n }\n\n getFeatureFlags(): PostHogDecideResponse['featureFlags'] | undefined {\n let flags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(PostHogPersistedProperty.FeatureFlags)\n const overriddenFlags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.OverrideFeatureFlags\n )\n\n if (!overriddenFlags) {\n return flags\n }\n\n flags = flags || {}\n\n for (const key in overriddenFlags) {\n if (!overriddenFlags[key]) {\n delete flags[key]\n } else {\n flags[key] = overriddenFlags[key]\n }\n }\n\n return flags\n }\n\n getFeatureFlagsAndPayloads(): {\n flags: PostHogDecideResponse['featureFlags'] | undefined\n payloads: PostHogDecideResponse['featureFlagPayloads'] | undefined\n } {\n const flags = this.getFeatureFlags()\n const payloads = this.getFeatureFlagPayloads()\n\n return {\n flags,\n payloads,\n }\n }\n\n isFeatureEnabled(key: string): boolean | undefined {\n const response = this.getFeatureFlag(key)\n if (response === undefined) {\n return undefined\n }\n return !!response\n }\n\n // Used when we want to trigger the reload but we don't care about the result\n reloadFeatureFlags(cb?: (err?: Error, flags?: PostHogDecideResponse['featureFlags']) => void): void {\n this.decideAsync()\n .then((res) => {\n cb?.(undefined, res?.featureFlags)\n })\n .catch((e) => {\n cb?.(e, undefined)\n if (!cb) {\n console.log('[PostHog] Error reloading feature flags', e)\n }\n })\n }\n\n async reloadFeatureFlagsAsync(\n sendAnonDistinctId: boolean = true\n ): Promise<PostHogDecideResponse['featureFlags'] | undefined> {\n return (await this.decideAsync(sendAnonDistinctId))?.featureFlags\n }\n\n onFeatureFlags(cb: (flags: PostHogDecideResponse['featureFlags']) => void): () => void {\n return this.on('featureflags', async () => {\n const flags = this.getFeatureFlags()\n if (flags) {\n cb(flags)\n }\n })\n }\n\n onFeatureFlag(key: string, cb: (value: string | boolean) => void): () => void {\n return this.on('featureflags', async () => {\n const flagResponse = this.getFeatureFlag(key)\n if (flagResponse !== undefined) {\n cb(flagResponse)\n }\n })\n }\n\n overrideFeatureFlag(flags: PostHogDecideResponse['featureFlags'] | null): void {\n if (flags === null) {\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, null)\n }\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, flags)\n }\n}\n\nexport * from './types'\nexport { LZString }\n","import { PostHogPersistedProperty } from './types'\n\nexport class PostHogMemoryStorage {\n private _memoryStorage: { [key: string]: any | undefined } = {}\n\n getProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage[key]\n }\n\n setProperty(key: PostHogPersistedProperty, value: any | null): void {\n this._memoryStorage[key] = value !== null ? value : undefined\n }\n}\n","/**\n * Fetch wrapper\n *\n * We want to polyfill fetch when not available with axios but use it when it is.\n * NOTE: The current version of Axios has an issue when in non-node environments like Clouflare Workers.\n * This is currently solved by using the global fetch if available instead.\n * See https://github.com/PostHog/posthog-js-lite/issues/127 for more info\n */\n\nimport { PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\n\ntype FetchLike = (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n\nlet _fetch: FetchLike | undefined =\n // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n // @ts-ignore\n typeof fetch !== 'undefined' ? fetch : typeof global.fetch !== 'undefined' ? global.fetch : undefined\n\nif (!_fetch) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const axios = require('axios')\n\n _fetch = async (url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> => {\n const res = await axios.request({\n url,\n headers: options.headers,\n method: options.method.toLowerCase(),\n data: options.body,\n signal: options.signal,\n // fetch only throws on network errors, not on HTTP errors\n validateStatus: () => true,\n })\n\n return {\n status: res.status,\n text: async () => res.data,\n json: async () => res.data,\n }\n }\n}\n\n// NOTE: We have to export this as default, even though we prefer named exports as we are relying on detecting \"fetch\" in the global scope\nexport default _fetch as FetchLike\n","import { createHash } from 'rusha'\nimport { FeatureFlagCondition, FlagProperty, PostHogFeatureFlag, PropertyGroup } from './types'\nimport { version } from '../package.json'\nimport { JsonType, PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\nimport { safeSetTimeout } from 'posthog-core/src/utils'\nimport fetch from './fetch'\n\n// eslint-disable-next-line\nconst LONG_SCALE = 0xfffffffffffffff\n\nclass ClientError extends Error {\n constructor(message: string) {\n super()\n Error.captureStackTrace(this, this.constructor)\n this.name = 'ClientError'\n this.message = message\n Object.setPrototypeOf(this, ClientError.prototype)\n }\n}\n\nclass InconclusiveMatchError extends Error {\n constructor(message: string) {\n super(message)\n this.name = this.constructor.name\n Error.captureStackTrace(this, this.constructor)\n // instanceof doesn't work in ES3 or ES5\n // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/\n // this is the workaround\n Object.setPrototypeOf(this, InconclusiveMatchError.prototype)\n }\n}\n\ntype FeatureFlagsPollerOptions = {\n personalApiKey: string\n projectApiKey: string\n host: string\n pollingInterval: number\n timeout?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nclass FeatureFlagsPoller {\n pollingInterval: number\n personalApiKey: string\n projectApiKey: string\n featureFlags: Array<PostHogFeatureFlag>\n featureFlagsByKey: Record<string, PostHogFeatureFlag>\n groupTypeMapping: Record<string, string>\n cohorts: Record<string, PropertyGroup>\n loadedSuccessfullyOnce: boolean\n timeout?: number\n host: FeatureFlagsPollerOptions['host']\n poller?: NodeJS.Timeout\n fetch: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n debugMode: boolean = false\n\n constructor({\n pollingInterval,\n personalApiKey,\n projectApiKey,\n timeout,\n host,\n ...options\n }: FeatureFlagsPollerOptions) {\n this.pollingInterval = pollingInterval\n this.personalApiKey = personalApiKey\n this.featureFlags = []\n this.featureFlagsByKey = {}\n this.groupTypeMapping = {}\n this.cohorts = {}\n this.loadedSuccessfullyOnce = false\n this.timeout = timeout\n this.projectApiKey = projectApiKey\n this.host = host\n this.poller = undefined\n // NOTE: as any is required here as the AbortSignal typing is slightly misaligned but works just fine\n this.fetch = options.fetch || fetch\n\n void this.loadFeatureFlags()\n }\n\n debug(enabled: boolean = true): void {\n this.debugMode = enabled\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<string | boolean | undefined> {\n await this.loadFeatureFlags()\n\n let response = undefined\n let featureFlag = undefined\n\n if (!this.loadedSuccessfullyOnce) {\n return response\n }\n\n for (const flag of this.featureFlags) {\n if (key === flag.key) {\n featureFlag = flag\n break\n }\n }\n\n if (featureFlag !== undefined) {\n try {\n response = this.computeFlagLocally(featureFlag, distinctId, groups, personProperties, groupProperties)\n if (this.debugMode) {\n console.debug(`Successfully computed flag locally: ${key} -> ${response}`)\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n if (this.debugMode) {\n console.debug(`InconclusiveMatchError when computing flag locally: ${key}: ${e}`)\n }\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${key}: ${e}`)\n }\n }\n }\n\n return response\n }\n\n async computeFeatureFlagPayloadLocally(key: string, matchValue: string | boolean): Promise<JsonType | undefined> {\n await this.loadFeatureFlags()\n\n let response = undefined\n\n if (!this.loadedSuccessfullyOnce) {\n return undefined\n }\n\n if (typeof matchValue == 'boolean') {\n response = this.featureFlagsByKey?.[key]?.filters?.payloads?.[matchValue.toString()]\n } else if (typeof matchValue == 'string') {\n response = this.featureFlagsByKey?.[key]?.filters?.payloads?.[matchValue]\n }\n\n // Undefined means a loading or missing data issue. Null means evaluation happened and there was no match\n if (response === undefined) {\n return null\n }\n\n return response\n }\n\n async getAllFlagsAndPayloads(\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<{\n response: Record<string, string | boolean>\n payloads: Record<string, JsonType>\n fallbackToDecide: boolean\n }> {\n await this.loadFeatureFlags()\n\n const response: Record<string, string | boolean> = {}\n const payloads: Record<string, JsonType> = {}\n let fallbackToDecide = this.featureFlags.length == 0\n\n this.featureFlags.map(async (flag) => {\n try {\n const matchValue = this.computeFlagLocally(flag, distinctId, groups, personProperties, groupProperties)\n response[flag.key] = matchValue\n const matchPayload = await this.computeFeatureFlagPayloadLocally(flag.key, matchValue)\n if (matchPayload) {\n payloads[flag.key] = matchPayload\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n // do nothing\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${flag.key}: ${e}`)\n }\n fallbackToDecide = true\n }\n })\n\n return { response, payloads, fallbackToDecide }\n }\n\n computeFlagLocally(\n flag: PostHogFeatureFlag,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): string | boolean {\n if (flag.ensure_experience_continuity) {\n throw new InconclusiveMatchError('Flag has experience continuity enabled')\n }\n\n if (!flag.active) {\n return false\n }\n\n const flagFilters = flag.filters || {}\n const aggregation_group_type_index = flagFilters.aggregation_group_type_index\n\n if (aggregation_group_type_index != undefined) {\n const groupName = this.groupTypeMapping[String(aggregation_group_type_index)]\n\n if (!groupName) {\n console.warn(\n `[FEATURE FLAGS] Unknown group type index ${aggregation_group_type_index} for feature flag ${flag.key}`\n )\n throw new InconclusiveMatchError('Flag has unknown group type index')\n }\n\n if (!(groupName in groups)) {\n console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${flag.key} without group names passed in`)\n return false\n }\n\n const focusedGroupProperties = groupProperties[groupName]\n return this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties)\n } else {\n return this.matchFeatureFlagProperties(flag, distinctId, personProperties)\n }\n }\n\n matchFeatureFlagProperties(\n flag: PostHogFeatureFlag,\n distinctId: string,\n properties: Record<string, string>\n ): string | boolean {\n const flagFilters = flag.filters || {}\n const flagConditions = flagFilters.groups || []\n let isInconclusive = false\n let result = undefined\n\n // # Stable sort conditions with variant overrides to the top. This ensures that if overrides are present, they are\n // # evaluated first, and the variant override is applied to the first matching condition.\n const sortedFlagConditions = [...flagConditions].sort((conditionA, conditionB) => {\n const AHasVariantOverride = !!conditionA.variant\n const BHasVariantOverride = !!conditionB.variant\n\n if (AHasVariantOverride && BHasVariantOverride) {\n return 0\n } else if (AHasVariantOverride) {\n return -1\n } else if (BHasVariantOverride) {\n return 1\n } else {\n return 0\n }\n })\n\n for (const condition of sortedFlagConditions) {\n try {\n if (this.isConditionMatch(flag, distinctId, condition, properties)) {\n const variantOverride = condition.variant\n const flagVariants = flagFilters.multivariate?.variants || []\n if (variantOverride && flagVariants.some((variant) => variant.key === variantOverride)) {\n result = variantOverride\n } else {\n result = this.getMatchingVariant(flag, distinctId) || true\n }\n break\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n isInconclusive = true\n } else {\n throw e\n }\n }\n }\n\n if (result !== undefined) {\n return result\n } else if (isInconclusive) {\n throw new InconclusiveMatchError(\"Can't determine if feature flag is enabled or not with given properties\")\n }\n\n // We can only return False when all conditions are False\n return false\n }\n\n isConditionMatch(\n flag: PostHogFeatureFlag,\n distinctId: string,\n condition: FeatureFlagCondition,\n properties: Record<string, string>\n ): boolean {\n const rolloutPercentage = condition.rollout_percentage\n\n if ((condition.properties || []).length > 0) {\n for (const prop of condition.properties) {\n const propertyType = prop.type\n let matches = false\n\n if (propertyType === 'cohort') {\n matches = matchCohort(prop, properties, this.cohorts)\n } else {\n matches = matchProperty(prop, properties)\n }\n\n if (!matches) {\n return false\n }\n }\n\n if (rolloutPercentage == undefined) {\n return true\n }\n }\n\n if (rolloutPercentage != undefined && _hash(flag.key, distinctId) > rolloutPercentage / 100.0) {\n return false\n }\n\n return true\n }\n\n getMatchingVariant(flag: PostHogFeatureFlag, distinctId: string): string | boolean | undefined {\n const hashValue = _hash(flag.key, distinctId, 'variant')\n const matchingVariant = this.variantLookupTable(flag).find((variant) => {\n return hashValue >= variant.valueMin && hashValue < variant.valueMax\n })\n\n if (matchingVariant) {\n return matchingVariant.key\n }\n return undefined\n }\n\n variantLookupTable(flag: PostHogFeatureFlag): { valueMin: number; valueMax: number; key: string }[] {\n const lookupTable: { valueMin: number; valueMax: number; key: string }[] = []\n let valueMin = 0\n let valueMax = 0\n const flagFilters = flag.filters || {}\n const multivariates: {\n key: string\n rollout_percentage: number\n }[] = flagFilters.multivariate?.variants || []\n\n multivariates.forEach((variant) => {\n valueMax = valueMin + variant.rollout_percentage / 100.0\n lookupTable.push({ valueMin, valueMax, key: variant.key })\n valueMin = valueMax\n })\n return lookupTable\n }\n\n async loadFeatureFlags(forceReload = false): Promise<void> {\n if (!this.loadedSuccessfullyOnce || forceReload) {\n await this._loadFeatureFlags()\n }\n }\n\n async _loadFeatureFlags(): Promise<void> {\n if (this.poller) {\n clearTimeout(this.poller)\n this.poller = undefined\n }\n this.poller = setTimeout(() => this._loadFeatureFlags(), this.pollingInterval)\n\n try {\n const res = await this._requestFeatureFlagDefinitions()\n\n if (res && res.status === 401) {\n throw new ClientError(\n `Your personalApiKey is invalid. Are you sure you're not using your Project API key? More information: https://posthog.com/docs/api/overview`\n )\n }\n\n if (res && res.status !== 200) {\n // something else went wrong, or the server is down.\n // In this case, don't override existing flags\n return\n }\n\n const responseJson = await res.json()\n if (!('flags' in responseJson)) {\n console.error(`Invalid response when getting feature flags: ${JSON.stringify(responseJson)}`)\n }\n\n this.featureFlags = responseJson.flags || []\n this.featureFlagsByKey = this.featureFlags.reduce(\n (acc, curr) => ((acc[curr.key] = curr), acc),\n <Record<string, PostHogFeatureFlag>>{}\n )\n this.groupTypeMapping = responseJson.group_type_mapping || {}\n this.cohorts = responseJson.cohorts || []\n this.loadedSuccessfullyOnce = true\n } catch (err) {\n // if an error that is not an instance of ClientError is thrown\n // we silently ignore the error when reloading feature flags\n if (err instanceof ClientError) {\n throw err\n }\n }\n }\n\n async _requestFeatureFlagDefinitions(): Promise<PostHogFetchResponse> {\n const url = `${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}&send_cohorts`\n\n const options: PostHogFetchOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.personalApiKey}`,\n 'user-agent': `posthog-node/${version}`,\n },\n }\n\n let abortTimeout = null\n\n if (this.timeout && typeof this.timeout === 'number') {\n const controller = new AbortController()\n abortTimeout = safeSetTimeout(() => {\n controller.abort()\n }, this.timeout)\n options.signal = controller.signal\n }\n\n try {\n return await this.fetch(url, options)\n } finally {\n clearTimeout(abortTimeout)\n }\n }\n\n stopPoller(): void {\n clearTimeout(this.poller)\n }\n}\n\n// # This function takes a distinct_id and a feature flag key and returns a float between 0 and 1.\n// # Given the same distinct_id and key, it'll always return the same float. These floats are\n// # uniformly distributed between 0 and 1, so if we want to show this feature to 20% of traffic\n// # we can do _hash(key, distinct_id) < 0.2\nfunction _hash(key: string, distinctId: string, salt: string = ''): number {\n // rusha is a fast sha1 implementation in pure javascript\n const sha1Hash = createHash()\n sha1Hash.update(`${key}.${distinctId}${salt}`)\n return parseInt(sha1Hash.digest('hex').slice(0, 15), 16) / LONG_SCALE\n}\n\nfunction matchProperty(\n property: FeatureFlagCondition['properties'][number],\n propertyValues: Record<string, any>\n): boolean {\n const key = property.key\n const value = property.value\n const operator = property.operator || 'exact'\n\n if (!(key in propertyValues)) {\n throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`)\n } else if (operator === 'is_not_set') {\n throw new InconclusiveMatchError(`Operator is_not_set is not supported`)\n }\n\n const overrideValue = propertyValues[key]\n\n switch (operator) {\n case 'exact':\n return Array.isArray(value) ? value.indexOf(overrideValue) !== -1 : value === overrideValue\n case 'is_not':\n return Array.isArray(value) ? value.indexOf(overrideValue) === -1 : value !== overrideValue\n case 'is_set':\n return key in propertyValues\n case 'icontains':\n return String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'not_icontains':\n return !String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) !== null\n case 'not_regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) === null\n case 'gt':\n return typeof overrideValue == typeof value && overrideValue > value\n case 'gte':\n return typeof overrideValue == typeof value && overrideValue >= value\n case 'lt':\n return typeof overrideValue == typeof value && overrideValue < value\n case 'lte':\n return typeof overrideValue == typeof value && overrideValue <= value\n case 'is_date_after':\n case 'is_date_before': {\n const parsedDate = convertToDateTime(value)\n const overrideDate = convertToDateTime(overrideValue)\n if (operator === 'is_date_before') {\n return overrideDate < parsedDate\n }\n return overrideDate > parsedDate\n }\n default:\n console.error(`Unknown operator: ${operator}`)\n return false\n }\n}\n\nfunction matchCohort(\n property: FeatureFlagCondition['properties'][number],\n propertyValues: Record<string, any>,\n cohortProperties: FeatureFlagsPoller['cohorts']\n): boolean {\n const cohortId = String(property.value)\n if (!(cohortId in cohortProperties)) {\n throw new InconclusiveMatchError(\"can't match cohort without a given cohort property value\")\n }\n\n const propertyGroup = cohortProperties[cohortId]\n return matchPropertyGroup(propertyGroup, propertyValues, cohortProperties)\n}\n\nfunction matchPropertyGroup(\n propertyGroup: PropertyGroup,\n propertyValues: Record<string, any>,\n cohortProperties: FeatureFlagsPoller['cohorts']\n): boolean {\n if (!propertyGroup) {\n return true\n }\n\n const propertyGroupType = propertyGroup.type\n const properties = propertyGroup.values\n\n if (!properties || properties.length === 0) {\n // empty groups are no-ops, always match\n return true\n }\n\n let errorMatchingLocally = false\n\n if ('values' in properties[0]) {\n // a nested property group\n for (const prop of properties as PropertyGroup[]) {\n try {\n const matches = matchPropertyGroup(prop, propertyValues, cohortProperties)\n if (propertyGroupType === 'AND') {\n if (!matches) {\n return false\n }\n } else {\n // OR group\n if (matches) {\n return true\n }\n }\n } catch (err) {\n if (err instanceof InconclusiveMatchError) {\n console.debug(`Failed to compute property ${prop} locally: ${err}`)\n errorMatchingLocally = true\n } else {\n throw err\n }\n }\n }\n\n if (errorMatchingLocally) {\n throw new InconclusiveMatchError(\"Can't match cohort without a given cohort property value\")\n }\n // if we get here, all matched in AND case, or none matched in OR case\n return propertyGroupType === 'AND'\n } else {\n for (const prop of properties as FlagProperty[]) {\n try {\n let matches: boolean\n if (prop.type === 'cohort') {\n matches = matchCohort(prop, propertyValues, cohortProperties)\n } else {\n matches = matchProperty(prop, propertyValues)\n }\n\n const negation = prop.negation || false\n\n if (propertyGroupType === 'AND') {\n // if negated property, do the inverse\n if (!matches && !negation) {\n return false\n }\n if (matches && negation) {\n return false\n }\n } else {\n // OR group\n if (matches && !negation) {\n return true\n }\n if (!matches && negation) {\n return true\n }\n }\n } catch (err) {\n if (err instanceof InconclusiveMatchError) {\n console.debug(`Failed to compute property ${prop} locally: ${err}`)\n errorMatchingLocally = true\n } else {\n throw err\n }\n }\n }\n\n if (errorMatchingLocally) {\n throw new InconclusiveMatchError(\"can't match cohort without a given cohort property value\")\n }\n\n // if we get here, all matched in AND case, or none matched in OR case\n return propertyGroupType === 'AND'\n }\n}\n\nfunction isValidRegex(regex: string): boolean {\n try {\n new RegExp(regex)\n return true\n } catch (err) {\n return false\n }\n}\n\nfunction convertToDateTime(value: string | number | (string | number)[] | Date): Date {\n if (value instanceof Date) {\n return value\n } else if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value)\n if (!isNaN(date.valueOf())) {\n return date\n }\n throw new InconclusiveMatchError(`${value} is in an invalid date format`)\n } else {\n throw new InconclusiveMatchError(`The date provided ${value} must be a string, number, or date object`)\n }\n}\n\nexport { FeatureFlagsPoller, matchProperty, InconclusiveMatchError, ClientError }\n","import { version } from '../package.json'\n\nimport {\n JsonType,\n PosthogCoreOptions,\n PostHogCoreStateless,\n PostHogFetchOptions,\n PostHogFetchResponse,\n PosthogFlagsAndPayloadsResponse,\n PostHogPersistedProperty,\n} from '../../posthog-core/src'\nimport { PostHogMemoryStorage } from '../../posthog-core/src/storage-memory'\nimport { EventMessageV1, GroupIdentifyMessage, IdentifyMessageV1, PostHogNodeV1 } from './types'\nimport { FeatureFlagsPoller } from './feature-flags'\nimport fetch from './fetch'\n\nexport type PostHogOptions = PosthogCoreOptions & {\n persistence?: 'memory'\n personalApiKey?: string\n // The interval in milliseconds between polls for refreshing feature flag definitions\n featureFlagsPollingInterval?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // Maximum size of cache that deduplicates $feature_flag_called calls per user.\n maxCacheSize?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nconst THIRTY_SECONDS = 30 * 1000\nconst MAX_CACHE_SIZE = 50 * 1000\n\n// The actual exported Nodejs API.\nexport class PostHog extends PostHogCoreStateless implements PostHogNodeV1 {\n private _memoryStorage = new PostHogMemoryStorage()\n\n private featureFlagsPoller?: FeatureFlagsPoller\n private maxCacheSize: number\n private options: PostHogOptions\n\n distinctIdHasSentFlagCalls: Record<string, string[]>\n\n constructor(apiKey: string, options: PostHogOptions = {}) {\n options.captureMode = options?.captureMode || 'json'\n super(apiKey, options)\n\n this.options = options\n\n if (options.personalApiKey) {\n this.featureFlagsPoller = new FeatureFlagsPoller({\n pollingInterval:\n typeof options.featureFlagsPollingInterval === 'number'\n ? options.featureFlagsPollingInterval\n : THIRTY_SECONDS,\n personalApiKey: options.personalApiKey,\n projectApiKey: apiKey,\n timeout: options.requestTimeout ?? 10000, // 10 seconds\n host: this.host,\n fetch: options.fetch,\n })\n }\n this.distinctIdHasSentFlagCalls = {}\n this.maxCacheSize = options.maxCacheSize || MAX_CACHE_SIZE\n }\n\n getPersistedProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage.getProperty(key)\n }\n\n setPersistedProperty(key: PostHogPersistedProperty, value: any | null): void {\n return this._memoryStorage.setProperty(key, value)\n }\n\n fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> {\n return this.options.fetch ? this.options.fetch(url, options) : fetch(url, options)\n }\n\n getLibraryId(): string {\n return 'posthog-node'\n }\n getLibraryVersion(): string {\n return version\n }\n getCustomUserAgent(): string {\n return `posthog-node/${version}`\n }\n\n enable(): void {\n return super.optIn()\n }\n\n disable(): void {\n return super.optOut()\n }\n\n debug(enabled: boolean = true): void {\n super.debug(enabled)\n this.featureFlagsPoller?.debug(enabled)\n }\n\n capture({ distinctId, event, properties, groups, sendFeatureFlags, timestamp, disableGeoip }: EventMessageV1): void {\n const _capture = (props: EventMessageV1['properties']): void => {\n super.captureStateless(distinctId, event, props, { timestamp, disableGeoip })\n }\n\n if (sendFeatureFlags) {\n super.getFeatureFlagsStateless(distinctId, groups, undefined, undefined, disableGeoip).then((flags) => {\n const featureVariantProperties: Record<string, string | boolean> = {}\n if (flags) {\n for (const [feature, variant] of Object.entries(flags)) {\n if (variant !== false) {\n featureVariantProperties[`$feature/${feature}`] = variant\n }\n }\n }\n const activeFlags = Object.keys(flags || {}).filter((flag) => flags?.[flag] !== false)\n const flagProperties = {\n $active_feature_flags: activeFlags || undefined,\n ...featureVariantProperties,\n }\n _capture({ ...properties, $groups: groups, ...flagProperties })\n })\n } else {\n _capture({ ...properties, $groups: groups })\n }\n }\n\n identify({ distinctId, properties, disableGeoip }: IdentifyMessageV1): void {\n // Catch properties passed as $set and move them to the top level\n const personProperties = properties?.$set || properties\n\n super.identifyStateless(\n distinctId,\n {\n $set: personProperties,\n },\n { disableGeoip }\n )\n }\n\n alias(data: { distinctId: string; alias: string; disableGeoip?: boolean }): void {\n super.aliasStateless(data.alias, data.distinctId, undefined, { disableGeoip: data.disableGeoip })\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n disableGeoip?: boolean\n }\n ): Promise<string | boolean | undefined> {\n const { groups, personProperties, groupProperties, disableGeoip } = options || {}\n let { onlyEvaluateLocally, sendFeatureFlagEvents } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n if (sendFeatureFlagEvents == undefined) {\n sendFeatureFlagEvents = true\n }\n\n let response = await this.featureFlagsPoller?.getFeatureFlag(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n const flagWasLocallyEvaluated = response !== undefined\n\n if (!flagWasLocallyEvaluated && !onlyEvaluateLocally) {\n response = await super.getFeatureFlagStateless(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n }\n\n const featureFlagReportedKey = `${key}_${response}`\n\n if (\n sendFeatureFlagEvents &&\n (!(distinctId in this.distinctIdHasSentFlagCalls) ||\n !this.distinctIdHasSentFlagCalls[distinctId].includes(featureFlagReportedKey))\n ) {\n if (Object.keys(this.distinctIdHasSentFlagCalls).length >= this.maxCacheSize) {\n this.distinctIdHasSentFlagCalls = {}\n }\n if (Array.isArray(this.distinctIdHasSentFlagCalls[distinctId])) {\n this.distinctIdHasSentFlagCalls[distinctId].push(featureFlagReportedKey)\n } else {\n this.distinctIdHasSentFlagCalls[distinctId] = [featureFlagReportedKey]\n }\n this.capture({\n distinctId,\n event: '$feature_flag_called',\n properties: {\n $feature_flag: key,\n $feature_flag_response: response,\n locally_evaluated: flagWasLocallyEvaluated,\n [`$feature/${key}`]: response,\n },\n groups,\n disableGeoip,\n })\n }\n return response\n }\n\n async getFeatureFlagPayload(\n key: string,\n distinctId: string,\n matchValue?: string | boolean,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n disableGeoip?: boolean\n }\n ): Promise<JsonType | undefined> {\n const { groups, personProperties, groupProperties, disableGeoip } = options || {}\n let { onlyEvaluateLocally, sendFeatureFlagEvents } = options || {}\n let response = undefined\n\n // Try to get match value locally if not provided\n if (!matchValue) {\n matchValue = await this.getFeatureFlag(key, distinctId, {\n ...options,\n onlyEvaluateLocally: true,\n })\n }\n\n if (matchValue) {\n response = await this.featureFlagsPoller?.computeFeatureFlagPayloadLocally(key, matchValue)\n }\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n if (sendFeatureFlagEvents == undefined) {\n sendFeatureFlagEvents = true\n }\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n\n const payloadWasLocallyEvaluated = response !== undefined\n\n if (!payloadWasLocallyEvaluated && !onlyEvaluateLocally) {\n response = await super.getFeatureFlagPayloadStateless(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n }\n\n try {\n return JSON.parse(response as any)\n } catch {\n return response\n }\n }\n\n async isFeatureEnabled(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n disableGeoip?: boolean\n }\n ): Promise<boolean | undefined> {\n const feat = await this.getFeatureFlag(key, distinctId, options)\n if (feat === undefined) {\n return undefined\n }\n return !!feat || false\n }\n\n async getAllFlags(\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n disableGeoip?: boolean\n }\n ): Promise<Record<string, string | boolean>> {\n const response = await this.getAllFlagsAndPayloads(distinctId, options)\n return response.featureFlags\n }\n\n async getAllFlagsAndPayloads(\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n disableGeoip?: boolean\n }\n ): Promise<PosthogFlagsAndPayloadsResponse> {\n const { groups, personProperties, groupProperties, disableGeoip } = options || {}\n let { onlyEvaluateLocally } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n\n const localEvaluationResult = await this.featureFlagsPoller?.getAllFlagsAndPayloads(\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n let featureFlags = {}\n let featureFlagPayloads = {}\n let fallbackToDecide = true\n if (localEvaluationResult) {\n featureFlags = localEvaluationResult.response\n featureFlagPayloads = localEvaluationResult.payloads\n fallbackToDecide = localEvaluationResult.fallbackToDecide\n }\n\n if (fallbackToDecide && !onlyEvaluateLocally) {\n const remoteEvaluationResult = await super.getFeatureFlagsAndPayloadsStateless(\n distinctId,\n groups,\n personProperties,\n groupProperties,\n disableGeoip\n )\n featureFlags = {\n ...featureFlags,\n ...(remoteEvaluationResult.flags || {}),\n }\n featureFlagPayloads = {\n ...featureFlagPayloads,\n ...(remoteEvaluationResult.payloads || {}),\n }\n }\n\n return { featureFlags, featureFlagPayloads }\n }\n\n groupIdentify({ groupType, groupKey, properties, distinctId, disableGeoip }: GroupIdentifyMessage): void {\n super.groupIdentifyStateless(groupType, groupKey, properties, { disableGeoip }, distinctId)\n }\n\n async reloadFeatureFlags(): Promise<void> {\n await this.featureFlagsPoller?.loadFeatureFlags(true)\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n\n async shutdownAsync(): Promise<void> {\n this.featureFlagsPoller?.stopPoller()\n return super.shutdownAsync()\n }\n}\n"],"names":["_fetch","fetch","global","undefined","axios_1","require","url","options","__awaiter","request","headers","method","toLowerCase","data","body","signal","validateStatus","res","_a","sent","status","text","__generator","json","LONG_SCALE","ClientError","_super","__extends","message","_this","Error","captureStackTrace","constructor","name","Object","setPrototypeOf","prototype","InconclusiveMatchError","call","FeatureFlagsPoller","pollingInterval","personalApiKey","projectApiKey","timeout","host","__rest","debugMode","featureFlags","featureFlagsByKey","groupTypeMapping","cohorts","loadedSuccessfullyOnce","poller","loadFeatureFlags","debug","enabled","getFeatureFlag","key","distinctId","groups","personProperties","groupProperties","_b","response","featureFlag","_i","length","flag","computeFlagLocally","console","concat","e","error","computeFeatureFlagPayloadLocally","matchValue","_j","_c","filters","payloads","_d","toString","_h","_g","_e","getAllFlagsAndPayloads","fallbackToDecide","map","matchPayload","e_1","ensure_experience_continuity","active","flagFilters","aggregation_group_type_index","groupName","String","warn","focusedGroupProperties","matchFeatureFlagProperties","properties","flagConditions","isInconclusive","result","sortedFlagConditions","__spreadArray","sort","conditionA","conditionB","AHasVariantOverride","variant","BHasVariantOverride","condition","this_1","isConditionMatch","variantOverride_1","flagVariants","multivariate","variants","some","getMatchingVariant","sortedFlagConditions_1","rolloutPercentage","rollout_percentage","prop","propertyType","type","matches","matchCohort","matchProperty","_hash","hashValue","matchingVariant","variantLookupTable","find","valueMin","valueMax","lookupTable","multivariates","forEach","push","forceReload","_loadFeatureFlags","clearTimeout","setTimeout","_requestFeatureFlagDefinitions","responseJson","JSON","stringify","flags","reduce","acc","curr","group_type_mapping","err_1","Authorization","version","abortTimeout","controller_1","AbortController","safeSetTimeout","abort","stopPoller","salt","sha1Hash","createHash","update","parseInt","digest","slice","property","propertyValues","value","operator","overrideValue","Array","isArray","indexOf","includes","isValidRegex","match","parsedDate","convertToDateTime","overrideDate","cohortProperties","cohortId","propertyGroup","matchPropertyGroup","propertyGroupType","values","errorMatchingLocally","err","negation","regex","RegExp","Date","date","isNaN","valueOf","THIRTY_SECONDS","MAX_CACHE_SIZE","PostHog","apiKey","captureMode","_memoryStorage","PostHogMemoryStorage","featureFlagsPoller","featureFlagsPollingInterval","requestTimeout","distinctIdHasSentFlagCalls","maxCacheSize","getPersistedProperty","getProperty","setPersistedProperty","setProperty","getLibraryId","getLibraryVersion","getCustomUserAgent","enable","optIn","disable","optOut","capture","event","sendFeatureFlags","timestamp","disableGeoip","_capture","props","captureStateless","getFeatureFlagsStateless","then","featureVariantProperties","entries","feature","activeFlags","keys","filter","flagProperties","__assign","$active_feature_flags","$groups","identify","$set","identifyStateless","alias","aliasStateless","onlyEvaluateLocally","sendFeatureFlagEvents","flagWasLocallyEvaluated","getFeatureFlagStateless","featureFlagReportedKey","$feature_flag","$feature_flag_response","locally_evaluated","getFeatureFlagPayload","payloadWasLocallyEvaluated","getFeatureFlagPayloadStateless","parse","isFeatureEnabled","feat","getAllFlags","localEvaluationResult","featureFlagPayloads","getFeatureFlagsAndPayloadsStateless","remoteEvaluationResult","groupIdentify","groupType","groupKey","groupIdentifyStateless","reloadFeatureFlags","shutdown","shutdownAsync","PostHogCoreStateless"],"mappings":"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"}