@swapkit/helpers 3.0.0-beta.4 → 3.0.0-beta.5
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.
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
- package/src/modules/assetValue.ts +15 -3
package/dist/index.cjs.map
CHANGED
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
"import { match } from \"ts-pattern\";\nimport type * as tokenLists from \"../tokens/lists\";\n\nexport type TokenLists = {\n camelot: typeof tokenLists.CamelotV3List;\n caviar: typeof tokenLists.CaviarV1List;\n chainflip: typeof tokenLists.ChainflipList;\n jupiter: typeof tokenLists.JupiterList;\n mayachain: typeof tokenLists.MayaList;\n oneinch: typeof tokenLists.OneInchList;\n openocean: typeof tokenLists.OpenOceanV2List;\n pancakeswap: typeof tokenLists.PancakeswapList;\n pangolin: typeof tokenLists.PangolinList;\n sushiswap: typeof tokenLists.SushiswapList;\n thorchain: typeof tokenLists.ThorchainList;\n traderjoe: typeof tokenLists.TraderjoeV2List;\n uniswap: typeof tokenLists.UniswapV2List;\n uniswapv3: typeof tokenLists.UniswapV3List;\n};\n\nexport type TokenListName = keyof TokenLists;\n\nconst defaultLists = [\n \"camelot\",\n \"caviar\",\n \"chainflip\",\n \"jupiter\",\n \"mayachain\",\n \"oneinch\",\n \"openocean\",\n \"pancakeswap\",\n \"pangolin\",\n \"sushiswap\",\n \"thorchain\",\n \"traderjoe\",\n \"uniswap\",\n \"uniswapv3\",\n] as TokenListName[];\n\nexport async function loadTokenLists<T extends TokenListName[]>(pickedLists?: T) {\n const listsToLoad = pickedLists || defaultLists;\n const lists = {} as { [key in T[number]]: TokenLists[key] };\n\n for (const list of listsToLoad) {\n const tokenList = await loadTokenList(list);\n\n // @ts-expect-error - It's fine to do this because we know the type of the list\n lists[list] = tokenList;\n }\n\n return lists;\n}\n\nasync function loadTokenList<T extends TokenListName>(listName: T): Promise<TokenLists[T]> {\n const { list } = await match(listName as TokenListName)\n .with(\"camelot\", () => import(\"../tokens/lists/camelot_v3\"))\n .with(\"caviar\", () => import(\"../tokens/lists/caviar_v1\"))\n .with(\"chainflip\", () => import(\"../tokens/lists/chainflip\"))\n .with(\"jupiter\", () => import(\"../tokens/lists/jupiter\"))\n .with(\"mayachain\", () => import(\"../tokens/lists/mayachain\"))\n .with(\"oneinch\", () => import(\"../tokens/lists/oneinch\"))\n .with(\"openocean\", () => import(\"../tokens/lists/openocean_v2\"))\n .with(\"pancakeswap\", () => import(\"../tokens/lists/pancakeswap\"))\n .with(\"pangolin\", () => import(\"../tokens/lists/pangolin_v1\"))\n .with(\"sushiswap\", () => import(\"../tokens/lists/sushiswap_v2\"))\n .with(\"thorchain\", () => import(\"../tokens/lists/thorchain\"))\n .with(\"traderjoe\", () => import(\"../tokens/lists/traderjoe_v2\"))\n .with(\"uniswap\", () => import(\"../tokens/lists/uniswap_v2\"))\n .with(\"uniswapv3\", () => import(\"../tokens/lists/uniswap_v3\"))\n .exhaustive();\n\n return list as unknown as TokenLists[T];\n}\n",
|
|
18
18
|
"import { SKConfig } from \"../modules/swapKitConfig\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport type { Chain } from \"../types/chains\";\n\n// Backward compatibility\nconst supportedChains = [\"TERRA\", ...SKConfig.get(\"chains\")];\n\nexport function validateIdentifier(identifier = \"\") {\n const uppercasedIdentifier = identifier.toUpperCase();\n\n const [chain] = uppercasedIdentifier.split(\".\") as [Chain, string];\n if (supportedChains.includes(chain)) return true;\n\n const [synthChain] = uppercasedIdentifier.split(\"/\") as [Chain, string];\n if (supportedChains.includes(synthChain)) return true;\n\n throw new SwapKitError({\n errorKey: \"helpers_invalid_identifier\",\n info: {\n message: `Invalid identifier: ${identifier}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,\n identifier,\n },\n });\n}\n\nexport function validateTNS(name: string) {\n if (name.length > 30) return false;\n\n const regex = /^[a-zA-Z0-9+_-]+$/g;\n\n return !!name.match(regex);\n}\n",
|
|
19
19
|
"import { BaseDecimal } from \"../types/chains\";\nimport type { SwapKitNumber } from \"./swapKitNumber\";\n\ntype NumberPrimitivesType = {\n bigint: bigint;\n number: number;\n string: string;\n};\nexport type NumberPrimitives = bigint | number | string;\ntype InitialisationValueType = NumberPrimitives | BigIntArithmetics | SwapKitNumber;\n\ntype SKBigIntParams = InitialisationValueType | { decimal?: number; value: number | string };\ntype AllowedNumberTypes = \"bigint\" | \"number\" | \"string\";\n\nconst DEFAULT_DECIMAL = 8;\nconst toMultiplier = (decimal: number) => 10n ** BigInt(decimal);\nconst decimalFromMultiplier = (multiplier: bigint) =>\n Math.log10(Number.parseFloat(multiplier.toString()));\n\nexport function formatBigIntToSafeValue({\n value,\n bigIntDecimal = DEFAULT_DECIMAL,\n decimal = DEFAULT_DECIMAL,\n}: {\n value: bigint;\n bigIntDecimal?: number;\n decimal?: number;\n}) {\n if (decimal === 0) return value.toString();\n const isNegative = value < 0n;\n let valueString = value.toString().substring(isNegative ? 1 : 0);\n\n const padLength = decimal - (valueString.length - 1);\n\n if (padLength > 0) {\n valueString = \"0\".repeat(padLength) + valueString;\n }\n\n const decimalIndex = valueString.length - decimal;\n let decimalString = valueString.slice(-decimal);\n\n // Check if we need to round up\n if (Number.parseInt(decimalString[bigIntDecimal] || \"0\") >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(Number.parseInt(decimalString[bigIntDecimal - 1] || \"0\") + 1).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${valueString.slice(0, decimalIndex)}.${decimalString}`.replace(\n /\\.?0*$/,\n \"\",\n );\n}\n\nexport class BigIntArithmetics {\n decimalMultiplier: bigint = 10n ** 8n;\n bigIntValue = 0n;\n decimal?: number;\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new BigIntArithmetics({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n\n static shiftDecimals({\n value,\n from,\n to,\n }: {\n value: InstanceType<typeof SwapKitNumber>;\n from: number;\n to: number;\n }) {\n return BigIntArithmetics.fromBigInt(\n (value.getBaseValue(\"bigint\") * toMultiplier(to)) / toMultiplier(from),\n to,\n );\n }\n\n constructor(params: SKBigIntParams) {\n const value = getStringValue(params);\n const isComplex = typeof params === \"object\";\n this.decimal = isComplex ? params.decimal : undefined;\n\n // use the multiplier to keep track of decimal point - defaults to 8 if lower than 8\n this.decimalMultiplier =\n isComplex && \"decimalMultiplier\" in params\n ? params.decimalMultiplier\n : toMultiplier(Math.max(getFloatDecimals(toSafeValue(value)), this.decimal || 0));\n this.#setValue(value);\n }\n\n set(value: SKBigIntParams): this {\n // @ts-expect-error False positive\n return new this.constructor({\n decimal: this.decimal,\n value,\n // @ts-expect-error False positive\n identifier: this.toString({ includeSynthProtocol: true }),\n });\n }\n add(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"add\", ...args);\n }\n sub(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"sub\", ...args);\n }\n mul(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"mul\", ...args);\n }\n div(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"div\", ...args);\n }\n gt(value: InitialisationValueType) {\n return this.#comparison(\"gt\", value);\n }\n gte(value: InitialisationValueType) {\n return this.#comparison(\"gte\", value);\n }\n lt(value: InitialisationValueType) {\n return this.#comparison(\"lt\", value);\n }\n lte(value: InitialisationValueType) {\n return this.#comparison(\"lte\", value);\n }\n eqValue(value: InitialisationValueType) {\n return this.#comparison(\"eqValue\", value);\n }\n\n getValue<T extends AllowedNumberTypes>(type: T, decimal?: number): NumberPrimitivesType[T] {\n const value = this.formatBigIntToSafeValue(\n this.bigIntValue,\n decimal || this.decimal || decimalFromMultiplier(this.decimalMultiplier),\n );\n\n switch (type) {\n case \"number\":\n return Number(value) as NumberPrimitivesType[T];\n case \"string\":\n return value as NumberPrimitivesType[T];\n case \"bigint\":\n return ((this.bigIntValue * 10n ** BigInt(this.decimal || 8n)) /\n this.decimalMultiplier) as NumberPrimitivesType[T];\n default:\n return value as NumberPrimitivesType[T];\n }\n }\n\n getBaseValue<T extends AllowedNumberTypes>(type: T, decimal?: number): NumberPrimitivesType[T] {\n const divisor =\n this.decimalMultiplier / toMultiplier(decimal || this.decimal || BaseDecimal.THOR);\n const baseValue = this.bigIntValue / divisor;\n\n switch (type) {\n case \"number\":\n return Number(baseValue) as NumberPrimitivesType[T];\n case \"string\":\n return baseValue.toString() as NumberPrimitivesType[T];\n case \"bigint\":\n return baseValue as NumberPrimitivesType[T];\n default:\n return baseValue as NumberPrimitivesType[T];\n }\n }\n\n getBigIntValue(value: InitialisationValueType, decimal?: number) {\n if (!decimal && typeof value === \"object\") return value.bigIntValue;\n\n const stringValue = getStringValue(value);\n const safeValue = toSafeValue(stringValue);\n\n if (safeValue === \"0\" || safeValue === \"undefined\") return 0n;\n return this.#toBigInt(safeValue, decimal);\n }\n\n toSignificant(significantDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n const valueLength = Number.parseInt(integer) ? integer.length + decimal.length : decimal.length;\n\n if (valueLength <= significantDigits) {\n return this.getValue(\"string\");\n }\n\n if (integer.length >= significantDigits) {\n return integer.slice(0, significantDigits).padEnd(integer.length, \"0\");\n }\n\n if (Number.parseInt(integer)) {\n return `${integer}.${decimal.slice(0, significantDigits - integer.length)}`.padEnd(\n significantDigits - integer.length,\n \"0\",\n );\n }\n\n const trimmedDecimal = Number.parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, significantDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toFixed(fixedDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n\n if (Number.parseInt(integer)) {\n return `${integer}.${decimal.slice(0, fixedDigits)}`.padEnd(fixedDigits, \"0\");\n }\n\n const trimmedDecimal = Number.parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, fixedDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toAbbreviation(digits = 2) {\n const value = this.getValue(\"number\");\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"];\n const tier = Math.floor(Math.log10(Math.abs(value)) / 3);\n const suffix = abbreviations[tier];\n\n if (!suffix) return this.getValue(\"string\");\n\n const scale = 10 ** (tier * 3);\n const scaled = value / scale;\n\n return `${scaled.toFixed(digits)}${suffix}`;\n }\n\n toCurrency(\n currency = \"$\",\n {\n currencyPosition = \"start\",\n decimal = 2,\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n } = {},\n ) {\n const value = this.getValue(\"number\");\n const [int = \"\", dec = \"\"] = value.toFixed(6).split(\".\");\n const integer = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n const parsedValue =\n int || dec\n ? int === \"0\"\n ? `${Number.parseFloat(`0.${dec}`)}`.replace(\".\", decimalSeparator)\n : `${integer}${Number.parseInt(dec) ? `${decimalSeparator}${dec.slice(0, decimal)}` : \"\"}`\n : \"0.00\";\n\n return `${currencyPosition === \"start\" ? currency : \"\"}${parsedValue}${\n currencyPosition === \"end\" ? currency : \"\"\n }`;\n }\n\n formatBigIntToSafeValue(value: bigint, decimal?: number) {\n const bigIntDecimal = decimal || this.decimal || DEFAULT_DECIMAL;\n const decimalToUseForConversion = Math.max(\n bigIntDecimal,\n decimalFromMultiplier(this.decimalMultiplier),\n );\n const isNegative = value < 0n;\n\n const valueString = value.toString().substring(isNegative ? 1 : 0);\n const padLength = decimalToUseForConversion - (valueString.length - 1);\n\n const parsedValueString = padLength > 0 ? \"0\".repeat(padLength) + valueString : valueString;\n\n const decimalIndex = parsedValueString.length - decimalToUseForConversion;\n let decimalString = parsedValueString.slice(-decimalToUseForConversion);\n\n // Check if we need to round up\n if (Number.parseInt(decimalString[bigIntDecimal] || \"0\") >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(Number.parseInt(decimalString[bigIntDecimal - 1] || \"0\") + 1).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${parsedValueString.slice(\n 0,\n decimalIndex,\n )}.${decimalString}`.replace(/\\.?0*$/, \"\");\n }\n\n #arithmetics(method: \"add\" | \"sub\" | \"mul\" | \"div\", ...args: InitialisationValueType[]): this {\n const precisionDecimal = this.#retrievePrecisionDecimal(this, ...args);\n const decimal = Math.max(precisionDecimal, decimalFromMultiplier(this.decimalMultiplier));\n const precisionDecimalMultiplier = toMultiplier(decimal);\n\n const result = args.reduce(\n (acc: bigint, arg) => {\n const value = this.getBigIntValue(arg, decimal);\n\n switch (method) {\n case \"add\":\n return acc + value;\n case \"sub\":\n return acc - value;\n /**\n * Multiplication & division would end up with wrong result if we don't adjust the value\n * 200000000n * 200000000n => 40000000000000000n\n * 200000000n / 200000000n => 1n\n * So we do the following:\n * 200000000n * 200000000n = 40000000000000000n / 100000000n (decimals) => 400000000n\n * (200000000n * 100000000n (decimals)) / 200000000n => 100000000n\n */\n case \"mul\":\n return (acc * value) / precisionDecimalMultiplier;\n case \"div\": {\n if (value === 0n) throw new RangeError(\"Division by zero\");\n return (acc * precisionDecimalMultiplier) / value;\n }\n default:\n return acc;\n }\n },\n //normalize is to precision multiplier base\n (this.bigIntValue * precisionDecimalMultiplier) / this.decimalMultiplier,\n );\n\n const value = formatBigIntToSafeValue({\n bigIntDecimal: decimal,\n decimal,\n value: result,\n });\n\n // @ts-expect-error False positive\n return new this.constructor({\n decimalMultiplier: toMultiplier(decimal),\n decimal: this.decimal,\n value,\n identifier: this.toString(),\n });\n }\n\n #comparison(method: \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"eqValue\", ...args: InitialisationValueType[]) {\n const decimal = this.#retrievePrecisionDecimal(this, ...args);\n const value = this.getBigIntValue(args[0] || \"0\", decimal);\n const compareToValue = this.getBigIntValue(this, decimal);\n\n switch (method) {\n case \"gt\":\n return compareToValue > value;\n case \"gte\":\n return compareToValue >= value;\n case \"lt\":\n return compareToValue < value;\n case \"lte\":\n return compareToValue <= value;\n case \"eqValue\":\n return compareToValue === value;\n default:\n return false;\n }\n }\n\n #setValue(value: InitialisationValueType) {\n const safeValue = toSafeValue(value) || \"0\";\n this.bigIntValue = this.#toBigInt(safeValue);\n }\n\n #retrievePrecisionDecimal(...args: InitialisationValueType[]) {\n const decimals = args\n .map((arg) => {\n const isObject = typeof arg === \"object\";\n const value = isObject\n ? arg.decimal || decimalFromMultiplier(arg.decimalMultiplier)\n : getFloatDecimals(toSafeValue(arg));\n\n return value;\n })\n .filter(Boolean) as number[];\n\n return Math.max(...decimals, DEFAULT_DECIMAL);\n }\n\n #toBigInt(value: string, decimal?: number) {\n const multiplier = decimal ? toMultiplier(decimal) : this.decimalMultiplier;\n const padDecimal = decimalFromMultiplier(multiplier);\n const [integerPart = \"\", decimalPart = \"\"] = value.split(\".\");\n\n return BigInt(`${integerPart}${decimalPart.padEnd(padDecimal, \"0\")}`);\n }\n}\n\nconst numberFormatter = Intl.NumberFormat(\"fullwide\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n});\n\nfunction toSafeValue(value: InitialisationValueType) {\n const parsedValue =\n typeof value === \"number\" ? numberFormatter.format(value) : getStringValue(value);\n const splitValue = `${parsedValue}`.replaceAll(\",\", \".\").split(\".\");\n\n return splitValue.length > 1\n ? `${splitValue.slice(0, -1).join(\"\")}.${splitValue.at(-1)}`\n : splitValue[0] || \"0\";\n}\n\nfunction getFloatDecimals(value: string) {\n const decimals = value.split(\".\")[1]?.length || 0;\n return Math.max(decimals, DEFAULT_DECIMAL);\n}\n\nfunction getStringValue(param: SKBigIntParams) {\n return typeof param === \"object\"\n ? \"getValue\" in param\n ? param.getValue(\"string\")\n : param.value\n : param;\n}\n",
|
|
20
|
-
"import { BaseDecimal, Chain, type ChainId, ChainToChainId } from \"../types/chains\";\nimport type { TokenNames, TokenTax } from \"../types/tokens\";\nimport {\n type CommonAssetString,\n assetFromString,\n getAssetType,\n getCommonAssetInfo,\n getDecimal,\n isGasAsset,\n} from \"../utils/asset\";\nimport { warnOnce } from \"../utils/others\";\nimport { type TokenListName, loadTokenLists } from \"../utils/tokens\";\nimport { validateIdentifier } from \"../utils/validators\";\n\nimport type { NumberPrimitives } from \"./bigIntArithmetics\";\nimport { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics\";\nimport { SwapKitError } from \"./swapKitError\";\nimport type { SwapKitValueType } from \"./swapKitNumber\";\n\nconst staticTokensMap = new Map<\n TokenNames | string,\n { tax?: TokenTax; decimal: number; identifier: string }\n>();\n\ntype ConditionalAssetValueReturn<T extends { asyncTokenLookup?: boolean }> =\n T[\"asyncTokenLookup\"] extends true ? Promise<AssetValue> : AssetValue;\n\ntype AssetIdentifier =\n | { asset: CommonAssetString | TokenNames }\n | { asset: string }\n | { chain: Chain };\n\ntype AssetValueFromParams = AssetIdentifier & {\n value?: NumberPrimitives | SwapKitValueType;\n fromBaseDecimal?: number;\n asyncTokenLookup?: boolean;\n};\n\nexport class AssetValue extends BigIntArithmetics {\n address?: string;\n chain: Chain;\n isGasAsset = false;\n isSynthetic = false;\n isTradeAsset = false;\n symbol: string;\n tax?: TokenTax;\n ticker: string;\n type: ReturnType<typeof getAssetType>;\n chainId: ChainId;\n\n constructor({\n value,\n decimal,\n tax,\n chain,\n symbol,\n identifier,\n }: { decimal: number; value: SwapKitValueType; tax?: TokenTax } & (\n | { chain: Chain; symbol: string; identifier?: never }\n | { identifier: string; chain?: never; symbol?: never }\n )) {\n super(typeof value === \"object\" ? value : { decimal, value });\n\n const assetInfo = getAssetInfo(identifier || `${chain}.${symbol}`);\n\n this.type = getAssetType(assetInfo);\n this.tax = tax;\n this.chain = assetInfo.chain;\n this.ticker = assetInfo.ticker;\n this.symbol = assetInfo.symbol;\n this.address = assetInfo.address;\n this.isSynthetic = assetInfo.isSynthetic;\n this.isTradeAsset = assetInfo.isTradeAsset;\n this.isGasAsset = assetInfo.isGasAsset;\n this.chainId = ChainToChainId[assetInfo.chain];\n }\n\n toString({ includeSynthProtocol }: { includeSynthProtocol?: boolean } = {}) {\n return (this.isSynthetic || this.isTradeAsset) && !includeSynthProtocol\n ? this.symbol\n : `${this.chain}.${this.symbol}`;\n }\n\n toUrl() {\n return this.isSynthetic\n ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}`\n : this.isTradeAsset\n ? `${this.chain}.${this.symbol.replace(\"~\", \"..\")}`\n : this.toString();\n }\n\n eqAsset({ chain, symbol }: { chain: Chain; symbol: string }) {\n return this.chain === chain && this.symbol === symbol;\n }\n\n eq(assetValue: AssetValue) {\n return this.eqAsset(assetValue) && this.eqValue(assetValue);\n }\n\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(urlAsset: string, value: NumberPrimitives = 0) {\n const [chain, ticker, symbol] = urlAsset.split(\".\");\n if (!(chain && ticker)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_url\",\n info: { urlAsset },\n });\n }\n\n const asset = chain === Chain.THORChain && symbol ? `${chain}.${ticker}/${symbol}` : urlAsset;\n\n return AssetValue.from({ asset, value });\n }\n\n static from<T extends {}>({\n value = 0,\n fromBaseDecimal,\n asyncTokenLookup,\n ...fromAssetOrChain\n }: T & AssetValueFromParams): ConditionalAssetValueReturn<T> {\n const parsedValue = value instanceof BigIntArithmetics ? value.getValue(\"string\") : value;\n const assetOrChain = getAssetString(fromAssetOrChain);\n\n const { identifier: unsafeIdentifier, decimal: commonAssetDecimal } = getCommonAssetInfo(\n assetOrChain as CommonAssetString,\n );\n\n const { chain, isSynthetic, isTradeAsset } = getAssetInfo(unsafeIdentifier);\n const token = staticTokensMap.get(\n chain === Chain.Solana\n ? (unsafeIdentifier as TokenNames)\n : (unsafeIdentifier.toUpperCase() as TokenNames),\n );\n\n const tokenDecimal = token?.decimal || commonAssetDecimal;\n\n warnOnce(\n !(asyncTokenLookup || tokenDecimal),\n `Couldn't find static decimal for one or more tokens on ${chain} (Using default ${BaseDecimal[chain]} decimal as fallback).\nThis can result in incorrect calculations and mess with amount sent on transactions.\nYou can load static assets by installing @swapkit/tokens package and calling AssetValue.loadStaticAssets()\nor by passing asyncTokenLookup: true to the from() function, which will make it async and return a promise.`,\n );\n\n const { decimal, identifier, tax } = token || {\n decimal: tokenDecimal || BaseDecimal[chain],\n identifier: unsafeIdentifier,\n };\n\n const isSynthOrTrade = isSynthetic || isTradeAsset;\n\n const adjustedValue = fromBaseDecimal\n ? safeValue(BigInt(parsedValue), fromBaseDecimal)\n : safeValue(parsedValue, decimal);\n\n const assetValue = asyncTokenLookup\n ? createAssetValue(identifier, fromBaseDecimal ? adjustedValue : parsedValue)\n : isSynthOrTrade\n ? createSyntheticAssetValue(identifier, adjustedValue)\n : new AssetValue({ tax, decimal, identifier, value: adjustedValue });\n\n return assetValue as ConditionalAssetValueReturn<T>;\n }\n\n static async loadStaticAssets(listNames?: TokenListName[]) {\n const lists = await loadTokenLists(listNames);\n\n for (const { tokens } of Object.values(lists)) {\n for (const { identifier, chain, ...rest } of tokens) {\n const tokenKey = (chain === \"SOL\" ? identifier : identifier.toUpperCase()) as TokenNames;\n const tokenDecimal = \"decimals\" in rest ? rest.decimals : BaseDecimal[chain as Chain];\n\n staticTokensMap.set(tokenKey, { identifier, decimal: tokenDecimal });\n }\n }\n\n return true;\n }\n\n static setStaticAssets(\n tokenMap: Map<string, { tax?: TokenTax; decimal: number; identifier: string }>,\n ) {\n staticTokensMap.clear();\n for (const [key, value] of tokenMap.entries()) {\n staticTokensMap.set(key, value);\n }\n return true;\n }\n}\n\nexport function getMinAmountByChain(chain: Chain) {\n const asset = AssetValue.from({ chain });\n\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Litecoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n return asset.set(0.00010001);\n\n case Chain.Dogecoin:\n return asset.set(1.00000001);\n\n case Chain.Avalanche:\n case Chain.Ethereum:\n case Chain.Arbitrum:\n case Chain.BinanceSmartChain:\n return asset.set(0.00000001);\n\n case Chain.THORChain:\n case Chain.Maya:\n return asset.set(0);\n\n case Chain.Cosmos:\n case Chain.Kujira:\n return asset.set(0.000001);\n\n default:\n return asset.set(0.00000001);\n }\n}\n\nasync function createAssetValue(identifier: string, value: NumberPrimitives = 0) {\n validateIdentifier(identifier);\n\n const isCaseSensitiveChain = identifier.includes(\"SOL.\");\n\n const modifiedIdentifier = isCaseSensitiveChain\n ? (identifier as TokenNames)\n : (identifier.toUpperCase() as TokenNames);\n\n const staticToken = staticTokensMap.get(modifiedIdentifier);\n const decimal = staticToken?.decimal || (await getDecimal(getAssetInfo(identifier)));\n if (!staticToken) {\n staticTokensMap.set(modifiedIdentifier, { identifier, decimal });\n }\n\n return new AssetValue({\n decimal,\n value: safeValue(value, decimal),\n identifier,\n });\n}\n\nfunction createSyntheticAssetValue(identifier: string, value: NumberPrimitives = 0) {\n const chain = identifier.includes(\".\")\n ? (identifier.split(\".\")?.[0]?.toUpperCase() as Chain)\n : undefined;\n const isMayaOrThor = chain ? [Chain.Maya, Chain.THORChain].includes(chain) : false;\n\n const assetSeparator = identifier.slice(0, 14).includes(\"~\") ? \"~\" : \"/\";\n\n const [synthChain, symbol] = isMayaOrThor\n ? identifier.split(\".\").slice(1).join().split(assetSeparator)\n : identifier.split(assetSeparator);\n\n if (!(synthChain && symbol)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_identifier\",\n info: { identifier },\n });\n }\n\n return new AssetValue({\n decimal: 8,\n value: safeValue(value, 8),\n identifier: `${chain || Chain.THORChain}.${synthChain}${assetSeparator}${symbol}`,\n });\n}\n\nfunction safeValue(value: NumberPrimitives, decimal: number) {\n return typeof value === \"bigint\"\n ? formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal })\n : value;\n}\n\nfunction getAssetString(assetOrChain: AssetIdentifier) {\n if (\"chain\" in assetOrChain) return assetOrChain.chain;\n\n const { chain, symbol } = assetFromString(assetOrChain.asset);\n const isNativeChain = getAssetType({ chain, symbol }) === \"Native\";\n\n return isNativeChain ? chain : assetOrChain.asset;\n}\n\nfunction getAssetInfo(identifier: string) {\n const shortIdentifier = identifier.slice(0, 14);\n const splitIdentifier = identifier.split(\".\");\n const identifierChain = splitIdentifier[0]?.toUpperCase() as Chain;\n const isThorOrMaya = [Chain.THORChain, Chain.Maya].includes(identifierChain);\n\n const isSynthetic = shortIdentifier.includes(\"/\");\n const isTradeAsset = shortIdentifier.includes(\"~\");\n const isSynthOrTrade = isSynthetic || isTradeAsset;\n const assetSeparator = isTradeAsset ? \"~\" : \"/\";\n\n const [synthChain, synthSymbol = \"\"] = isThorOrMaya\n ? splitIdentifier.slice(1).join().split(assetSeparator)\n : identifier.split(assetSeparator);\n\n if (isSynthOrTrade && !(synthChain && synthSymbol)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_identifier\",\n info: { identifier },\n });\n }\n\n const [chain, ...rest] = (\n identifier.includes(\".\") && !isSynthOrTrade ? identifier : `${identifierChain}.${synthSymbol}`\n ).split(\".\") as [Chain, string];\n\n const assetSymbol = isSynthOrTrade ? synthSymbol : rest.join(\".\");\n\n const { address, ticker } = getAssetBaseInfo({ symbol: assetSymbol, chain });\n const symbol =\n (isSynthOrTrade ? `${synthChain}${assetSeparator}` : \"\") +\n (address ? `${ticker}-${address ?? \"\"}` : assetSymbol);\n\n return {\n address,\n chain,\n isSynthOrTrade,\n isSynthetic,\n isTradeAsset,\n ticker,\n symbol,\n isGasAsset: isGasAsset({ chain, symbol: assetSymbol }),\n };\n}\n\nfunction getAssetBaseInfo({ symbol, chain }: { symbol: string; chain: Chain }) {\n const splitSymbol = symbol.split(\"-\");\n const unformattedAddress =\n splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n const address = chain === Chain.Solana ? unformattedAddress : unformattedAddress?.toLowerCase();\n const ticker = (\n splitSymbol.length === 1 ? splitSymbol[0] : splitSymbol.slice(0, -1).join(\"-\")\n ) as string;\n\n return { address, ticker };\n}\n",
|
|
20
|
+
"import { BaseDecimal, Chain, type ChainId, ChainToChainId } from \"../types/chains\";\nimport type { TokenNames, TokenTax } from \"../types/tokens\";\nimport {\n type CommonAssetString,\n assetFromString,\n getAssetType,\n getCommonAssetInfo,\n getDecimal,\n isGasAsset,\n} from \"../utils/asset\";\nimport { warnOnce } from \"../utils/others\";\nimport { type TokenListName, loadTokenLists } from \"../utils/tokens\";\nimport { validateIdentifier } from \"../utils/validators\";\n\nimport type { NumberPrimitives } from \"./bigIntArithmetics\";\nimport { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics\";\nimport { SwapKitError } from \"./swapKitError\";\nimport type { SwapKitValueType } from \"./swapKitNumber\";\n\nconst staticTokensMap = new Map<\n TokenNames | string,\n { tax?: TokenTax; decimal: number; identifier: string }\n>();\n\ntype ConditionalAssetValueReturn<T extends { asyncTokenLookup?: boolean }> =\n T[\"asyncTokenLookup\"] extends true ? Promise<AssetValue> : AssetValue;\n\ntype AssetIdentifier =\n | { asset: CommonAssetString | TokenNames }\n | { asset: string }\n | { chain: Chain };\n\ntype AssetValueFromParams = AssetIdentifier & {\n value?: NumberPrimitives | SwapKitValueType;\n fromBaseDecimal?: number;\n asyncTokenLookup?: boolean;\n};\n\nexport class AssetValue extends BigIntArithmetics {\n address?: string;\n chain: Chain;\n isGasAsset = false;\n isSynthetic = false;\n isTradeAsset = false;\n symbol: string;\n tax?: TokenTax;\n ticker: string;\n type: ReturnType<typeof getAssetType>;\n chainId: ChainId;\n\n constructor({\n value,\n decimal,\n tax,\n chain,\n symbol,\n identifier,\n }: { decimal: number; value: SwapKitValueType; tax?: TokenTax } & (\n | { chain: Chain; symbol: string; identifier?: never }\n | { identifier: string; chain?: never; symbol?: never }\n )) {\n super(typeof value === \"object\" ? value : { decimal, value });\n\n const assetInfo = getAssetInfo(identifier || `${chain}.${symbol}`);\n\n this.type = getAssetType(assetInfo);\n this.tax = tax;\n this.chain = assetInfo.chain;\n this.ticker = assetInfo.ticker;\n this.symbol = assetInfo.symbol;\n this.address = assetInfo.address;\n this.isSynthetic = assetInfo.isSynthetic;\n this.isTradeAsset = assetInfo.isTradeAsset;\n this.isGasAsset = assetInfo.isGasAsset;\n this.chainId = ChainToChainId[assetInfo.chain];\n }\n\n toString({ includeSynthProtocol }: { includeSynthProtocol?: boolean } = {}) {\n return (this.isSynthetic || this.isTradeAsset) && !includeSynthProtocol\n ? this.symbol\n : `${this.chain}.${this.symbol}`;\n }\n\n toUrl() {\n return this.isSynthetic\n ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}`\n : this.isTradeAsset\n ? `${this.chain}.${this.symbol.replace(\"~\", \"..\")}`\n : this.toString();\n }\n\n eqAsset({ chain, symbol }: { chain: Chain; symbol: string }) {\n return this.chain === chain && this.symbol === symbol;\n }\n\n eq(assetValue: AssetValue) {\n return this.eqAsset(assetValue) && this.eqValue(assetValue);\n }\n\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(urlAsset: string, value: NumberPrimitives = 0) {\n const [chain, ticker, symbol] = urlAsset.split(\".\");\n if (!(chain && ticker)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_url\",\n info: { urlAsset },\n });\n }\n\n const asset = chain === Chain.THORChain && symbol ? `${chain}.${ticker}/${symbol}` : urlAsset;\n\n return AssetValue.from({ asset, value });\n }\n\n static from<T extends {}>({\n value = 0,\n fromBaseDecimal,\n asyncTokenLookup,\n ...fromAssetOrChain\n }: T & AssetValueFromParams): ConditionalAssetValueReturn<T> {\n const parsedValue = value instanceof BigIntArithmetics ? value.getValue(\"string\") : value;\n const assetOrChain = getAssetString(fromAssetOrChain);\n\n const { identifier: unsafeIdentifier, decimal: commonAssetDecimal } = getCommonAssetInfo(\n assetOrChain as CommonAssetString,\n );\n\n const { chain, isSynthetic, isTradeAsset } = getAssetInfo(unsafeIdentifier);\n const token = staticTokensMap.get(\n chain === Chain.Solana\n ? (unsafeIdentifier as TokenNames)\n : (unsafeIdentifier.toUpperCase() as TokenNames),\n );\n\n const tokenDecimal = token?.decimal || commonAssetDecimal;\n\n warnOnce(\n !(asyncTokenLookup || tokenDecimal),\n `Couldn't find static decimal for one or more tokens on ${chain} (Using default ${BaseDecimal[chain]} decimal as fallback).\nThis can result in incorrect calculations and mess with amount sent on transactions.\nYou can load static assets by installing @swapkit/tokens package and calling AssetValue.loadStaticAssets()\nor by passing asyncTokenLookup: true to the from() function, which will make it async and return a promise.`,\n );\n\n const { decimal, identifier, tax } = token || {\n decimal: tokenDecimal || BaseDecimal[chain],\n identifier: unsafeIdentifier,\n };\n\n const isSynthOrTrade = isSynthetic || isTradeAsset;\n\n const adjustedValue = fromBaseDecimal\n ? safeValue(BigInt(parsedValue), fromBaseDecimal)\n : safeValue(parsedValue, decimal);\n\n const assetValue = asyncTokenLookup\n ? createAssetValue(identifier, fromBaseDecimal ? adjustedValue : parsedValue)\n : isSynthOrTrade\n ? createSyntheticAssetValue(identifier, adjustedValue)\n : new AssetValue({ tax, decimal, identifier, value: adjustedValue });\n\n return assetValue as ConditionalAssetValueReturn<T>;\n }\n\n static async loadStaticAssets(listNames?: TokenListName[]) {\n const lists = await loadTokenLists(listNames);\n\n for (const { tokens } of Object.values(lists)) {\n for (const { identifier, chain, ...rest } of tokens) {\n const tokenKey = (\n chain === Chain.Solana ? identifier : identifier.toUpperCase()\n ) as TokenNames;\n const tokenDecimal = \"decimals\" in rest ? rest.decimals : BaseDecimal[chain as Chain];\n\n staticTokensMap.set(tokenKey, { identifier, decimal: tokenDecimal });\n }\n }\n\n return true;\n }\n\n static setStaticAssets(\n tokenMap: Map<\n string,\n { tax?: TokenTax; identifier: string; chain: Chain } & (\n | { decimal: number }\n | { decimals: number }\n )\n >,\n ) {\n staticTokensMap.clear();\n for (const [key, value] of tokenMap.entries()) {\n const tokenKey = (\n value.chain === Chain.Solana ? value.identifier : value.identifier.toUpperCase()\n ) as TokenNames;\n const tokenDecimal = \"decimals\" in value ? value.decimals : value.decimal;\n staticTokensMap.set(key, { ...value, decimal: tokenDecimal, identifier: tokenKey });\n }\n return true;\n }\n}\n\nexport function getMinAmountByChain(chain: Chain) {\n const asset = AssetValue.from({ chain });\n\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Litecoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n return asset.set(0.00010001);\n\n case Chain.Dogecoin:\n return asset.set(1.00000001);\n\n case Chain.Avalanche:\n case Chain.Ethereum:\n case Chain.Arbitrum:\n case Chain.BinanceSmartChain:\n return asset.set(0.00000001);\n\n case Chain.THORChain:\n case Chain.Maya:\n return asset.set(0);\n\n case Chain.Cosmos:\n case Chain.Kujira:\n return asset.set(0.000001);\n\n default:\n return asset.set(0.00000001);\n }\n}\n\nasync function createAssetValue(identifier: string, value: NumberPrimitives = 0) {\n validateIdentifier(identifier);\n\n const isCaseSensitiveChain = identifier.includes(\"SOL.\");\n\n const modifiedIdentifier = isCaseSensitiveChain\n ? (identifier as TokenNames)\n : (identifier.toUpperCase() as TokenNames);\n\n const staticToken = staticTokensMap.get(modifiedIdentifier);\n const decimal = staticToken?.decimal || (await getDecimal(getAssetInfo(identifier)));\n if (!staticToken) {\n staticTokensMap.set(modifiedIdentifier, { identifier, decimal });\n }\n\n return new AssetValue({\n decimal,\n value: safeValue(value, decimal),\n identifier,\n });\n}\n\nfunction createSyntheticAssetValue(identifier: string, value: NumberPrimitives = 0) {\n const chain = identifier.includes(\".\")\n ? (identifier.split(\".\")?.[0]?.toUpperCase() as Chain)\n : undefined;\n const isMayaOrThor = chain ? [Chain.Maya, Chain.THORChain].includes(chain) : false;\n\n const assetSeparator = identifier.slice(0, 14).includes(\"~\") ? \"~\" : \"/\";\n\n const [synthChain, symbol] = isMayaOrThor\n ? identifier.split(\".\").slice(1).join().split(assetSeparator)\n : identifier.split(assetSeparator);\n\n if (!(synthChain && symbol)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_identifier\",\n info: { identifier },\n });\n }\n\n return new AssetValue({\n decimal: 8,\n value: safeValue(value, 8),\n identifier: `${chain || Chain.THORChain}.${synthChain}${assetSeparator}${symbol}`,\n });\n}\n\nfunction safeValue(value: NumberPrimitives, decimal: number) {\n return typeof value === \"bigint\"\n ? formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal })\n : value;\n}\n\nfunction getAssetString(assetOrChain: AssetIdentifier) {\n if (\"chain\" in assetOrChain) return assetOrChain.chain;\n\n const { chain, symbol } = assetFromString(assetOrChain.asset);\n const isNativeChain = getAssetType({ chain, symbol }) === \"Native\";\n\n return isNativeChain ? chain : assetOrChain.asset;\n}\n\nfunction getAssetInfo(identifier: string) {\n const shortIdentifier = identifier.slice(0, 14);\n const splitIdentifier = identifier.split(\".\");\n const identifierChain = splitIdentifier[0]?.toUpperCase() as Chain;\n const isThorOrMaya = [Chain.THORChain, Chain.Maya].includes(identifierChain);\n\n const isSynthetic = shortIdentifier.includes(\"/\");\n const isTradeAsset = shortIdentifier.includes(\"~\");\n const isSynthOrTrade = isSynthetic || isTradeAsset;\n const assetSeparator = isTradeAsset ? \"~\" : \"/\";\n\n const [synthChain, synthSymbol = \"\"] = isThorOrMaya\n ? splitIdentifier.slice(1).join().split(assetSeparator)\n : identifier.split(assetSeparator);\n\n if (isSynthOrTrade && !(synthChain && synthSymbol)) {\n throw new SwapKitError({\n errorKey: \"helpers_invalid_asset_identifier\",\n info: { identifier },\n });\n }\n\n const [chain, ...rest] = (\n identifier.includes(\".\") && !isSynthOrTrade ? identifier : `${identifierChain}.${synthSymbol}`\n ).split(\".\") as [Chain, string];\n\n const assetSymbol = isSynthOrTrade ? synthSymbol : rest.join(\".\");\n\n const { address, ticker } = getAssetBaseInfo({ symbol: assetSymbol, chain });\n const symbol =\n (isSynthOrTrade ? `${synthChain}${assetSeparator}` : \"\") +\n (address ? `${ticker}-${address ?? \"\"}` : assetSymbol);\n\n return {\n address,\n chain,\n isSynthOrTrade,\n isSynthetic,\n isTradeAsset,\n ticker,\n symbol,\n isGasAsset: isGasAsset({ chain, symbol: assetSymbol }),\n };\n}\n\nfunction getAssetBaseInfo({ symbol, chain }: { symbol: string; chain: Chain }) {\n const splitSymbol = symbol.split(\"-\");\n const unformattedAddress =\n splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n const address = chain === Chain.Solana ? unformattedAddress : unformattedAddress?.toLowerCase();\n const ticker = (\n splitSymbol.length === 1 ? splitSymbol[0] : splitSymbol.slice(0, -1).join(\"-\")\n ) as string;\n\n return { address, ticker };\n}\n",
|
|
21
21
|
"import { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics\";\n\nexport type SwapKitValueType = BigIntArithmetics | string | number;\n\nexport class SwapKitNumber extends BigIntArithmetics {\n eq(value: SwapKitValueType) {\n return this.eqValue(value);\n }\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new SwapKitNumber({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n}\n",
|
|
22
22
|
"import { SwapKitNumber } from \"../index\";\nimport { BaseDecimal } from \"../types/chains\";\n\ntype ShareParams<T extends {}> = T & {\n liquidityUnits: string;\n poolUnits: string;\n};\n\ntype PoolParams = {\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n};\n\n/**\n * Ref: https://gitlab.com/thorchain/thornode/-/issues/657\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * s = stakeUnits for member (after factoring in withdrawBasisPoints)\n * T = totalPoolUnits for pool\n * A = assetDepth to be withdrawn\n *\n * Formula:\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * (part1 * (part2 - part3 + part4)) / part5\n */\nexport function getAsymmetricRuneShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n}: ShareParams<{ runeDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(runeDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const part5 = T.mul(T).mul(T);\n\n const numerator = part1.mul(part2.sub(part3).add(part4));\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricAssetShare({\n liquidityUnits,\n poolUnits,\n assetDepth,\n}: ShareParams<{ assetDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(assetDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const numerator = part1.mul(part2.sub(part3).add(part4));\n const part5 = T.mul(T).mul(T);\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricRuneWithdrawAmount({\n percent,\n runeDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; runeDepth: string }>) {\n return getAsymmetricRuneShare({ runeDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nexport function getAsymmetricAssetWithdrawAmount({\n percent,\n assetDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; assetDepth: string }>) {\n return getAsymmetricAssetShare({ assetDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nfunction toTCSwapKitNumber(value: string) {\n return SwapKitNumber.fromBigInt(BigInt(value), BaseDecimal.THOR);\n}\n\nexport function getSymmetricPoolShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n}>) {\n return {\n assetAmount: toTCSwapKitNumber(assetDepth).mul(liquidityUnits).div(poolUnits),\n runeAmount: toTCSwapKitNumber(runeDepth).mul(liquidityUnits).div(poolUnits),\n };\n}\n\nexport function getSymmetricWithdraw({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n percent,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n percent: number;\n}>) {\n return Object.fromEntries(\n Object.entries(getSymmetricPoolShare({ liquidityUnits, poolUnits, runeDepth, assetDepth })).map(\n ([name, value]) => [name, value.mul(percent)],\n ),\n );\n}\n\nexport function getEstimatedPoolShare({\n runeDepth,\n poolUnits,\n assetDepth,\n liquidityUnits,\n runeAmount,\n assetAmount,\n}: ShareParams<{\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n}>) {\n const R = new SwapKitNumber({ value: runeDepth, decimal: 8 });\n const A = new SwapKitNumber({ value: assetDepth, decimal: 8 });\n const P = new SwapKitNumber({ value: poolUnits, decimal: 8 });\n const runeAddAmount = new SwapKitNumber({ value: runeAmount, decimal: 8 });\n const assetAddAmount = new SwapKitNumber({ value: assetAmount, decimal: 8 });\n\n // liquidityUnits = P * (r*A + a*R + 2*r*a) / (r*A + a*R + 2*R*A)\n const rA = runeAddAmount.mul(A);\n const aR = assetAddAmount.mul(R);\n const ra = runeAddAmount.mul(assetAddAmount);\n const RA = R.mul(A);\n const numerator = P.mul(rA.add(aR.add(ra.mul(2))));\n const denominator = rA.add(aR.add(RA.mul(2)));\n const liquidityUnitsAfterAdd = numerator.div(denominator);\n const estimatedLiquidityUnits = toTCSwapKitNumber(liquidityUnits).add(liquidityUnitsAfterAdd);\n\n if (liquidityUnitsAfterAdd.getBaseValue(\"number\") === 0) {\n return estimatedLiquidityUnits.div(P).getBaseValue(\"number\");\n }\n\n // get pool units after add\n const newPoolUnits = P.add(estimatedLiquidityUnits);\n\n return estimatedLiquidityUnits.div(newPoolUnits).getBaseValue(\"number\");\n}\n\nexport function getLiquiditySlippage({\n runeAmount,\n assetAmount,\n runeDepth,\n assetDepth,\n}: PoolParams) {\n if (runeAmount === \"0\" || assetAmount === \"0\" || runeDepth === \"0\" || assetDepth === \"0\")\n return 0;\n // formula: (t * R - T * r)/ (T*r + R*T)\n const R = toTCSwapKitNumber(runeDepth);\n const T = toTCSwapKitNumber(assetDepth);\n const assetAddAmount = toTCSwapKitNumber(assetAmount);\n const runeAddAmount = toTCSwapKitNumber(runeAmount);\n\n const numerator = assetAddAmount.mul(R).sub(T.mul(runeAddAmount));\n const denominator = T.mul(runeAddAmount).add(R.mul(T));\n\n // set absolute value of percent, no negative allowed\n return Math.abs(numerator.div(denominator).getBaseValue(\"number\"));\n}\n",
|
|
23
23
|
"import { Chain } from \"../types/chains\";\nimport { MemoType } from \"../types/sdk\";\n\nexport function getMemoForLeaveAndBond({ type, address }: BondOrLeaveParams) {\n return `${type}:${address}`;\n}\n\nexport function getMemoForUnbond({ address, unbondAmount }: UnbondParams) {\n return `${MemoType.UNBOND}:${address}:${unbondAmount}`;\n}\n\n/**\n * Deposit\n */\nexport function getMemoForRunePoolDeposit(affiliate?: WithAffiliate<{}>) {\n return addAffiliate(MemoType.RUNEPOOL_DEPOSIT, affiliate);\n}\n\nexport function getMemoForSaverDeposit({\n chain,\n symbol,\n ...affiliate\n}: WithAffiliate<{ chain: Chain; symbol: string }>) {\n return addAffiliate(`${MemoType.DEPOSIT}:${chain}/${symbol}`, affiliate);\n}\n\nexport function getMemoForDeposit({\n chain,\n symbol,\n address,\n ...affiliate\n}: WithAffiliate<{\n chain: Chain;\n symbol: string;\n address?: string;\n}>) {\n const poolIdentifier = getPoolIdentifier({ chain, symbol });\n const addressPart = address ? `:${address}:` : \":\";\n\n return addAffiliate(`${MemoType.DEPOSIT}:${poolIdentifier}${addressPart}`, affiliate);\n}\n\n/**\n * Withdraw\n */\nexport function getMemoForSaverWithdraw({\n chain,\n symbol,\n basisPoints,\n}: { chain: Chain; symbol: string; basisPoints: number }) {\n return `${MemoType.WITHDRAW}:${chain}/${symbol}:${basisPoints}`;\n}\n\nexport function getMemoForWithdraw({\n chain,\n symbol,\n ticker,\n basisPoints,\n targetAsset,\n}: WithdrawParams) {\n const shortenedSymbol =\n chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const targetPart = targetAsset ? `:${targetAsset}` : \"\";\n\n return `${MemoType.WITHDRAW}:${chain}.${shortenedSymbol}:${basisPoints}${targetPart}`;\n}\n\nexport function getMemoForRunePoolWithdraw({\n basisPoints,\n ...affiliate\n}: WithAffiliate<{ basisPoints: number }>) {\n return addAffiliate(`${MemoType.RUNEPOOL_WITHDRAW}:${basisPoints}`, affiliate);\n}\n\n/**\n * TNS\n */\nexport function getMemoForNameRegister({ name, chain, address, owner }: NameRegisterParams) {\n const baseMemo = `${MemoType.NAME_REGISTER}:${name}:${chain}:${address}`;\n const ownerAssignmentOrChangePart = owner ? `:${owner}` : \"\";\n\n return `${baseMemo}${ownerAssignmentOrChangePart}`;\n}\n\nexport function getMemoForNamePreferredAssetRegister({\n name,\n chain,\n asset,\n payout,\n owner,\n}: PreferredAssetRegisterParams) {\n return `${MemoType.NAME_REGISTER}:${name}:${chain}:${payout}:${owner}:${asset}`;\n}\n\nexport function getMemoForLoan(\n memoType: MemoType.OPEN_LOAN | MemoType.CLOSE_LOAN,\n {\n asset,\n address,\n minAmount,\n ...affiliate\n }: WithAffiliate<{ address: string; asset: string; minAmount?: string }>,\n) {\n const baseMemo = `${memoType}:${asset}:${address}`;\n const minAmountPart = minAmount ? `:${minAmount}` : \"\";\n\n return addAffiliate(`${baseMemo}${minAmountPart}`, affiliate);\n}\n\n/**\n * Internal helpers\n */\nfunction addAffiliate(\n memo: string,\n { affiliateAddress, affiliateBasisPoints }: WithAffiliate<{}> = {},\n) {\n const affiliatedMemo = `${memo}${affiliateAddress ? `:${affiliateAddress}:${affiliateBasisPoints || 0}` : \"\"}`;\n\n return affiliatedMemo.endsWith(\":\") ? affiliatedMemo.slice(0, -1) : affiliatedMemo;\n}\n\nfunction getPoolIdentifier({\n chain,\n symbol,\n}: {\n chain: Chain;\n symbol: string;\n}) {\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Dogecoin:\n case Chain.Litecoin:\n return chain.slice(0, 1).toLowerCase();\n case Chain.BitcoinCash:\n return \"c\";\n\n default:\n return `${chain}.${symbol}`;\n }\n}\n\ntype WithAffiliate<T extends {}> = T & {\n affiliateAddress?: string;\n affiliateBasisPoints?: number;\n};\n\ntype BondOrLeaveParams = { type: MemoType.BOND | MemoType.LEAVE; address: string };\ntype UnbondParams = { address: string; unbondAmount: number };\ntype NameRegisterParams = { name: string; chain: string; address: string; owner?: string };\ntype PreferredAssetRegisterParams = {\n name: string;\n chain: Chain;\n asset: string;\n payout: string;\n owner: string;\n};\ntype WithdrawParams = {\n chain: Chain;\n symbol: string;\n ticker: string;\n basisPoints: number;\n targetAsset?: string;\n};\n",
|
|
24
24
|
"import type { ProviderName, SwapKitPluginParams } from \"../types\";\n\nexport function createPlugin<\n const Name extends string,\n T extends (params: SwapKitPluginParams) => Record<string, unknown>,\n K extends { supportedSwapkitProviders?: (ProviderName | string)[] },\n>({ name, properties, methods }: { name: Name; properties?: K; methods: T }) {\n function plugin(pluginParams: SwapKitPluginParams) {\n return { ...methods(pluginParams), ...properties } as K & ReturnType<T>;\n }\n\n return { [name]: plugin } as { [key in Name]: typeof plugin };\n}\n",
|
|
25
25
|
"import type { getEvmToolbox } from \"@swapkit/toolboxes/evm\";\nimport type { BrowserProvider, JsonRpcProvider } from \"ethers\";\nimport { SwapKitError } from \"../modules/swapKitError\";\nimport {\n type AddChainType,\n type Chain,\n ChainToHexChainId,\n type EIP6963AnnounceProviderEvent,\n type EIP6963Provider,\n type EthereumWindowProvider,\n type NetworkParams,\n WalletOption,\n} from \"../types\";\nimport { warnOnce } from \"./others\";\n\ndeclare const window: {\n ethereum: EthereumWindowProvider;\n trustwallet: EthereumWindowProvider;\n coinbaseWalletExtension: EthereumWindowProvider;\n braveSolana: any;\n bitkeep?: { ethereum: EthereumWindowProvider };\n xfi?: { ethereum: EthereumWindowProvider };\n $onekey?: { ethereum: EthereumWindowProvider };\n} & Window;\n\nexport function isWeb3Detected() {\n return typeof window.ethereum !== \"undefined\";\n}\n\nexport function isDetected(walletOption: WalletOption) {\n return listWeb3EVMWallets().includes(walletOption);\n}\n\nexport function listWeb3EVMWallets() {\n const metamaskEnabled = window?.ethereum && !window.ethereum?.isBraveWallet;\n // @ts-ignore that should be implemented in ctrl and hooked up via swapkit core\n const ctrlEnabled = window?.xfi || window?.ethereum?.__XDEFI;\n const braveEnabled = window?.ethereum?.isBraveWallet;\n const trustEnabled = window?.ethereum?.isTrust || window?.trustwallet;\n const coinbaseEnabled =\n (window?.ethereum?.overrideIsMetaMask &&\n window?.ethereum?.selectedProvider?.isCoinbaseWallet) ||\n window?.coinbaseWalletExtension;\n const bitgetEnabled = window?.bitkeep?.ethereum;\n const onekeyEnabled = window?.$onekey?.ethereum;\n\n const wallets = [];\n if (metamaskEnabled) wallets.push(WalletOption.METAMASK);\n if (ctrlEnabled) wallets.push(WalletOption.CTRL);\n if (braveEnabled) wallets.push(WalletOption.BRAVE);\n if (trustEnabled) wallets.push(WalletOption.TRUSTWALLET_WEB);\n if (coinbaseEnabled) wallets.push(WalletOption.COINBASE_WEB);\n if (okxMobileEnabled()) wallets.push(WalletOption.OKX_MOBILE);\n if (bitgetEnabled) wallets.push(WalletOption.BITGET);\n if (onekeyEnabled) wallets.push(WalletOption.ONEKEY);\n\n return wallets;\n}\n\nexport async function switchEVMWalletNetwork(\n provider: BrowserProvider,\n chain: Chain,\n networkParams?: NetworkParams,\n) {\n try {\n await providerRequest({\n provider,\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: ChainToHexChainId[chain] }],\n });\n } catch (_error) {\n if (!networkParams) {\n throw new Error(\"Failed to switch network, networkParams not provided\");\n }\n await addEVMWalletNetwork(provider, networkParams);\n }\n}\n\nexport function filterSupportedChains<T extends string[]>({\n chains,\n supportedChains,\n walletType,\n}: { chains: Chain[]; supportedChains: T; walletType?: WalletOption }) {\n const supported = chains.filter((chain) => supportedChains.includes(chain));\n\n if (supported.length === 0) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n wallet: walletType,\n chain: chains.join(\", \"),\n });\n }\n\n const unsupported = chains.filter((chain) => !supportedChains.includes(chain));\n\n warnOnce(\n unsupported.length > 0,\n `${walletType} wallet does not support the following chains: ${unsupported.join(\n \", \",\n )}. These chains will be ignored.`,\n );\n\n return supported as T;\n}\n\nexport function wrapMethodWithNetworkSwitch<T extends (...args: any[]) => any>(\n func: T,\n provider: BrowserProvider,\n chain: Chain,\n) {\n (async (...args: any[]) => {\n try {\n await switchEVMWalletNetwork(provider, chain);\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"helpers_failed_to_switch_network\",\n info: { error },\n });\n }\n return func(...args);\n }) as unknown as T;\n}\n\nexport function prepareNetworkSwitch<\n T extends Awaited<ReturnType<typeof getEvmToolbox>>,\n M extends keyof T,\n>({\n toolbox,\n chain,\n provider = window.ethereum,\n methodNames = [],\n}: { toolbox: T; chain: Chain; provider?: BrowserProvider | JsonRpcProvider; methodNames?: M[] }) {\n const methodsToWrap = [\n ...methodNames,\n \"approve\",\n \"approvedAmount\",\n \"call\",\n \"sendTransaction\",\n \"transfer\",\n \"isApproved\",\n \"approvedAmount\",\n \"EIP1193SendTransaction\",\n \"getFeeData\",\n \"broadcastTransaction\",\n \"estimateCall\",\n \"estimateGasLimit\",\n \"estimateGasPrices\",\n \"createContractTxObject\",\n ] as M[];\n const wrappedMethods = methodsToWrap.reduce((object, methodName) => {\n if (!toolbox[methodName]) return object;\n\n const method = toolbox[methodName];\n\n if (typeof method !== \"function\") return object;\n\n // @ts-expect-error\n const wrappedMethod = wrapMethodWithNetworkSwitch(method, provider, chain);\n\n // biome-ignore lint/performance/noAccumulatingSpread: valid use case\n return { ...object, [methodName]: wrappedMethod };\n }, {});\n\n return { ...toolbox, ...wrappedMethods };\n}\n\nexport function addEVMWalletNetwork(provider: BrowserProvider, networkParams: NetworkParams) {\n return providerRequest({ provider, method: \"wallet_addEthereumChain\", params: [networkParams] });\n}\n\nexport function addAccountsChangedCallback(callback: () => void) {\n window.ethereum?.on(\"accountsChanged\", () => callback());\n window.xfi?.ethereum.on(\"accountsChanged\", () => callback());\n}\n\nexport function getETHDefaultWallet() {\n const { isTrust, isBraveWallet, __XDEFI, overrideIsMetaMask, selectedProvider } =\n window?.ethereum || {};\n if (isTrust) return WalletOption.TRUSTWALLET_WEB;\n if (isBraveWallet) return WalletOption.BRAVE;\n if (overrideIsMetaMask && selectedProvider?.isCoinbaseWallet) return WalletOption.COINBASE_WEB;\n if (__XDEFI) WalletOption.CTRL;\n if (window?.$onekey?.ethereum) return WalletOption.ONEKEY;\n return WalletOption.METAMASK;\n}\n\nexport function getEIP6963Wallets() {\n const providers: EIP6963Provider[] = [];\n\n function onAnnouncement(event: EIP6963AnnounceProviderEvent) {\n if (providers.map((p) => p.info.uuid).includes(event.detail.info.uuid)) return;\n providers.push(event.detail);\n }\n\n window.addEventListener(\"eip6963:announceProvider\", onAnnouncement);\n window.dispatchEvent(new Event(\"eip6963:requestProvider\"));\n\n function removeEIP6963EventListener() {\n window.removeEventListener(\"eip6963:announceProvider\", onAnnouncement);\n }\n\n return { providers, removeEIP6963EventListener };\n}\n\nexport function okxMobileEnabled() {\n const ua = navigator.userAgent;\n const isIOS = /iphone|ipad|ipod|ios/i.test(ua);\n const isAndroid = /android|XiaoMi|MiuiBrowser/i.test(ua);\n const isMobile = isIOS || isAndroid;\n const isOKApp = /OKApp/i.test(ua);\n\n return isMobile && isOKApp;\n}\n\nexport function createWallet<\n ConnectParams extends any[],\n SupportedChains extends Chain[],\n const Name extends string,\n WalletType extends WalletOption,\n>({\n connect,\n name,\n supportedChains,\n walletType,\n}: {\n connect: (connectParams: {\n addChain: AddChainType;\n walletType: WalletType;\n supportedChains: SupportedChains;\n }) => (...params: ConnectParams) => Promise<boolean>;\n name: Name;\n supportedChains: SupportedChains;\n walletType?: WalletType | string;\n}) {\n function connectWallet(connectParams: {\n addChain: AddChainType;\n }) {\n return connect({ ...connectParams, walletType: walletType as WalletType, supportedChains });\n }\n\n return {\n [name]: { supportedChains, connectWallet },\n } as unknown as {\n [key in Name]: {\n connectWallet: typeof connectWallet;\n supportedChains: SupportedChains;\n };\n };\n}\n\nfunction providerRequest({\n provider,\n params,\n method,\n}: {\n provider?: BrowserProvider;\n params?: any;\n method:\n | \"wallet_addEthereumChain\"\n | \"wallet_switchEthereumChain\"\n | \"eth_requestAccounts\"\n | \"eth_sendTransaction\"\n | \"eth_signTransaction\";\n}) {\n if (!provider?.send) {\n throw new SwapKitError(\"helpers_not_found_provider\");\n }\n\n const providerParams = params ? (Array.isArray(params) ? params : [params]) : [];\n return provider.send(method, providerParams);\n}\n"
|
|
26
26
|
],
|
|
27
|
-
"mappings": "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",
|
|
28
|
-
"debugId": "
|
|
27
|
+
"mappings": "w1EAAO,IAAK,GAAL,CAAK,IAAL,CACL,WAAW,MACX,YAAY,OACZ,OAAO,OACP,oBAAoB,MACpB,UAAU,MACV,cAAc,MACd,SAAS,OACT,OAAO,OACP,WAAW,OACX,WAAW,MACX,OAAO,OACP,SAAS,OACT,WAAW,MACX,OAAO,OACP,OAAO,OACP,WAAW,KACX,WAAW,MACX,YAAY,OACZ,UAAU,QACV,QAAQ,MACR,SAAS,MACT,YAAY,OACZ,SAAS,QAvBC,QA0BL,IAAK,GAAL,CAAK,IAAL,CACL,YAAY,gBACZ,OAAO,kBAFG,QAKL,IAAK,GAAL,CAAK,IAAL,CACL,WAAW,QACX,cAAc,SACd,YAAY,QACZ,eAAe,SACf,OAAO,OACP,UAAU,SACV,oBAAoB,KACpB,uBAAuB,OACvB,UAAU,UACV,cAAc,cACd,YAAY,YACZ,SAAS,cACT,OAAO,OACP,WAAW,WACX,SAAS,UACT,WAAW,IACX,cAAc,MACd,OAAO,OACP,WAAW,WACX,OAAO,uBACP,eAAe,wBACf,OAAO,OACP,WAAW,KACX,cAAc,MACd,WAAW,WACX,UAAU,MACV,aAAa,OACb,QAAQ,gBACR,SAAS,SACT,YAAY,cACZ,oBAAoB,wBACpB,SAAS,WAhCC,QAmCL,IAAM,GAAyC,EACnD,UAAsB,OACtB,SAAmB,OACnB,UAAuB,QACvB,SAAoB,QACpB,UAAkB,QAClB,QAAe,QACf,QAA+B,OAC/B,MAA4B,OAC5B,eAAsB,OACtB,WAAkB,OAClB,aAAoB,QACpB,eAAiB,QACjB,QAAe,QACf,YAAmB,QACnB,OAAsB,OACtB,KAAmB,OACnB,QAAe,QACf,WAAiB,QACjB,YAAmB,OACnB,yBAAuB,QACvB,wBAAe,QACf,QAAe,QACf,OAAsB,MACtB,MAAmB,MACnB,YAAmB,OACnB,QAAqB,SACrB,OAAkB,SAClB,iBAAgB,OAChB,UAAiB,OACjB,UAAiB,OACjB,yBAA4B,QAC5B,eAAoB,MACvB,EAGM,GAAa,OAAO,KAAK,CAAK,EAC9B,EAAS,OAAO,OAAO,CAAK,EAErB,EAAqC,CAChD,IAAK,GACL,KAAM,GACN,KAAM,GACN,IAAK,EACL,IAAK,GACL,IAAK,EACL,KAAM,EACN,KAAM,EACN,IAAK,GACL,IAAK,GACL,KAAM,EACN,KAAM,GACN,KAAM,EACN,KAAM,EACN,IAAK,EACL,MAAO,GACP,KAAM,EACN,KAAM,GACN,GAAI,GACJ,IAAK,EACL,KAAM,EACN,IAAK,GACL,IAAK,CACP,EAEa,GAA6C,EACvD,OAAiB,KACjB,QAAkB,GAClB,QAAa,GACb,OAA0B,GAC1B,OAAgB,KAChB,OAAoB,KACpB,QAAkB,GAClB,QAAe,GACf,QAAa,KACb,QAAiB,KACjB,OAAiB,MACjB,QAAa,IACb,QAAe,KACf,OAAiB,KACjB,QAAa,GACb,QAAa,GACb,MAAiB,GACjB,OAAiB,GACjB,SAAgB,KAChB,OAAc,GACd,OAAe,GACf,OAAe,KACf,QAAkB,CACrB,EAGa,GAAkB,CAAC,MAAgB,MAAe,EAWlD,EAAY,CACvB,MACA,OACA,OACA,MACA,MACA,KACA,OACF,EAQa,GAAa,CACxB,MACA,MACA,OACA,OACA,KACF,EAGa,GAAe,CAAC,OAAc,OAAiB,OAAY,MAAY,EACvE,GAAsB,EAChC,QAAe,UACf,QAAkB,QAClB,QAAa,QACb,QAAe,QAClB,EAEa,GAAoB,CAC/B,OACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACF,EAEa,GAAsB,CACjC,MACA,OACA,MACA,OACA,OACA,MACF,EAEa,EAAkD,EAC5D,OAAiB,gCACjB,QAAkB,yCAClB,QAAa,mCACb,OAA0B,oCAC1B,OAAoB,iDACpB,OAAgB,sCAChB,QAAkB,sCAClB,QAAe,+CACf,QAAa,mCACb,QAAiB,6CACjB,OAAiB,uCACjB,QAAa,IACb,QAAe,+BACf,OAAiB,6CACjB,QAAa,qCACb,QAAa,6BACb,MAAiB,+BACjB,OAAiB,yBACjB,SAAgB,2BAChB,OAAc,yDACd,OAAe,kBACf,OAAe,qCACf,QAAkB,4BAClB,iBAAqB,8CACrB,iBAA0B,qCAC7B,EAEa,EAGT,EACD,QAAkB,iCAClB,QAAa,mCACb,iBAA0B,4CAC1B,iBAAqB,0CACxB,EAEa,GAAyD,EACnE,OAAiB,CAChB,4CACA,gDACF,GACC,QAAkB,CACjB,wCACA,8CACF,GACC,QAAa,CAAC,6CAA8C,sBAAsB,GAClF,OAA0B,CACzB,uCACA,mCACF,GACC,OAAgB,CAAC,gCAAgC,GACjD,OAAoB,CAAC,mCAAoC,iCAAiC,GAC1F,QAAkB,CACjB,uCACA,sCACF,GACC,QAAe,CAAC,kCAAmC,mCAAmC,GACtF,QAAa,CAAC,iCAAiC,GAC/C,QAAiB,CAAC,mCAAoC,iCAAiC,GACvF,OAAiB,CAAC,2BAA4B,0BAA0B,GACxE,QAAa,CAAC,GACd,QAAe,CAAC,kCAAmC,sCAAsC,GACzF,OAAiB,CAAC,kCAAmC,iCAAiC,GACtF,QAAa,CAAC,oCAAqC,wCAAwC,GAC3F,iBAAqB,CAAC,GACtB,QAAa,CAAC,sBAAsB,GACpC,MAAiB,CAAC,gCAAiC,oBAAoB,GACvE,OAAiB,CAChB,iCACA,4CACF,GACC,SAAgB,CAAC,+BAAgC,8BAA8B,GAC/E,OAAc,CAAC,+BAAgC,yCAAyC,GACxF,OAAe,CAAC,uBAAwB,sBAAsB,GAC9D,QAAkB,CAAC,kCAAmC,EAAU,IAAgB,GAChF,iBAA0B,CAAC,GAC3B,OAAe,CAAC,sCAAuC,6BAA6B,CACvF,EAEa,EAAuC,EACjD,OAAiB,uBACjB,QAAkB,wBAClB,QAAa,wBACb,OAA0B,uBAC1B,OAAgB,kCAChB,OAAoB,2CACpB,QAAkB,0CAClB,QAAe,kCACf,QAAa,+BACb,QAAiB,mCACjB,OAAiB,wBACjB,QAAa,IACb,QAAe,yCACf,OAAiB,mCACjB,QAAa,4BACb,QAAa,yBACb,MAAiB,mCACjB,OAAiB,+BACjB,SAAgB,2BAChB,OAAc,kCACd,OAAe,6BACf,QAAkB,uBAClB,OAAe,oBAClB,EAEI,GAAgB,EAEd,GAAa,CAAC,IAAiC,CACnD,OAAQ,OACD,UACA,WACA,WACA,UACA,UACA,SACA,QACH,MAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,kBAAmB,OAAQ,CAAC,CAAE,MACnE,UACA,WACA,UACA,WACA,MACH,MAAO,CAAE,GAAI,OAAQ,QAAS,MAAO,OAAQ,oBAAqB,OAAQ,CAAC,CAAE,MAC1E,WACA,WACA,WACA,WACA,oBACA,gBACH,MAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,SAAU,OAAQ,CAAC,CAAE,MAC1D,MACH,MAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,gBAAiB,OAAQ,CAAC,CAAE,MACjE,MACH,MAAO,CAAE,GAAI,EAAG,QAAS,MAAO,OAAQ,WAAY,MACjD,MACH,MAAO,WAEP,MAAM,IAAI,MAAM,sBAAsB,GAAO,IAInD,SAAS,EAAsB,CAAC,EAA8B,CAC5D,OAAQ,OACD,MACH,MAAO,wCAEP,MAAO,IAIb,IAAM,GAAoB,MAAO,EAA8B,IAAgB,CAC7E,GAAI,CACF,IAAM,EAAW,EAAI,WAAW,KAAK,EAAI,EAAI,QAAQ,MAAO,OAAO,EAAI,EAQvE,OAPiB,MAAM,MAAM,GAAG,IAAW,GAAuB,CAAK,IAAK,CAC1E,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,GAAW,CAAK,CAAC,EACtC,OAAQ,YAAY,QAAQ,IAAI,CAClC,CAAC,GAEe,GAChB,KAAM,CACN,MAAO,KAIL,GAAwB,MAAO,IAAiC,CACpE,IAAM,EAAa,EAAS,GAE5B,GAAI,MAAM,GAAkB,EAAO,CAAU,EAC3C,OAAO,EAGT,QAAW,KAAe,GAAc,GACtC,GAAI,MAAM,GAAkB,EAAO,CAAW,EAC5C,OAAO,EAIX,OAAO,GAGI,GAAgC,MAC3C,EAAoC,CAAC,GAAG,OAAO,OAAO,CAAK,EAAG,GAAG,OAAO,OAAO,CAAa,CAAC,IAC1F,CACH,IAAM,EAAqD,CAAC,EAK5D,MAAM,QAAQ,IACZ,EAAO,IAAI,MAAO,IAAU,CAC1B,IAAM,EAAa,MAAM,GAAsB,CAAK,EACpD,EAAY,GAAS,EACtB,CACH,EAEA,GAAgB,IAAK,MAAkB,CAAY,GAG/C,GAAmB,EAAO,OAC9B,CAAC,EAAK,IAAU,CACd,IAAM,EAAY,GAAW,KAAK,CAAC,IAAQ,EAAM,KAA0B,CAAK,EAEhF,GAAI,EAAW,EAAI,GAAS,EAE5B,OAAO,GAET,CAAC,CACH,EAEa,GAAiB,EAAO,OACnC,CAAC,EAAK,IAAU,CAEd,OADA,EAAI,GAAS,EAAQ,GAAiB,IAC/B,GAET,CAAC,CACH,EAEa,GAAoB,EAAO,OACtC,CAAC,EAAK,IAAU,CACd,IAAM,EAAc,GAAG,GAAiB,QAGxC,OADA,EAAI,GAAS,EAAQ,GACd,GAET,CAAC,CACH,EAEa,GAAqB,EAAO,OACvC,CAAC,EAAK,IAAU,CAEd,OADA,EAAI,GAAS,EAAc,GACpB,GAET,CAAC,CACH,EC5csB,IAAtB,wBCA4B,IAA5B,8BCYO,IAAK,IAAL,CAAK,IAAL,CACL,+BAA+B,QAC/B,sBAAsB,WACtB,uBAAuB,WACvB,sBAAsB,WACtB,sBAAsB,WACtB,aAAa,cACb,cAAc,cACd,aAAa,cACb,uBAAuB,WACvB,cAAc,cACd,eAAe,cACf,cAAc,cACd,sBAAsB,WACtB,aAAa,cACb,cAAc,cACd,aAAa,gBAhBH,SA0BL,IAAM,GAAW,CAAC,cAAsB,cAAwB,aAAoB,EAE9E,GAAU,CACrB,WACA,cACA,cACA,WACA,cACA,cACA,WACA,cACA,aACF,EAEa,GAAW,CACtB,QACA,WACA,WACA,UACF,EC1CO,SAAS,CAAoB,CAClC,EACA,EACA,CACA,GAAI,UAAW,EAEb,MADgB,CAAC,GAAG,EAAK,MAAM,EAAG,EAAK,OAAS,CAAC,EAAG,EAAO,KAAK,EAIlE,GAAI,WAAY,EAAQ,CACtB,IAAO,EAAS,EAAS,GAAW,GAAS,EAC7C,MAAO,CAAC,EAAS,EAAS,EAAS,EAAO,OAAQ,CAAK,EAGzD,GAAI,YAAa,EAAQ,CACvB,IAAO,EAAS,GAAW,EAAQ,GAAS,EAC5C,MAAO,CAAC,EAAS,EAAS,EAAO,QAAS,EAAQ,CAAK,EAGzD,OAAO,EAGF,SAAS,EAAsB,EAAE,EAAS,EAAS,EAAS,EAAQ,GAElD,CAGvB,MAAO,KAAK,MAAY,MAAY,MAAY,IAF9B,OAAO,IAAU,SAEkC,GAAK,IAAI,MAIzE,SAAS,EAAoB,EAAG,QAAO,QAAO,eAAe,EAAG,QAAgB,CACrF,GAAI,EAAU,SAAS,CAAiB,EAAG,CACzC,GAAI,GAAQ,CAAC,SAAU,SAAS,EAAE,SAAS,CAAI,EAC7C,MAAO,CAAC,GAAI,GAAI,EAAG,CAAK,EAG1B,GAAI,IAAS,aACX,MAAO,CAAC,GAAI,GAAI,EAAO,EAAG,CAAY,EAGxC,OAAO,EAAqB,EAAsB,GAAQ,CAAE,OAAM,CAAC,EAGrE,GAAI,UAAwB,CAC1B,GAAI,IAAS,UAAW,MAAO,CAAC,GAAI,IAAK,EAAG,CAAK,EACjD,OAAO,EAAqB,EAAsB,GAAQ,CAAE,OAAM,CAAC,EAGrE,IAAM,EAAU,UAA2B,EAAI,EAE/C,OAAQ,OACD,4BACH,MAAO,CAAC,GAAI,EAAS,EAAO,EAAG,CAAY,MACxC,SACH,MAAO,CAAC,GAAI,EAAS,EAAG,EAAG,CAAK,MAC7B,SACH,MAAO,CAAC,GAAI,EAAS,EAAG,EAAG,CAAK,UAEhC,OAAO,EAAqB,EAAsB,GAAQ,CAAE,OAAM,CAAC,GAIlE,SAAS,EAAkB,CAAC,EAAc,CAC/C,IAAO,EAAG,EAAS,GAAW,EAAK,MAAM,GAAG,EAAE,IAAI,CAAC,IAAM,OAAO,SAAS,EAAG,EAAE,CAAC,EAI/E,OAAQ,OACD,IACH,MAAO,aACJ,IACH,MAAO,eAEP,MAAO,UCtFN,IAAK,IAAL,CAAK,IAAL,CACL,MAAM,6CACN,OAAO,6CACP,OAAO,6CACP,MAAM,6CACN,MAAM,6CACN,QAAQ,6CACR,KAAK,+CAPK,SAYL,IAAM,EAA4D,CACvE,IAAK,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACrB,KAAM,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACtB,KAAM,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACtB,IAAK,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EACtB,IAAK,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACrB,IAAK,CAAC,GAAI,EAAG,EAAG,EAAG,CAAC,EACpB,KAAM,CAAC,GAAI,EAAG,EAAG,EAAG,CAAC,EACrB,KAAM,CAAC,GAAI,EAAG,EAAG,EAAG,CAAC,EACrB,IAAK,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACrB,KAAM,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EACvB,KAAM,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EACvB,IAAK,CAAC,GAAI,EAAG,EAAG,EAAG,CAAC,EACpB,MAAO,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACvB,KAAM,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EACvB,KAAM,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EACvB,GAAI,CAAC,GAAI,GAAI,EAAG,EAAG,CAAC,EACpB,IAAK,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EACtB,KAAM,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,EAGvB,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACnB,KAAM,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACpB,KAAM,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACpB,IAAK,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EACnB,IAAK,CAAC,GAAI,IAAK,EAAG,EAAG,CAAC,CACxB,EAEa,GAAwC,OAAO,KAAK,CAAqB,EAAE,OACtF,CAAC,EAAK,IAAQ,CAEZ,OADA,EAAI,GAAgB,GAAuB,EAAsB,EAAa,EACvE,GAET,CAAC,CACH,ECjDO,IAAK,IAAL,CAAK,IAAL,CACL,eAAe,eACf,aAAa,aACb,uBAAuB,uBACvB,sBAAsB,sBACtB,4BAA4B,4BAC5B,0BAA0B,0BAC1B,gBAAgB,gBAChB,wBAAwB,wBACxB,eAAe,eACf,kBAAkB,kBAClB,6BAA6B,6BAC7B,0BAA0B,0BAC1B,wBAAwB,wBACxB,uBAAuB,uBACvB,oBAAoB,oBACpB,qBAAqB,qBACrB,eAAe,eACf,gBAAgB,gBAChB,YAAY,YACZ,mBAAmB,mBACnB,mBAAmB,mBACnB,yBAAyB,yBACzB,0BAA0B,0BAC1B,eAAe,eACf,qBAAqB,qBACrB,wCAAwC,wCACxC,wCAAwC,wCACxC,8BAA8B,8BAC9B,uCAAuC,uCACvC,kBAAkB,kBAClB,kBAAkB,kBAClB,iBAAiB,iBACjB,cAAc,cACd,aAAa,aACb,oBAAoB,oBACpB,iBAAiB,iBACjB,qBAAqB,qBACrB,gBAAgB,gBAChB,kBAAkB,kBAClB,cAAc,cACd,sBAAsB,sBACtB,uBAAuB,uBACvB,kBAAkB,kBAClB,oBAAoB,oBACpB,mBAAmB,mBACnB,mBAAmB,mBACnB,yBAAyB,yBACzB,sBAAsB,sBACtB,yBAAyB,yBACzB,0BAA0B,0BAC1B,uBAAuB,uBACvB,4BAA4B,4BAC5B,+BAA+B,+BAC/B,oCAAoC,oCACpC,iBAAiB,iBACjB,qBAAqB,qBACrB,wBAAwB,wBACxB,oBAAoB,oBACpB,sBAAsB,sBACtB,yBAAyB,yBACzB,qBAAqB,qBACrB,oBAAoB,oBACpB,sBAAsB,sBACtB,+BAA+B,+BAC/B,yBAAyB,yBACzB,oBAAoB,oBACpB,gBAAgB,gBAChB,qBAAqB,qBACrB,2BAA2B,2BAC3B,qBAAqB,qBACrB,mBAAmB,mBACnB,2BAA2B,2BAC3B,qBAAqB,qBACrB,uBAAuB,uBACvB,yBAAyB,yBACzB,2BAA2B,2BAC3B,wBAAwB,wBACxB,gBAAgB,gBAChB,qBAAqB,oBACrB,0BAA0B,0BAC1B,gCAAgC,gCAChC,oBAAoB,oBACpB,iBAAiB,iBACjB,mBAAmB,mBACnB,gBAAgB,gBAChB,gBAAgB,gBAChB,gBAAgB,gBAChB,mBAAmB,mBACnB,qBAAqB,qBACrB,wBAAwB,wBACxB,kBAAkB,kBAClB,gCAAgC,gCAChC,iBAAiB,iBACjB,uBAAuB,uBACvB,2BAA2B,2BAC3B,0BAA0B,0BAC1B,yBAAyB,yBACzB,mBAAmB,mBACnB,oBAAoB,oBACpB,mBAAmB,oBACnB,gBAAgB,kBAChB,iBAAiB,mBACjB,gBAAgB,gBAChB,oBAAoB,oBACpB,4BAA4B,4BAC5B,wBAAwB,wBACxB,uBAAuB,uBACvB,eAAe,eACf,2BAA2B,2BAC3B,mBAAmB,mBACnB,iBAAiB,iBACjB,sBAAsB,sBACtB,wBAAwB,wBACxB,uBAAuB,uBACvB,eAAe,eACf,qBAAqB,qBACrB,gCAAgC,gCAChC,qBAAqB,qBACrB,gBAAgB,gBAChB,uBAAuB,uBACvB,gBAAgB,gBAChB,eAAe,eACf,qBAAqB,qBACrB,6BAA6B,6BAC7B,qBAAqB,qBACrB,uBAAuB,uBACvB,0BAA0B,0BAC1B,0BAA0B,0BAC1B,yBAAyB,yBACzB,eAAe,eACf,oBAAoB,oBACpB,0BAA0B,0BAC1B,oBAAoB,oBACpB,wBAAwB,0BAtId,SAyIL,IAAK,IAAL,CAAK,IAAL,CACL,eAAe,eACf,kBAAkB,oBAFR,SAKL,IAAK,IAAL,CAAK,IAAL,CACL,YAAY,YACZ,aAAa,aACb,YAAY,YACZ,sBAAsB,sBACtB,UAAU,UACV,YAAY,YACZ,sBAAsB,sBACtB,aAAa,aACb,UAAU,UACV,eAAe,eACf,cAAc,cACd,cAAc,cACd,eAAe,eACf,YAAY,YACZ,sBAAsB,sBACtB,eAAe,eACf,aAAa,aACb,aAAa,aACb,OAAO,SAnBG,SAsBL,IAAK,IAAL,CAAK,IAAL,CACL,YAAY,YACZ,UAAU,UACV,UAAU,UACV,WAAW,WACX,YAAY,YACZ,MAAM,MACN,WAAW,aAPD,SCtJL,IAAK,IAAL,CAAK,IAAL,CACL,UAAU,UACV,OAAO,OACP,UAAU,YAHA,SAML,IAAK,IAAL,CAAK,IAAL,CACL,UAAU,UACV,YAAY,cAFF,SASL,IAAK,IAAL,CAAK,IAAL,CACL,gBAAgB,IAChB,OAAO,OACP,UAAU,IACV,QAAQ,QACR,SAAS,SACT,WAAW,IACX,YAAY,KACZ,aAAa,KACb,mBAAmB,QACnB,oBAAoB,UAVV,SCqBL,IAAK,GAAL,CAAK,IAAL,CACL,SAAS,SACT,QAAQ,QACR,kBAAkB,kBAClB,eAAe,eACf,OAAO,OACP,UAAU,UACV,SAAS,SACT,UAAU,UACV,cAAc,cACd,QAAQ,QACR,WAAW,WACX,OAAO,OACP,SAAS,SACT,cAAc,cACd,WAAW,WACX,MAAM,MACN,aAAa,aACb,SAAS,SACT,UAAU,UACV,cAAc,cACd,eAAe,eACf,SAAS,SACT,WAAW,WACX,kBAAkB,kBAClB,gBAAgB,kBAzBN,QA4BL,IAAK,IAAL,CAAK,IAAL,CACL,YAAU,OAAV,UACA,iBAAe,OAAf,eACA,gBAAc,OAAd,gBAHU,SNpDZ,IAAM,GAAe,CAGnB,KAAM,CAAC,EACP,OAAQ,OAAO,OAAO,CAAK,EAC3B,QAAS,OAAO,OAAO,CAAY,EACnC,aAAc,EACd,SAAU,EACV,QAAS,EAET,QAAS,CACP,WAAY,GACZ,KAAM,GACN,QAAS,GACT,QAAS,GACT,uBAAwB,EAC1B,EAEA,KAAM,CACJ,OAAQ,0BACR,UAAW,8BACX,MAAO,GACP,WAAY,EACd,EAEA,aAAc,CACZ,MAAO,CACL,gBAAiB,qBACjB,mBAAoB,QACpB,sBAAuB,qEACvB,QAAS,CACP,cAAe,iCACf,UAAW,EACX,YAAa,SACf,CACF,CACF,CACF,EA2BM,EAAe,eAAgC,CAAC,KAAS,IAC1D,GAEH,UAAW,CAAC,EAAK,IAAW,EAAI,CAAC,KAAO,CAAE,QAAS,IAAK,EAAE,SAAU,GAAM,CAAO,CAAE,EAAE,EACrF,OAAQ,CAAC,EAAK,IAAU,EAAI,CAAC,KAAO,CAAE,KAAM,IAAK,EAAE,MAAO,GAAM,CAAM,CAAE,EAAE,EAC1E,eAAgB,CAAC,EAAO,IACtB,EAAI,CAAC,KAAO,CAAE,aAAc,IAAK,EAAE,cAAe,GAAQ,CAAI,CAAE,EAAE,EACpE,WAAY,CAAC,EAAO,IAAQ,EAAI,CAAC,KAAO,CAAE,SAAU,IAAK,EAAE,UAAW,GAAQ,CAAI,CAAE,EAAE,EACtF,UAAW,CAAC,EAAO,IAAQ,EAAI,CAAC,KAAO,CAAE,QAAS,IAAK,EAAE,SAAU,GAAQ,CAAI,CAAE,EAAE,EACnF,qBAAsB,CAAC,EAAa,IAClC,EAAI,CAAC,KAAO,CAAE,aAAc,IAAK,EAAE,cAAe,GAAc,CAAO,CAAE,EAAE,EAC7E,UAAW,CAAC,IACV,EAAI,CAAC,KAAO,CACV,QAAS,IAAK,EAAE,WAAY,EAAO,OAAQ,EAC3C,KAAM,IAAK,EAAE,QAAS,EAAO,IAAK,EAClC,aAAc,IAAK,EAAE,gBAAiB,EAAO,YAAa,EAC1D,aAAc,IAAK,EAAE,gBAAiB,EAAO,YAAa,EAC1D,SAAU,IAAK,EAAE,YAAa,EAAO,QAAS,EAC9C,QAAS,IAAK,EAAE,WAAY,EAAO,OAAQ,EAC3C,OAAQ,EAAE,OAAO,OAAO,EAAO,QAAU,CAAC,CAAC,EAC3C,QAAS,EAAE,QAAQ,OAAO,EAAO,SAAW,CAAC,CAAC,CAChD,EAAE,CACN,EAAE,EAEW,EAAW,CACtB,SAAU,EAAa,SACvB,IAAK,CAA0B,IAAW,EAAa,SAAS,EAAE,GAClE,IAAK,CAA0B,IAAc,EAAa,SAAS,EAAE,UAAU,CAAM,EAErF,UAAW,CAAqC,EAAQ,IACtD,EAAa,SAAS,EAAE,UAAU,EAAK,CAAM,EAC/C,OAAQ,CAAkC,EAAQ,IAChD,EAAa,SAAS,EAAE,OAAO,EAAK,CAAK,EAC3C,eAAgB,CAA0C,EAAU,IAClE,EAAa,SAAS,EAAE,eAAe,EAAO,CAAG,EACnD,WAAY,CAAsC,EAAU,IAC1D,EAAa,SAAS,EAAE,WAAW,EAAO,CAAG,EAC/C,UAAW,CAAqC,EAAU,IACxD,EAAa,SAAS,EAAE,UAAU,EAAO,CAAG,EAC9C,qBAAsB,CACpB,EACA,IACG,EAAa,SAAS,EAAE,qBAAqB,EAAa,CAAM,CACvE,EOxHO,IAAM,EAAgB,CAC3B,IAAK,GAAgB,KAAK,EAC1B,KAAM,GAAgB,MAAM,EAC5B,OAAQ,CAAC,KAA4B,CACnC,IAAK,GAAgB,MAAO,CAAa,EACzC,KAAM,GAAgB,OAAQ,CAAa,EAC3C,OAAQ,CAAC,IAAwB,EAAc,OAAO,IAAK,KAAkB,CAAW,CAAC,CAC3F,EACF,EAEA,SAAS,EAAe,CAAC,EAAwB,EAAyB,CAAC,EAAG,CAC5E,MAAO,OAAU,EAAa,EAAmB,CAAC,IAAkB,CAClE,IAAQ,eAAc,OAAM,OAAM,QAAS,GAAmB,IAAK,KAAkB,CAAQ,GACrF,WAAY,EAAS,IAAI,SAAS,EAEpC,EAAS,GAAQ,EAAI,SAAS,OAAO,EACrC,EAAa,EAAS,KAAK,UAAU,CAAI,EAAI,EAC7C,EAAc,IAAI,IAAI,CAAG,EAE/B,GAAI,EACF,EAAY,OAAS,IAAI,gBAAgB,CAAY,EAAE,SAAS,EAGlE,IAAM,EAAU,IACX,KACC,EAAS,CAAE,eAAgB,kBAAmB,EAAI,CAAC,KACnD,EAAU,CAAE,YAAa,CAAQ,EAAI,CAAC,CAC5C,EAEA,GAAI,CACF,IAAM,EAAW,MAAM,MAAM,EAAY,SAAS,EAAG,IAChD,EACH,SACA,KAAM,EACN,SACF,CAAC,EAED,IAAK,EAAS,GAAI,CAChB,IAAM,EAAU,MAAM,EAAS,KAAK,EACpC,MAAM,IAAI,MAAM,GAAG,EAAS,cAAc,EAAS,YAAY,GAAS,EAG1E,IAAM,EAAO,MAAM,EAAS,KAAK,EAEjC,OAAO,EAAQ,YAAY,CAAI,GAAK,EAAQ,kBAAkB,CAAI,GAAK,EACvE,MAAO,EAAO,CACd,OAAO,EAAQ,UAAU,CAAK,GAAK,QAAQ,MAAM,CAAK,IR7CrD,IAAM,GAAqB,CAChC,iBACA,gBACA,iBACA,gBACA,gBACA,cACF,EAEM,GAAe,gCAMrB,EAEA,eAAe,EAAmB,EAAG,QAAO,MAAuC,CAGjF,GAAI,CACF,IAAQ,UAAW,MAAM,EAAc,KACrC,EAAS,IAAI,SAAS,EAAE,GACxB,CACE,QAAS,CACP,OAAQ,MACR,eAAgB,mBAChB,gBAAiB,UACnB,EACA,KAAM,KAAK,UAAU,CACnB,GAAI,GACJ,QAAS,MACT,OAAQ,WACR,OAAQ,CAAC,CAAE,GAAI,EAAG,YAAY,EAAG,KAfb,YAeuC,EAAG,QAAQ,CACxE,CAAC,CACH,CACF,EAEA,OAAO,OAAO,SAAS,OAAO,GAAU,EAAY,EAAM,EAAE,SAAS,CAAC,EACtE,MAAO,EAAO,CAEd,OADA,QAAQ,MAAM,CAAK,EACZ,EAAY,IAIvB,eAAe,EAAoB,CAAC,EAAgB,CAClD,GAAI,UAAwB,OAAO,EAAY,IAE/C,GAAI,CACF,IAAM,EAAkB,EAAO,MAAM,GAAG,EAAE,IAAI,YAAY,GAElD,WAAY,MAAM,EAAc,KACtC,GAAG,EAAS,IAAI,SAAS,EAAE,qBAC3B,CACE,QAAS,CAAE,OAAQ,MAAO,eAAgB,kBAAmB,EAC7D,KAAM,KAAK,UAAU,CACnB,QAAS,UACT,iBAAkB,CACpB,CAAC,CACH,CACF,EAEA,OAAO,EAAQ,aAAa,MAAM,aAClC,MAAO,EAAO,CAEd,OADA,QAAQ,MAAM,CAAK,EACZ,EAAY,QAIvB,eAAe,EAAkB,EAAG,QAAO,UAA+C,CACxF,GAAI,EAAU,SAAS,CAAkB,EAAG,OAAO,EAAY,GAE/D,IAAM,EAAc,EAAO,MAAM,GAAG,EAC9B,EACJ,EAAY,SAAW,EAAI,OAAY,EAAY,EAAY,OAAS,IAAI,YAAY,EAM1F,OAJgB,MAAO,GAAS,WAAW,IAAI,EAC3C,GAAoB,CAAE,QAAO,GAAI,CAAQ,CAAC,EAC1C,EAAY,IAKX,SAAS,EAAU,EAAG,QAAO,UAA4C,CAC9E,OAAO,QAAM,CAAK,EACf,KAAK,GAAG,EAAW,CAAC,IAAU,GAAmB,CAAE,QAAO,QAAO,CAAC,CAAC,EACnE,WAAkB,IAAM,GAAqB,CAAM,CAAC,EACpD,UAAU,IAAM,EAAY,EAAM,EAMhC,SAAS,EAAW,EAAG,SAA2B,CACvD,OAAO,EAAW,KAAK,CAAE,OAAM,CAAC,EAG3B,SAAS,EAAU,EAAG,QAAO,UAA4C,CAC9E,OAAO,QAAM,CAAK,EACf,KAAK,GAAG,GAAc,IAAM,IAAW,KAAK,EAC5C,YAAsB,IAAM,IAAW,MAAM,EAC7C,WAA8B,IAAM,IAAW,KAAK,EACpD,YAAiB,IAAM,IAAW,OAAO,EACzC,YAAmB,IAAM,IAAW,MAAM,EAC1C,YAAsB,IAAM,IAAW,MAAM,EAC7C,WAAkB,IAAM,GAAG,KAAS,MAAa,EAAmB,CAAK,EAAE,UAAU,EACrF,UAAU,IAAM,IAAW,CAAK,EAG9B,IAAM,EAAqB,CAAC,IAAmC,CACpE,IAAM,EAAU,EAAY,GAsD5B,OApDwB,QAAM,EAAY,YAAY,CAAC,EACpD,KAAK,GAAG,GAAc,KAAO,CAC5B,WAAY,GAAG,EAAY,YAAY,QACvC,SACF,EAAE,EACD,YAAsB,KAAO,CAC5B,WAAY,GAAG,EAAY,YAAY,SACvC,SACF,EAAE,EACD,YAAmB,KAAO,CAAE,WAAY,GAAG,EAAY,YAAY,SAAU,SAAQ,EAAE,EACvF,YAAiB,KAAO,CACvB,WAAY,GAAG,EAAY,YAAY,UACvC,QAAS,EACX,EAAE,EACD,WAA8B,KAAO,CACpC,WAAY,GAAG,EAAY,YAAY,QACvC,SACF,EAAE,EACD,YAAsB,KAAO,CAC5B,WAAY,GAAG,EAAY,YAAY,SACvC,SACF,EAAE,EACD,KACC,GAAG,mCAMH,KAAO,CAAE,WAAY,GAAG,EAAY,YAAY,KAAK,EAAY,YAAY,IAAK,SAAQ,EAC5F,EACC,WAAkB,UAAW,KAAO,CACnC,WAAY,8EACZ,SACF,EAAE,EACD,KAAK,WAAY,KAAO,CAAE,WAAY,EAAY,YAAY,EAAG,QAAS,CAAE,EAAE,EAC9E,KAAK,WAAY,KAAO,CACvB,WAAY,sDACZ,QAAS,EAAY,GACvB,EAAE,EACD,KAAK,WAAY,KAAO,CACvB,WAAY,sDACZ,QAAS,EAAY,GACvB,EAAE,EACD,KAAK,YAAa,KAAO,CACxB,WAAY,uDACZ,QAAS,EAAY,GACvB,EAAE,EACD,KAAK,YAAa,KAAO,CAAE,WAAY,EAAY,YAAY,EAAG,QAAS,CAAE,EAAE,EAE/E,UAAU,KAAO,CAAE,WAAY,EAAa,SAAQ,EAAE,GAKpD,SAAS,EAAY,EAAG,QAAO,UAA4C,CAChF,GAAI,EAAO,SAAS,GAAG,EAAG,MAAO,QACjC,GAAI,EAAO,SAAS,GAAG,EAAG,MAAO,QAcjC,OAZiB,QAAM,CAAK,EACzB,WAEC,IAAM,WAA0B,GAAG,KAAS,MAAa,EAAmB,CAAK,EAAE,UACrF,EACC,uBAAiD,IAAM,SAAyB,EAChF,YAAmB,IAAM,IAAW,MAAM,EAC1C,WAA8B,IAAM,IAAW,KAAK,EACpD,YAAiB,IAAM,IAAW,OAAO,EACzC,YAAsB,IAAM,IAAW,MAAM,EAC7C,UAAU,IAAM,IAAW,CAAK,EAEjB,SAAW,EAGxB,IAAM,GAAkB,CAAC,IAAwB,CACtD,IAAO,KAAU,GAAe,EAAY,MAAM,GAAG,EAC/C,EAAQ,EAAY,SAAS,GAAG,EAChC,EAAS,EAAY,KAAK,GAAG,EAC7B,EAAc,GAAQ,MAAM,GAAG,EAC/B,EAAS,GAAa,OACxB,EAAY,SAAW,EACrB,EAAY,GACZ,EAAY,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EACnC,OAEJ,MAAO,CAAE,QAAO,SAAQ,SAAQ,OAAM,GAGxC,eAAsB,EAAW,CAC/B,EAGA,CACA,IAAQ,cAAe,KAAa,mCAEpC,QAAW,KAAa,OAAO,OAAO,CAAU,EAC9C,QAAa,aAAY,MAAO,KAAe,KAAU,EAAU,OAAQ,CACzE,GAAI,eAAgB,GAAU,IAAe,EAAO,WAClD,OAAO,EAGT,GACE,YAAa,GACb,UAAW,GACX,IAAe,EAAO,OACtB,EAAK,QAAQ,YAAY,IAAM,EAAO,SAAS,YAAY,EAE3D,OAAO,EAIb,OS7OF,IAAM,GAAa,CAIjB,iDAAkD,MAClD,kBAAmB,MACnB,4BAA6B,MAC7B,6CAA8C,MAC9C,sBAAuB,MACvB,2BAA4B,MAC5B,kCAAmC,MACnC,gCAAiC,MACjC,kCAAmC,MACnC,kBAAmB,MAInB,iCAAkC,MAClC,+BAAgC,MAChC,oCAAqC,MACrC,wCAAyC,MACzC,mCAAoC,MACpC,iCAAkC,MAClC,iCAAkC,MAClC,gCAAiC,MACjC,8BAA+B,MAC/B,kCAAmC,MACnC,mCAAoC,MACpC,+BAAgC,MAChC,uCAAwC,MACxC,8BAA+B,MAI/B,yBAA0B,MAC1B,6BAA8B,MAC9B,+BAAgC,MAChC,6BAA8B,MAC9B,sCAAuC,MACvC,iCAAkC,MAClC,4BAA6B,MAC7B,mCAAoC,MAIpC,+BAAgC,MAChC,6CAA8C,MAC9C,8CAA+C,MAC/C,iDAAkD,MAClD,8CAA+C,MAC/C,4CAA6C,MAC7C,0CAA2C,MAC3C,2CAA4C,MAC5C,gCAAiC,MACjC,uCAAwC,MACxC,kDAAmD,MACnD,mCAAoC,MACpC,wCAAyC,MACzC,sCAAuC,MACvC,+BAAgC,MAChC,wBAAyB,MACzB,2CAA4C,MAI5C,mCAAoC,MACpC,uBAAwB,MACxB,2BAA4B,MAC5B,sBAAuB,MACvB,0BAA2B,MAC3B,uCAAwC,MACxC,+BAAgC,MAChC,iCAAkC,MAClC,gCAAiC,MACjC,+BAAgC,MAChC,4BAA6B,MAC7B,yBAA0B,MAC1B,sBAAuB,MACvB,wCAAyC,MACzC,0CAA2C,MAC3C,8BAA+B,MAC/B,8CAA+C,MAC/C,gDAAiD,MACjD,6CAA8C,MAC9C,yCAA0C,MAC1C,4CAA6C,MAC7C,oCAAqC,MACrC,4BAA6B,MAC7B,0BAA2B,MAC3B,0BAA2B,MAC3B,uBAAwB,MACxB,gCAAiC,MACjC,yBAA0B,MAC1B,iCAAkC,MAClC,6CAA8C,MAC9C,2CAA4C,MAC5C,yBAA0B,MAC1B,qCAAsC,MACtC,iCAAkC,MAClC,oCAAqC,MACrC,wBAAyB,MACzB,qCAAsC,MAItC,wBAAyB,MACzB,wBAAyB,MACzB,gCAAiC,MACjC,iCAAkC,MAClC,0BAA2B,MAC3B,0BAA2B,MAC3B,0BAA2B,MAC3B,0CAA2C,MAC3C,sCAAuC,MAIvC,uBAAwB,MACxB,yBAA0B,MAC1B,iCAAkC,MAClC,gCAAiC,MACjC,+BAAgC,MAChC,gCAAiC,MACjC,0CAA2C,MAI3C,wBAAyB,MACzB,oBAAqB,MACrB,+BAAgC,MAIhC,kCAAmC,MACnC,iCAAkC,MAClC,0CAA2C,MAC3C,iDAAkD,MAClD,4BAA6B,MAC7B,sBAAuB,MACvB,8BAA+B,MAC/B,4BAA6B,MAC7B,gCAAiC,MACjC,wBAAyB,MACzB,yBAA0B,MAC1B,0BAA2B,MAC3B,sCAAuC,MACvC,4CAA6C,MAC7C,uCAAwC,MACxC,sCAAuC,MACvC,iCAAkC,MAClC,yBAA0B,MAC1B,qCAAsC,MACtC,kCAAmC,MACnC,gCAAiC,MACjC,mCAAoC,MACpC,+BAAgC,MAChC,iCAAkC,MAIlC,0CAA2C,MAC3C,gCAAiC,MACjC,2BAA4B,MAC5B,0BAA2B,MAC3B,iCAAkC,MAClC,0BAA2B,MAC3B,iCAAkC,MAClC,2BAA4B,MAI5B,gBAAiB,KACnB,EAIO,MAAM,UAAqB,KAAM,OAC/B,WAAY,GAEnB,WAAW,CACT,EACA,EACA,CACA,IAAM,EAAgB,OAAO,IAAoB,SAC3C,EAAW,EAAgB,EAAkB,EAAgB,SAC7D,EAAU,GAAG,IAAW,EAAgB,GAAK,KAAK,KAAK,UAAU,EAAgB,IAAI,MAE3F,GAAI,EACF,QAAQ,MAAM,CAAiB,EAGjC,QAAQ,MAAM,EAAU,CAAE,KAAM,EAAa,UAAU,GAAW,SAAQ,CAAC,EAE3E,MAAM,CAAQ,EACd,OAAO,eAAe,KAAM,EAAa,SAAS,EAEtD,CC7LO,SAAS,EAAe,CAAC,EAAuB,CACrD,GAAI,EAAgB,EAClB,MAAM,IAAI,EAAa,CACrB,SAAU,kCACV,KAAM,CAAE,eAAc,CACxB,CAAC,EACH,MAAO,IAAK,EAKP,SAAS,EAAe,CAAC,EAAuB,CACrD,GAAI,EAAgB,EAClB,MAAM,IAAI,EAAa,CACrB,SAAU,kCACV,KAAM,CAAE,eAAc,CACxB,CAAC,EAEH,OAAO,KAAK,OAAO,GAAK,EAAgB,QAAU,WAAI,EAAI,YAGrD,SAAS,EAAgB,CAAC,EAAa,EAAsB,CAClE,GAAI,CACF,OAAO,EAAG,EACV,MAAO,EAAO,CACd,GAAI,EACF,MAAM,IAAI,EAAa,EAAU,CAAK,EAGxC,OAAO,QAAQ,MAAM,CAAK,GAIvB,SAAS,EAAmC,CAAC,EAAU,CAC5D,OAAQ,cAEJ,MAAO,GAAG,oBAGV,MAAO,GAAG,mBAGV,MAAO,GAAG,YAGV,MAAO,GAAG,KAAS,KAIzB,IAAM,GAAW,IAAI,IACd,SAAS,CAAQ,CAAC,EAAoB,EAAiB,CAC5D,GAAI,EAAW,CACb,GAAI,GAAS,IAAI,CAAO,EACtB,OAGF,GAAS,IAAI,CAAO,EACpB,QAAQ,KAAK,CAAO,GAIxB,eAAsB,EAAiB,CAAC,gBAAsC,CAC5E,IAAK,uCAA+C,sBAAsB,EAAE,SAAS,CAAO,EAC1F,OAAO,EAGT,GAAI,CACF,IAAM,EACJ,EAAS,IAAI,SAAS,EACpB,0CAMJ,OAHiB,MAAM,EAAc,IACnC,GAAG,UACL,GACgB,OAAO,UAAU,QACjC,MAAO,EAAQ,CACf,OAAO,GCpFW,IAAtB,yBAsBM,GAAe,CACnB,UACA,SACA,YACA,UACA,YACA,UACA,YACA,cACA,WACA,YACA,YACA,YACA,UACA,WACF,EAEA,eAAsB,EAAyC,CAAC,EAAiB,CAC/E,IAAM,EAAc,GAAe,GAC7B,EAAQ,CAAC,EAEf,QAAW,KAAQ,EAAa,CAC9B,IAAM,EAAY,MAAM,GAAc,CAAI,EAG1C,EAAM,GAAQ,EAGhB,OAAO,EAGT,eAAe,EAAsC,CAAC,EAAqC,CACzF,IAAQ,QAAS,MAAM,SAAM,CAAyB,EACnD,KAAK,UAAW,IAAa,6BAA6B,EAC1D,KAAK,SAAU,IAAa,6BAA4B,EACxD,KAAK,YAAa,IAAa,6BAA4B,EAC3D,KAAK,UAAW,IAAa,6BAA0B,EACvD,KAAK,YAAa,IAAa,6BAA4B,EAC3D,KAAK,UAAW,IAAa,6BAA0B,EACvD,KAAK,YAAa,IAAa,6BAA+B,EAC9D,KAAK,cAAe,IAAa,6BAA8B,EAC/D,KAAK,WAAY,IAAa,6BAA8B,EAC5D,KAAK,YAAa,IAAa,6BAA+B,EAC9D,KAAK,YAAa,IAAa,6BAA4B,EAC3D,KAAK,YAAa,IAAa,6BAA+B,EAC9D,KAAK,UAAW,IAAa,6BAA6B,EAC1D,KAAK,YAAa,IAAa,6BAA6B,EAC5D,WAAW,EAEd,OAAO,EClET,IAAM,GAAkB,CAAC,QAAS,GAAG,EAAS,IAAI,QAAQ,CAAC,EAEpD,SAAS,EAAkB,CAAC,EAAa,GAAI,CAClD,IAAM,EAAuB,EAAW,YAAY,GAE7C,GAAS,EAAqB,MAAM,GAAG,EAC9C,GAAI,GAAgB,SAAS,CAAK,EAAG,MAAO,GAE5C,IAAO,GAAc,EAAqB,MAAM,GAAG,EACnD,GAAI,GAAgB,SAAS,CAAU,EAAG,MAAO,GAEjD,MAAM,IAAI,EAAa,CACrB,SAAU,6BACV,KAAM,CACJ,QAAS,uBAAuB,6EAChC,YACF,CACF,CAAC,EAGI,SAAS,EAAW,CAAC,EAAc,CACxC,GAAI,EAAK,OAAS,GAAI,MAAO,GAE7B,IAAM,EAAQ,qBAEd,QAAS,EAAK,MAAM,CAAK,EChB3B,IAAM,EAAkB,EAClB,EAAe,CAAC,IAAoB,KAAO,OAAO,CAAO,EACzD,EAAwB,CAAC,IAC7B,KAAK,MAAM,OAAO,WAAW,EAAW,SAAS,CAAC,CAAC,EAE9C,SAAS,CAAuB,EACrC,QACA,gBAAgB,EAChB,UAAU,GAKT,CACD,GAAI,IAAY,EAAG,OAAO,EAAM,SAAS,EACzC,IAAM,EAAa,EAAQ,GACvB,EAAc,EAAM,SAAS,EAAE,UAAU,EAAa,EAAI,CAAC,EAEzD,EAAY,GAAW,EAAY,OAAS,GAElD,GAAI,EAAY,EACd,EAAc,IAAI,OAAO,CAAS,EAAI,EAGxC,IAAM,EAAe,EAAY,OAAS,EACtC,EAAgB,EAAY,OAAO,CAAO,EAG9C,GAAI,OAAO,SAAS,EAAc,IAAkB,GAAG,GAAK,EAE1D,EAAgB,GAAG,EAAc,UAAU,EAAG,EAAgB,CAAC,KAAK,OAAO,SAAS,EAAc,EAAgB,IAAM,GAAG,EAAI,GAAG,SAAS,IAG3I,OAAgB,EAAc,UAAU,EAAG,CAAa,EAG1D,MAAO,GAAG,EAAa,IAAM,KAAK,EAAY,MAAM,EAAG,CAAY,KAAK,IAAgB,QACtF,SACA,EACF,EAGK,MAAM,CAAkB,CAC7B,kBAA4B,KAAO,GACnC,YAAc,GACd,cAEO,WAAU,CAAC,EAAe,EAAkB,CACjD,OAAO,IAAI,EAAkB,CAC3B,UACA,MAAO,EAAwB,CAAE,QAAO,cAAe,EAAS,SAAQ,CAAC,CAC3E,CAAC,QAGI,cAAa,EAClB,QACA,OACA,MAKC,CACD,OAAO,EAAkB,WACtB,EAAM,aAAa,QAAQ,EAAI,EAAa,CAAE,EAAK,EAAa,CAAI,EACrE,CACF,EAGF,WAAW,CAAC,EAAwB,CAClC,IAAM,EAAQ,GAAe,CAAM,EAC7B,EAAY,OAAO,IAAW,SACpC,KAAK,QAAU,EAAY,EAAO,QAAU,OAG5C,KAAK,kBACH,GAAa,sBAAuB,EAChC,EAAO,kBACP,EAAa,KAAK,IAAI,GAAiB,GAAY,CAAK,CAAC,EAAG,KAAK,SAAW,CAAC,CAAC,EACpF,KAAK,GAAU,CAAK,EAGtB,GAAG,CAAC,EAA6B,CAE/B,OAAO,IAAI,KAAK,YAAY,CAC1B,QAAS,KAAK,QACd,QAEA,WAAY,KAAK,SAAS,CAAE,qBAAsB,EAAK,CAAC,CAC1D,CAAC,EAEH,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAEzC,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAEzC,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAEzC,GAAG,IAAI,EAAiC,CACtC,OAAO,KAAK,GAAa,MAAO,GAAG,CAAI,EAEzC,EAAE,CAAC,EAAgC,CACjC,OAAO,KAAK,GAAY,KAAM,CAAK,EAErC,GAAG,CAAC,EAAgC,CAClC,OAAO,KAAK,GAAY,MAAO,CAAK,EAEtC,EAAE,CAAC,EAAgC,CACjC,OAAO,KAAK,GAAY,KAAM,CAAK,EAErC,GAAG,CAAC,EAAgC,CAClC,OAAO,KAAK,GAAY,MAAO,CAAK,EAEtC,OAAO,CAAC,EAAgC,CACtC,OAAO,KAAK,GAAY,UAAW,CAAK,EAG1C,QAAsC,CAAC,EAAS,EAA2C,CACzF,IAAM,EAAQ,KAAK,wBACjB,KAAK,YACL,GAAW,KAAK,SAAW,EAAsB,KAAK,iBAAiB,CACzE,EAEA,OAAQ,OACD,SACH,OAAO,OAAO,CAAK,MAChB,SACH,OAAO,MACJ,SACH,OAAS,KAAK,YAAc,KAAO,OAAO,KAAK,SAAW,EAAE,EAC1D,KAAK,0BAEP,OAAO,GAIb,YAA0C,CAAC,EAAS,EAA2C,CAC7F,IAAM,EACJ,KAAK,kBAAoB,EAAa,GAAW,KAAK,SAAW,EAAY,IAAI,EAC7E,EAAY,KAAK,YAAc,EAErC,OAAQ,OACD,SACH,OAAO,OAAO,CAAS,MACpB,SACH,OAAO,EAAU,SAAS,MACvB,SACH,OAAO,UAEP,OAAO,GAIb,cAAc,CAAC,EAAgC,EAAkB,CAC/D,IAAK,GAAW,OAAO,IAAU,SAAU,OAAO,EAAM,YAExD,IAAM,EAAc,GAAe,CAAK,EAClC,EAAY,GAAY,CAAW,EAEzC,GAAI,IAAc,KAAO,IAAc,YAAa,OAAO,GAC3D,OAAO,KAAK,GAAU,EAAW,CAAO,EAG1C,aAAa,CAAC,EAAoB,EAAG,CACnC,IAAO,EAAK,GAAO,KAAK,SAAS,QAAQ,EAAE,MAAM,GAAG,EAC9C,EAAU,GAAO,GACjB,EAAU,GAAO,GAGvB,IAFoB,OAAO,SAAS,CAAO,EAAI,EAAQ,OAAS,EAAQ,OAAS,EAAQ,SAEtE,EACjB,OAAO,KAAK,SAAS,QAAQ,EAG/B,GAAI,EAAQ,QAAU,EACpB,OAAO,EAAQ,MAAM,EAAG,CAAiB,EAAE,OAAO,EAAQ,OAAQ,GAAG,EAGvE,GAAI,OAAO,SAAS,CAAO,EACzB,MAAO,GAAG,KAAW,EAAQ,MAAM,EAAG,EAAoB,EAAQ,MAAM,IAAI,OAC1E,EAAoB,EAAQ,OAC5B,GACF,EAGF,IAAM,EAAiB,OAAO,SAAS,CAAO,EACxC,EAAgB,GAAG,IAAiB,MAAM,EAAG,CAAiB,EAEpE,MAAO,KAAK,EAAc,SACxB,EAAQ,OAAS,GAAG,IAAiB,OAAS,EAAc,OAC5D,GACF,IAGF,OAAO,CAAC,EAAc,EAAG,CACvB,IAAO,EAAK,GAAO,KAAK,SAAS,QAAQ,EAAE,MAAM,GAAG,EAC9C,EAAU,GAAO,GACjB,EAAU,GAAO,GAEvB,GAAI,OAAO,SAAS,CAAO,EACzB,MAAO,GAAG,KAAW,EAAQ,MAAM,EAAG,CAAW,IAAI,OAAO,EAAa,GAAG,EAG9E,IAAM,EAAiB,OAAO,SAAS,CAAO,EACxC,EAAgB,GAAG,IAAiB,MAAM,EAAG,CAAW,EAE9D,MAAO,KAAK,EAAc,SACxB,EAAQ,OAAS,GAAG,IAAiB,OAAS,EAAc,OAC5D,GACF,IAGF,cAAc,CAAC,EAAS,EAAG,CACzB,IAAM,EAAQ,KAAK,SAAS,QAAQ,EAC9B,EAAgB,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,GAAG,EACvD,EAAO,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,CAAK,CAAC,EAAI,CAAC,EACjD,EAAS,EAAc,GAE7B,IAAK,EAAQ,OAAO,KAAK,SAAS,QAAQ,EAE1C,IAAM,EAAQ,KAAO,EAAO,GAG5B,MAAO,IAFQ,EAAQ,GAEN,QAAQ,CAAM,IAAI,IAGrC,UAAU,CACR,EAAW,KAET,mBAAmB,QACnB,UAAU,EACV,mBAAmB,IACnB,oBAAoB,KAClB,CAAC,EACL,CACA,IAAM,EAAQ,KAAK,SAAS,QAAQ,GAC7B,EAAM,GAAI,EAAM,IAAM,EAAM,QAAQ,CAAC,EAAE,MAAM,GAAG,EACjD,EAAU,EAAI,QAAQ,wBAAyB,CAAiB,EAEhE,EACJ,GAAO,EACH,IAAQ,IACN,GAAG,OAAO,WAAW,KAAK,GAAK,IAAI,QAAQ,IAAK,CAAgB,EAChE,GAAG,IAAU,OAAO,SAAS,CAAG,EAAI,GAAG,IAAmB,EAAI,MAAM,EAAG,CAAO,IAAM,KACtF,OAEN,MAAO,GAAG,IAAqB,QAAU,EAAW,KAAK,IACvD,IAAqB,MAAQ,EAAW,KAI5C,uBAAuB,CAAC,EAAe,EAAkB,CACvD,IAAM,EAAgB,GAAW,KAAK,SAAW,EAC3C,EAA4B,KAAK,IACrC,EACA,EAAsB,KAAK,iBAAiB,CAC9C,EACM,EAAa,EAAQ,GAErB,EAAc,EAAM,SAAS,EAAE,UAAU,EAAa,EAAI,CAAC,EAC3D,EAAY,GAA6B,EAAY,OAAS,GAE9D,EAAoB,EAAY,EAAI,IAAI,OAAO,CAAS,EAAI,EAAc,EAE1E,EAAe,EAAkB,OAAS,EAC5C,EAAgB,EAAkB,OAAO,CAAyB,EAGtE,GAAI,OAAO,SAAS,EAAc,IAAkB,GAAG,GAAK,EAE1D,EAAgB,GAAG,EAAc,UAAU,EAAG,EAAgB,CAAC,KAAK,OAAO,SAAS,EAAc,EAAgB,IAAM,GAAG,EAAI,GAAG,SAAS,IAG3I,OAAgB,EAAc,UAAU,EAAG,CAAa,EAG1D,MAAO,GAAG,EAAa,IAAM,KAAK,EAAkB,MAClD,EACA,CACF,KAAK,IAAgB,QAAQ,SAAU,EAAE,EAG3C,EAAY,CAAC,KAA0C,EAAuC,CAC5F,IAAM,EAAmB,KAAK,GAA0B,KAAM,GAAG,CAAI,EAC/D,EAAU,KAAK,IAAI,EAAkB,EAAsB,KAAK,iBAAiB,CAAC,EAClF,EAA6B,EAAa,CAAO,EAEjD,EAAS,EAAK,OAClB,CAAC,EAAa,IAAQ,CACpB,IAAM,EAAQ,KAAK,eAAe,EAAK,CAAO,EAE9C,OAAQ,OACD,MACH,OAAO,EAAM,MACV,MACH,OAAO,EAAM,MASV,MACH,OAAQ,EAAM,EAAS,MACpB,MAAO,CACV,GAAI,IAAU,GAAI,MAAM,IAAI,WAAW,kBAAkB,EACzD,OAAQ,EAAM,EAA8B,CAC9C,SAEE,OAAO,IAIZ,KAAK,YAAc,EAA8B,KAAK,iBACzD,EAEM,EAAQ,EAAwB,CACpC,cAAe,EACf,UACA,MAAO,CACT,CAAC,EAGD,OAAO,IAAI,KAAK,YAAY,CAC1B,kBAAmB,EAAa,CAAO,EACvC,QAAS,KAAK,QACd,QACA,WAAY,KAAK,SAAS,CAC5B,CAAC,EAGH,EAAW,CAAC,KAAoD,EAAiC,CAC/F,IAAM,EAAU,KAAK,GAA0B,KAAM,GAAG,CAAI,EACtD,EAAQ,KAAK,eAAe,EAAK,IAAM,IAAK,CAAO,EACnD,EAAiB,KAAK,eAAe,KAAM,CAAO,EAExD,OAAQ,OACD,KACH,OAAO,EAAiB,MACrB,MACH,OAAO,GAAkB,MACtB,KACH,OAAO,EAAiB,MACrB,MACH,OAAO,GAAkB,MACtB,UACH,OAAO,IAAmB,UAE1B,MAAO,IAIb,EAAS,CAAC,EAAgC,CACxC,IAAM,EAAY,GAAY,CAAK,GAAK,IACxC,KAAK,YAAc,KAAK,GAAU,CAAS,EAG7C,EAAyB,IAAI,EAAiC,CAC5D,IAAM,EAAW,EACd,IAAI,CAAC,IAAQ,CAMZ,OALiB,OAAO,IAAQ,SAE5B,EAAI,SAAW,EAAsB,EAAI,iBAAiB,EAC1D,GAAiB,GAAY,CAAG,CAAC,EAGtC,EACA,OAAO,OAAO,EAEjB,OAAO,KAAK,IAAI,GAAG,EAAU,CAAe,EAG9C,EAAS,CAAC,EAAe,EAAkB,CACzC,IAAM,EAAa,EAAU,EAAa,CAAO,EAAI,KAAK,kBACpD,EAAa,EAAsB,CAAU,GAC5C,EAAc,GAAI,EAAc,IAAM,EAAM,MAAM,GAAG,EAE5D,OAAO,OAAO,GAAG,IAAc,EAAY,OAAO,EAAY,GAAG,GAAG,EAExE,CAEA,IAAM,GAAkB,KAAK,aAAa,WAAY,CACpD,YAAa,GACb,sBAAuB,EACzB,CAAC,EAED,SAAS,EAAW,CAAC,EAAgC,CAGnD,IAAM,EAAa,GADjB,OAAO,IAAU,SAAW,GAAgB,OAAO,CAAK,EAAI,GAAe,CAAK,IAC9C,WAAW,IAAK,GAAG,EAAE,MAAM,GAAG,EAElE,OAAO,EAAW,OAAS,EACvB,GAAG,EAAW,MAAM,EAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAW,GAAG,EAAE,IACvD,EAAW,IAAM,IAGvB,SAAS,EAAgB,CAAC,EAAe,CACvC,IAAM,EAAW,EAAM,MAAM,GAAG,EAAE,IAAI,QAAU,EAChD,OAAO,KAAK,IAAI,EAAU,CAAe,EAG3C,SAAS,EAAc,CAAC,EAAuB,CAC7C,OAAO,OAAO,IAAU,SACpB,aAAc,EACZ,EAAM,SAAS,QAAQ,EACvB,EAAM,MACR,ECpZN,IAAM,EAAkB,IAAI,IAmBrB,MAAM,UAAmB,CAAkB,CAChD,QACA,MACA,WAAa,GACb,YAAc,GACd,aAAe,GACf,OACA,IACA,OACA,KACA,QAEA,WAAW,EACT,QACA,UACA,MACA,QACA,SACA,cAIC,CACD,MAAM,OAAO,IAAU,SAAW,EAAQ,CAAE,UAAS,OAAM,CAAC,EAE5D,IAAM,EAAY,GAAa,GAAc,GAAG,KAAS,GAAQ,EAEjE,KAAK,KAAO,GAAa,CAAS,EAClC,KAAK,IAAM,EACX,KAAK,MAAQ,EAAU,MACvB,KAAK,OAAS,EAAU,OACxB,KAAK,OAAS,EAAU,OACxB,KAAK,QAAU,EAAU,QACzB,KAAK,YAAc,EAAU,YAC7B,KAAK,aAAe,EAAU,aAC9B,KAAK,WAAa,EAAU,WAC5B,KAAK,QAAU,GAAe,EAAU,OAG1C,QAAQ,EAAG,wBAA6D,CAAC,EAAG,CAC1E,OAAQ,KAAK,aAAe,KAAK,gBAAkB,EAC/C,KAAK,OACL,GAAG,KAAK,SAAS,KAAK,SAG5B,KAAK,EAAG,CACN,OAAO,KAAK,YACR,GAAG,KAAK,SAAS,KAAK,OAAO,QAAQ,IAAK,GAAG,IAC7C,KAAK,aACH,GAAG,KAAK,SAAS,KAAK,OAAO,QAAQ,IAAK,IAAI,IAC9C,KAAK,SAAS,EAGtB,OAAO,EAAG,QAAO,UAA4C,CAC3D,OAAO,KAAK,QAAU,GAAS,KAAK,SAAW,EAGjD,EAAE,CAAC,EAAwB,CACzB,OAAO,KAAK,QAAQ,CAAU,GAAK,KAAK,QAAQ,CAAU,QAMrD,QAAO,CAAC,EAAkB,EAA0B,EAAG,CAC5D,IAAO,EAAO,EAAQ,GAAU,EAAS,MAAM,GAAG,EAClD,KAAM,GAAS,GACb,MAAM,IAAI,EAAa,CACrB,SAAU,4BACV,KAAM,CAAE,UAAS,CACnB,CAAC,EAGH,IAAM,EAAQ,YAA6B,EAAS,GAAG,KAAS,KAAU,IAAW,EAErF,OAAO,EAAW,KAAK,CAAE,QAAO,OAAM,CAAC,QAGlC,KAAkB,EACvB,QAAQ,EACR,kBACA,sBACG,GACwD,CAC3D,IAAM,EAAc,aAAiB,EAAoB,EAAM,SAAS,QAAQ,EAAI,EAC9E,EAAe,GAAe,CAAgB,GAE5C,WAAY,EAAkB,QAAS,GAAuB,EACpE,CACF,GAEQ,QAAO,cAAa,gBAAiB,GAAa,CAAgB,EACpE,EAAQ,EAAgB,IAC5B,UACK,EACA,EAAiB,YAAY,CACpC,EAEM,EAAe,GAAO,SAAW,EAEvC,IACI,GAAoB,GACtB,0DAA0D,oBAAwB,EAAY;AAAA;AAAA;AAAA,4GAIhG,EAEA,IAAQ,UAAS,aAAY,OAAQ,GAAS,CAC5C,QAAS,GAAgB,EAAY,GACrC,WAAY,CACd,EAEM,EAAiB,GAAe,EAEhC,EAAgB,EAClB,GAAU,OAAO,CAAW,EAAG,CAAe,EAC9C,GAAU,EAAa,CAAO,EAQlC,OANmB,EACf,GAAiB,EAAY,EAAkB,EAAgB,CAAW,EAC1E,EACE,GAA0B,EAAY,CAAa,EACnD,IAAI,EAAW,CAAE,MAAK,UAAS,aAAY,MAAO,CAAc,CAAC,cAK5D,iBAAgB,CAAC,EAA6B,CACzD,IAAM,EAAQ,MAAM,GAAe,CAAS,EAE5C,QAAa,YAAY,OAAO,OAAO,CAAK,EAC1C,QAAa,aAAY,WAAU,KAAU,EAAQ,CACnD,IAAM,EACJ,UAAyB,EAAa,EAAW,YAAY,EAEzD,EAAe,aAAc,EAAO,EAAK,SAAW,EAAY,GAEtE,EAAgB,IAAI,EAAU,CAAE,aAAY,QAAS,CAAa,CAAC,EAIvE,MAAO,SAGF,gBAAe,CACpB,EAOA,CACA,EAAgB,MAAM,EACtB,QAAY,EAAK,KAAU,EAAS,QAAQ,EAAG,CAC7C,IAAM,EACJ,EAAM,cAAyB,EAAM,WAAa,EAAM,WAAW,YAAY,EAE3E,EAAe,aAAc,EAAQ,EAAM,SAAW,EAAM,QAClE,EAAgB,IAAI,EAAK,IAAK,EAAO,QAAS,EAAc,WAAY,CAAS,CAAC,EAEpF,MAAO,GAEX,CAEO,SAAS,EAAmB,CAAC,EAAc,CAChD,IAAM,EAAQ,EAAW,KAAK,CAAE,OAAM,CAAC,EAEvC,OAAQ,4CAKJ,OAAO,EAAM,IAAI,UAAU,aAG3B,OAAO,EAAM,IAAI,UAAU,2CAM3B,OAAO,EAAM,IAAI,UAAU,wBAI3B,OAAO,EAAM,IAAI,CAAC,wBAIlB,OAAO,EAAM,IAAI,QAAQ,UAGzB,OAAO,EAAM,IAAI,UAAU,GAIjC,eAAe,EAAgB,CAAC,EAAoB,EAA0B,EAAG,CAC/E,GAAmB,CAAU,EAI7B,IAAM,EAFuB,EAAW,SAAS,MAAM,EAGlD,EACA,EAAW,YAAY,EAEtB,EAAc,EAAgB,IAAI,CAAkB,EACpD,EAAU,GAAa,SAAY,MAAM,GAAW,GAAa,CAAU,CAAC,EAClF,IAAK,EACH,EAAgB,IAAI,EAAoB,CAAE,aAAY,SAAQ,CAAC,EAGjE,OAAO,IAAI,EAAW,CACpB,UACA,MAAO,GAAU,EAAO,CAAO,EAC/B,YACF,CAAC,EAGH,SAAS,EAAyB,CAAC,EAAoB,EAA0B,EAAG,CAClF,IAAM,EAAQ,EAAW,SAAS,GAAG,EAChC,EAAW,MAAM,GAAG,IAAI,IAAI,YAAY,EACzC,OACE,EAAe,EAAQ,cAA4B,EAAE,SAAS,CAAK,EAAI,GAEvE,EAAiB,EAAW,MAAM,EAAG,EAAE,EAAE,SAAS,GAAG,EAAI,IAAM,KAE9D,EAAY,GAAU,EACzB,EAAW,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAc,EAC1D,EAAW,MAAM,CAAc,EAEnC,KAAM,GAAc,GAClB,MAAM,IAAI,EAAa,CACrB,SAAU,mCACV,KAAM,CAAE,YAAW,CACrB,CAAC,EAGH,OAAO,IAAI,EAAW,CACpB,QAAS,EACT,MAAO,GAAU,EAAO,CAAC,EACzB,WAAY,GAAG,aAA4B,IAAa,IAAiB,GAC3E,CAAC,EAGH,SAAS,EAAS,CAAC,EAAyB,EAAiB,CAC3D,OAAO,OAAO,IAAU,SACpB,EAAwB,CAAE,QAAO,cAAe,EAAS,SAAQ,CAAC,EAClE,EAGN,SAAS,EAAc,CAAC,EAA+B,CACrD,GAAI,UAAW,EAAc,OAAO,EAAa,MAEjD,IAAQ,QAAO,UAAW,GAAgB,EAAa,KAAK,EAG5D,OAFsB,GAAa,CAAE,QAAO,QAAO,CAAC,IAAM,SAEnC,EAAQ,EAAa,MAG9C,SAAS,EAAY,CAAC,EAAoB,CACxC,IAAM,EAAkB,EAAW,MAAM,EAAG,EAAE,EACxC,EAAkB,EAAW,MAAM,GAAG,EACtC,EAAkB,EAAgB,IAAI,YAAY,EAClD,EAAe,cAA4B,EAAE,SAAS,CAAe,EAErE,EAAc,EAAgB,SAAS,GAAG,EAC1C,EAAe,EAAgB,SAAS,GAAG,EAC3C,EAAiB,GAAe,EAChC,EAAiB,EAAe,IAAM,KAErC,EAAY,EAAc,IAAM,EACnC,EAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAc,EACpD,EAAW,MAAM,CAAc,EAEnC,GAAI,KAAoB,GAAc,GACpC,MAAM,IAAI,EAAa,CACrB,SAAU,mCACV,KAAM,CAAE,YAAW,CACrB,CAAC,EAGH,IAAO,KAAU,IACf,EAAW,SAAS,GAAG,IAAM,EAAiB,EAAa,GAAG,KAAmB,KACjF,MAAM,GAAG,EAEL,EAAc,EAAiB,EAAc,EAAK,KAAK,GAAG,GAExD,UAAS,UAAW,GAAiB,CAAE,OAAQ,EAAa,OAAM,CAAC,EACrE,GACH,EAAiB,GAAG,IAAa,IAAmB,KACpD,EAAU,GAAG,KAAU,GAAW,KAAO,GAE5C,MAAO,CACL,UACA,QACA,iBACA,cACA,eACA,SACA,SACA,WAAY,GAAW,CAAE,QAAO,OAAQ,CAAY,CAAC,CACvD,EAGF,SAAS,EAAgB,EAAG,SAAQ,SAA2C,CAC7E,IAAM,EAAc,EAAO,MAAM,GAAG,EAC9B,EACJ,EAAY,SAAW,EAAI,OAAY,EAAY,EAAY,OAAS,GAEpE,EAAU,UAAyB,EAAqB,GAAoB,YAAY,EACxF,EACJ,EAAY,SAAW,EAAI,EAAY,GAAK,EAAY,MAAM,EAAG,EAAE,EAAE,KAAK,GAAG,EAG/E,MAAO,CAAE,UAAS,QAAO,EC9VpB,MAAM,UAAsB,CAAkB,CACnD,EAAE,CAAC,EAAyB,CAC1B,OAAO,KAAK,QAAQ,CAAK,QAGpB,WAAU,CAAC,EAAe,EAAkB,CACjD,OAAO,IAAI,EAAc,CACvB,UACA,MAAO,EAAwB,CAAE,QAAO,cAAe,EAAS,SAAQ,CAAC,CAC3E,CAAC,EAEL,CCWO,SAAS,EAAsB,EACpC,iBACA,YACA,aACqC,CACrC,IAAM,EAAI,EAAkB,CAAc,EACpC,EAAI,EAAkB,CAAS,EAC/B,EAAI,EAAkB,CAAS,EAE/B,EAAQ,EAAE,IAAI,CAAC,EACf,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EACf,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAI5B,OAFkB,EAAM,IAAI,EAAM,IAAI,CAAK,EAAE,IAAI,CAAK,CAAC,EAEtC,IAAI,CAAK,EAGrB,SAAS,EAAuB,EACrC,iBACA,YACA,cACsC,CACtC,IAAM,EAAI,EAAkB,CAAc,EACpC,EAAI,EAAkB,CAAS,EAC/B,EAAI,EAAkB,CAAU,EAEhC,EAAQ,EAAE,IAAI,CAAC,EACf,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EACtB,EAAQ,EAAE,IAAI,CAAC,EACf,EAAY,EAAM,IAAI,EAAM,IAAI,CAAK,EAAE,IAAI,CAAK,CAAC,EACjD,EAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAE5B,OAAO,EAAU,IAAI,CAAK,EAGrB,SAAS,EAA+B,EAC7C,UACA,YACA,iBACA,aACsD,CACtD,OAAO,GAAuB,CAAE,YAAW,iBAAgB,WAAU,CAAC,EAAE,IAAI,CAAO,EAG9E,SAAS,EAAgC,EAC9C,UACA,aACA,iBACA,aACuD,CACvD,OAAO,GAAwB,CAAE,aAAY,iBAAgB,WAAU,CAAC,EAAE,IAAI,CAAO,EAGvF,SAAS,CAAiB,CAAC,EAAe,CACxC,OAAO,EAAc,WAAW,OAAO,CAAK,EAAG,EAAY,IAAI,EAG1D,SAAS,EAAqB,EACnC,iBACA,YACA,YACA,cAIE,CACF,MAAO,CACL,YAAa,EAAkB,CAAU,EAAE,IAAI,CAAc,EAAE,IAAI,CAAS,EAC5E,WAAY,EAAkB,CAAS,EAAE,IAAI,CAAc,EAAE,IAAI,CAAS,CAC5E,EAGK,SAAS,EAAoB,EAClC,iBACA,YACA,YACA,aACA,WAKE,CACF,OAAO,OAAO,YACZ,OAAO,QAAQ,GAAsB,CAAE,iBAAgB,YAAW,YAAW,YAAW,CAAC,CAAC,EAAE,IAC1F,EAAE,EAAM,KAAW,CAAC,EAAM,EAAM,IAAI,CAAO,CAAC,CAC9C,CACF,EAGK,SAAS,EAAqB,EACnC,YACA,YACA,aACA,iBACA,aACA,eAME,CACF,IAAM,EAAI,IAAI,EAAc,CAAE,MAAO,EAAW,QAAS,CAAE,CAAC,EACtD,EAAI,IAAI,EAAc,CAAE,MAAO,EAAY,QAAS,CAAE,CAAC,EACvD,EAAI,IAAI,EAAc,CAAE,MAAO,EAAW,QAAS,CAAE,CAAC,EACtD,EAAgB,IAAI,EAAc,CAAE,MAAO,EAAY,QAAS,CAAE,CAAC,EACnE,EAAiB,IAAI,EAAc,CAAE,MAAO,EAAa,QAAS,CAAE,CAAC,EAGrE,EAAK,EAAc,IAAI,CAAC,EACxB,EAAK,EAAe,IAAI,CAAC,EACzB,EAAK,EAAc,IAAI,CAAc,EACrC,EAAK,EAAE,IAAI,CAAC,EACZ,EAAY,EAAE,IAAI,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAC3C,EAAc,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,EACtC,EAAyB,EAAU,IAAI,CAAW,EAClD,EAA0B,EAAkB,CAAc,EAAE,IAAI,CAAsB,EAE5F,GAAI,EAAuB,aAAa,QAAQ,IAAM,EACpD,OAAO,EAAwB,IAAI,CAAC,EAAE,aAAa,QAAQ,EAI7D,IAAM,EAAe,EAAE,IAAI,CAAuB,EAElD,OAAO,EAAwB,IAAI,CAAY,EAAE,aAAa,QAAQ,EAGjE,SAAS,EAAoB,EAClC,aACA,cACA,YACA,cACa,CACb,GAAI,IAAe,KAAO,IAAgB,KAAO,IAAc,KAAO,IAAe,IACnF,MAAO,GAET,IAAM,EAAI,EAAkB,CAAS,EAC/B,EAAI,EAAkB,CAAU,EAChC,EAAiB,EAAkB,CAAW,EAC9C,EAAgB,EAAkB,CAAU,EAE5C,EAAY,EAAe,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAa,CAAC,EAC1D,EAAc,EAAE,IAAI,CAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAGrD,OAAO,KAAK,IAAI,EAAU,IAAI,CAAW,EAAE,aAAa,QAAQ,CAAC,EC9K5D,SAAS,EAAsB,EAAG,OAAM,WAA8B,CAC3E,MAAO,GAAG,KAAQ,IAGb,SAAS,EAAgB,EAAG,UAAS,gBAA8B,CACxE,MAAO,eAAsB,KAAW,IAMnC,SAAS,EAAyB,CAAC,EAA+B,CACvE,OAAO,UAAwC,CAAS,EAGnD,SAAS,EAAsB,EACpC,QACA,YACG,GAC+C,CAClD,OAAO,EAAa,UAAuB,KAAS,IAAU,CAAS,EAGlE,SAAS,EAAiB,EAC/B,QACA,SACA,aACG,GAKD,CACF,IAAM,EAAiB,GAAkB,CAAE,QAAO,QAAO,CAAC,EACpD,EAAc,EAAU,IAAI,KAAa,IAE/C,OAAO,EAAa,UAAuB,IAAiB,IAAe,CAAS,EAM/E,SAAS,EAAuB,EACrC,QACA,SACA,eACwD,CACxD,MAAO,UAAwB,KAAS,KAAU,IAG7C,SAAS,EAAkB,EAChC,QACA,SACA,SACA,cACA,eACiB,CACjB,IAAM,EACJ,IAAU,OAAS,IAAW,MAAQ,GAAG,KAAU,EAAO,MAAM,EAAE,IAAM,EACpE,EAAa,EAAc,IAAI,IAAgB,GAErD,MAAO,UAAwB,KAAS,KAAmB,IAAc,IAGpE,SAAS,EAA0B,EACxC,iBACG,GACsC,CACzC,OAAO,EAAa,cAAiC,IAAe,CAAS,EAMxE,SAAS,EAAsB,EAAG,OAAM,QAAO,UAAS,SAA6B,CAC1F,IAAM,EAAW,UAA6B,KAAQ,KAAS,IACzD,EAA8B,EAAQ,IAAI,IAAU,GAE1D,MAAO,GAAG,IAAW,IAGhB,SAAS,EAAoC,EAClD,OACA,QACA,QACA,SACA,SAC+B,CAC/B,MAAO,UAA6B,KAAQ,KAAS,KAAU,KAAS,IAGnE,SAAS,EAAc,CAC5B,GAEE,QACA,UACA,eACG,GAEL,CACA,IAAM,EAAW,GAAG,KAAY,KAAS,IACnC,EAAgB,EAAY,IAAI,IAAc,GAEpD,OAAO,EAAa,GAAG,IAAW,IAAiB,CAAS,EAM9D,SAAS,CAAY,CACnB,GACE,mBAAkB,wBAA4C,CAAC,EACjE,CACA,IAAM,EAAiB,GAAG,IAAO,EAAmB,IAAI,KAAoB,GAAwB,IAAM,KAE1G,OAAO,EAAe,SAAS,GAAG,EAAI,EAAe,MAAM,EAAG,EAAE,EAAI,EAGtE,SAAS,EAAiB,EACxB,QACA,UAIC,CACD,OAAQ,kCAIJ,OAAO,EAAM,MAAM,EAAG,CAAC,EAAE,YAAY,YAErC,MAAO,YAGP,MAAO,GAAG,KAAS,KCvIlB,SAAS,EAIf,EAAG,OAAM,aAAY,WAAuD,CAC3E,SAAS,CAAM,CAAC,EAAmC,CACjD,MAAO,IAAK,EAAQ,CAAY,KAAM,CAAW,EAGnD,MAAO,EAAG,GAAO,CAAO,ECcnB,SAAS,EAAc,EAAG,CAC/B,OAAO,OAAO,OAAO,WAAa,YAG7B,SAAS,EAAU,CAAC,EAA4B,CACrD,OAAO,GAAmB,EAAE,SAAS,CAAY,EAG5C,SAAS,EAAkB,EAAG,CACnC,IAAM,EAAkB,QAAQ,WAAa,OAAO,UAAU,cAExD,EAAc,QAAQ,KAAO,QAAQ,UAAU,QAC/C,EAAe,QAAQ,UAAU,cACjC,EAAe,QAAQ,UAAU,SAAW,QAAQ,YACpD,EACH,QAAQ,UAAU,oBACjB,QAAQ,UAAU,kBAAkB,kBACtC,QAAQ,wBACJ,EAAgB,QAAQ,SAAS,SACjC,EAAgB,QAAQ,SAAS,SAEjC,EAAU,CAAC,EACjB,GAAI,EAAiB,EAAQ,eAA0B,EACvD,GAAI,EAAa,EAAQ,WAAsB,EAC/C,GAAI,EAAc,EAAQ,YAAuB,EACjD,GAAI,EAAc,EAAQ,sBAAiC,EAC3D,GAAI,EAAiB,EAAQ,mBAA8B,EAC3D,GAAI,GAAiB,EAAG,EAAQ,iBAA4B,EAC5D,GAAI,EAAe,EAAQ,aAAwB,EACnD,GAAI,EAAe,EAAQ,aAAwB,EAEnD,OAAO,EAGT,eAAsB,EAAsB,CAC1C,EACA,EACA,EACA,CACA,GAAI,CACF,MAAM,GAAgB,CACpB,WACA,OAAQ,6BACR,OAAQ,CAAC,CAAE,QAAS,GAAkB,EAAO,CAAC,CAChD,CAAC,EACD,MAAO,EAAQ,CACf,IAAK,EACH,MAAM,IAAI,MAAM,sDAAsD,EAExE,MAAM,GAAoB,EAAU,CAAa,GAI9C,SAAS,EAAyC,EACvD,SACA,kBACA,cACqE,CACrE,IAAM,EAAY,EAAO,OAAO,CAAC,IAAU,EAAgB,SAAS,CAAK,CAAC,EAE1E,GAAI,EAAU,SAAW,EACvB,MAAM,IAAI,EAAa,6BAA8B,CACnD,OAAQ,EACR,MAAO,EAAO,KAAK,IAAI,CACzB,CAAC,EAGH,IAAM,EAAc,EAAO,OAAO,CAAC,KAAW,EAAgB,SAAS,CAAK,CAAC,EAS7E,OAPA,EACE,EAAY,OAAS,EACrB,GAAG,mDAA4D,EAAY,KACzE,IACF,kCACF,EAEO,EAGF,SAAS,EAA8D,CAC5E,EACA,EACA,EACA,EAcK,SAAS,EAGf,EACC,UACA,QACA,WAAW,OAAO,SAClB,cAAc,CAAC,GACiF,CAkBhG,IAAM,EAjBgB,CACpB,GAAG,EACH,UACA,iBACA,OACA,kBACA,WACA,aACA,iBACA,yBACA,aACA,uBACA,eACA,mBACA,oBACA,wBACF,EACqC,OAAO,CAAC,EAAQ,IAAe,CAClE,IAAK,EAAQ,GAAa,OAAO,EAEjC,IAAM,EAAS,EAAQ,GAEvB,GAAI,OAAO,IAAW,WAAY,OAAO,EAGzC,IAAM,EAAgB,GAA4B,EAAQ,EAAU,CAAK,EAGzE,MAAO,IAAK,GAAS,GAAa,CAAc,GAC/C,CAAC,CAAC,EAEL,MAAO,IAAK,KAAY,CAAe,EAGlC,SAAS,EAAmB,CAAC,EAA2B,EAA8B,CAC3F,OAAO,GAAgB,CAAE,WAAU,OAAQ,0BAA2B,OAAQ,CAAC,CAAa,CAAE,CAAC,EAG1F,SAAS,EAA0B,CAAC,EAAsB,CAC/D,OAAO,UAAU,GAAG,kBAAmB,IAAM,EAAS,CAAC,EACvD,OAAO,KAAK,SAAS,GAAG,kBAAmB,IAAM,EAAS,CAAC,EAGtD,SAAS,EAAmB,EAAG,CACpC,IAAQ,UAAS,gBAAe,UAAS,qBAAoB,oBAC3D,QAAQ,UAAY,CAAC,EACvB,GAAI,EAAS,wBACb,GAAI,EAAe,cACnB,GAAI,GAAsB,GAAkB,iBAAkB,qBAC9D,GAAI,SACJ,GAAI,QAAQ,SAAS,SAAU,eAC/B,iBAGK,SAAS,EAAiB,EAAG,CAClC,IAAM,EAA+B,CAAC,EAEtC,SAAS,CAAc,CAAC,EAAqC,CAC3D,GAAI,EAAU,IAAI,CAAC,IAAM,EAAE,KAAK,IAAI,EAAE,SAAS,EAAM,OAAO,KAAK,IAAI,EAAG,OACxE,EAAU,KAAK,EAAM,MAAM,EAG7B,OAAO,iBAAiB,2BAA4B,CAAc,EAClE,OAAO,cAAc,IAAI,MAAM,yBAAyB,CAAC,EAEzD,SAAS,CAA0B,EAAG,CACpC,OAAO,oBAAoB,2BAA4B,CAAc,EAGvE,MAAO,CAAE,YAAW,4BAA2B,EAG1C,SAAS,EAAgB,EAAG,CACjC,IAAM,EAAK,UAAU,UACf,EAAQ,wBAAwB,KAAK,CAAE,EACvC,EAAY,8BAA8B,KAAK,CAAE,EACjD,EAAW,GAAS,EACpB,EAAU,SAAS,KAAK,CAAE,EAEhC,OAAO,GAAY,EAGd,SAAS,EAKf,EACC,UACA,OACA,kBACA,cAUC,CACD,SAAS,CAAa,CAAC,EAEpB,CACD,OAAO,EAAQ,IAAK,EAAe,WAAY,EAA0B,iBAAgB,CAAC,EAG5F,MAAO,EACJ,GAAO,CAAE,kBAAiB,eAAc,CAC3C,EAQF,SAAS,EAAe,EACtB,WACA,SACA,UAUC,CACD,IAAK,GAAU,KACb,MAAM,IAAI,EAAa,4BAA4B,EAGrD,IAAM,EAAiB,EAAU,MAAM,QAAQ,CAAM,EAAI,EAAS,CAAC,CAAM,EAAK,CAAC,EAC/E,OAAO,EAAS,KAAK,EAAQ,CAAc",
|
|
28
|
+
"debugId": "6BF7C1C81BDA0C5764756E2164756E21",
|
|
29
29
|
"names": []
|
|
30
30
|
}
|