pi-fabric 0.108.0 → 0.108.1
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/chunks/{chunk-BDQLZAMV.js → chunk-5QMCSJ42.js} +9 -4
- package/dist/chunks/chunk-5QMCSJ42.js.map +7 -0
- package/dist/chunks/{chunk-5RS2B4P5.js → chunk-AM6BRWYQ.js} +1 -1
- package/dist/core/action-registry.d.ts +1 -1
- package/dist/core/action-registry.d.ts.map +1 -1
- package/dist/core/action-registry.js +1 -1
- package/dist/extension-bootstrap.js +1 -1
- package/dist/fabric-runtime-state.js +1 -1
- package/dist/index.js +1 -1
- package/dist/speculation/python-scanner.js +1 -1
- package/dist/speculation/python-scanner.js.map +2 -2
- package/dist/speculation/scanner.js +1 -1
- package/dist/speculation/scanner.js.map +2 -2
- package/docs/speculation.md +5 -2
- package/package.json +1 -1
- package/dist/chunks/chunk-BDQLZAMV.js.map +0 -7
- /package/dist/chunks/{chunk-5RS2B4P5.js.map → chunk-AM6BRWYQ.js.map} +0 -0
|
@@ -1213,13 +1213,18 @@ var ActionRegistry = class {
|
|
|
1213
1213
|
#speculationEligibility;
|
|
1214
1214
|
/**
|
|
1215
1215
|
* Attach the speculative-PTC runtime. Eligibility is re-checked against the
|
|
1216
|
-
* resolved descriptor
|
|
1216
|
+
* resolved descriptor at launch and replay, so a config/captured-tool change
|
|
1217
1217
|
* cannot sneak a side-effecting ref into the store after the fact.
|
|
1218
1218
|
*/
|
|
1219
1219
|
setSpeculation(runtime, eligibility) {
|
|
1220
1220
|
this.#speculation = runtime;
|
|
1221
1221
|
this.#speculationEligibility = eligibility;
|
|
1222
1222
|
}
|
|
1223
|
+
#allowsSpeculation(action) {
|
|
1224
|
+
const localRead = action.risk === "read" && action.effect?.kind === "none";
|
|
1225
|
+
const mcpRead = action.provider === "mcp" && action.risk === "network" && action.annotations?.destructiveHint !== true && action.annotations?.readOnlyHint !== false;
|
|
1226
|
+
return (localRead || mcpRead) && this.#speculationEligibility?.(structuredClone(action)) === true;
|
|
1227
|
+
}
|
|
1223
1228
|
register(provider, options = {}) {
|
|
1224
1229
|
this.mount(provider, options);
|
|
1225
1230
|
}
|
|
@@ -1754,7 +1759,7 @@ var ActionRegistry = class {
|
|
|
1754
1759
|
let providerValue;
|
|
1755
1760
|
let providerInvoked = false;
|
|
1756
1761
|
try {
|
|
1757
|
-
if (this.#speculation && action
|
|
1762
|
+
if (this.#speculation && this.#allowsSpeculation(action)) {
|
|
1758
1763
|
const served = await runAbortable(context.signal, () => this.#speculation.tryServe(context.parentToolCallId, ref, snapshotArguments(catalog.args), JSON.stringify([binding.id, authority.descriptor, context.capabilityView?.id ?? null, context.scope?.digest ?? null])));
|
|
1759
1764
|
if (served.hit) {
|
|
1760
1765
|
providerValue = await runAbortable(context.signal, () => this.#runPlanned(binding, providerActionName, authority, "replay", catalog.args, context, served.value));
|
|
@@ -1925,7 +1930,7 @@ var ActionRegistry = class {
|
|
|
1925
1930
|
return void 0;
|
|
1926
1931
|
}
|
|
1927
1932
|
const authority = { ref: action.ref, descriptor: actionDescriptorHash(action) };
|
|
1928
|
-
if (
|
|
1933
|
+
if (!this.#allowsSpeculation(action)) return void 0;
|
|
1929
1934
|
const effectiveSchema = effectiveInputSchema(
|
|
1930
1935
|
action.ref,
|
|
1931
1936
|
action.inputSchema
|
|
@@ -2279,4 +2284,4 @@ export {
|
|
|
2279
2284
|
scoreActionSearch,
|
|
2280
2285
|
ActionRegistry
|
|
2281
2286
|
};
|
|
2282
|
-
//# sourceMappingURL=chunk-
|
|
2287
|
+
//# sourceMappingURL=chunk-5QMCSJ42.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/verified/generated/authority-kernel.js", "../../src/verified/authority.ts", "../../src/core/action-registry.ts", "../../src/components/effect-policy.ts", "../../src/core/action-repair.ts", "../../src/core/provider-bindings.ts", "../../src/verified/generated/lifecycle-kernel.js"],
|
|
4
|
+
"sourcesContent": ["// Generated by Bend 2.0.35; do not edit. See LAWS.bend and PROOF.bend.\n// Includes adapted Bend runtime/Base code, Copyright 2026 HigherOrderCO, Apache-2.0.\n// ABI exports selected and tags adapted by Pi Fabric; see THIRD_PARTY_NOTICES.md.\nfunction A(t, e) {\n return { $: t < e ? \"LT\" : t === e ? \"EQ\" : \"GT\" };\n}\nfunction N(t) {\n return (typeof t == \"bigint\" || Number.isInteger(t)) && t >= 0 && t <= 2 ** 53 ? Number(t) : { [Symbol.toPrimitive]() {\n throw \"bend: a Nat past the largest immediate 2^48-1\";\n } };\n}\nfunction f(t) {\n for (; t !== null && typeof t == \"object\" && t.$ === \"$JMP\"; )\n t = t.f(...t.x);\n return t;\n}\nfunction c(t, e) {\n return (...r) => r.length < e ? c((...a) => t(...r, ...a), e - r.length) : t(...r);\n}\nfunction R(t, e, r) {\n for (; ; ) {\n let a = t, i = e, n = r;\n if (a.$ === \"Nil\")\n return i.$ === \"Nil\" ? n : !1;\n {\n let o = a.head, u = a.tail;\n if (i.$ === \"Nil\")\n return !1;\n {\n let $ = i.head, k = i.tail;\n t = u, e = k, r = m(n, P(o, $));\n continue;\n }\n }\n }\n}\nfunction _(t, e, r) {\n for (; ; ) {\n let a = t, i = e, n = r;\n if (a.$ === \"Nil\")\n return n;\n {\n let o = a.head, u = a.tail, $ = R(i, o, !0);\n t = u, e = i, r = n || $;\n continue;\n }\n }\n}\nfunction E(t, e, r) {\n for (; ; ) {\n let a = t, i = e, n = r;\n if (a.$ === \"Nil\")\n return n;\n {\n let o = a.head;\n t = a.tail, e = i, r = m(n, _(i, o, !1));\n continue;\n }\n }\n}\nfunction x(t) {\n return { $: \"authority-state.Active\", grants: t };\n}\nfunction C(t) {\n return t.$ !== \"authority-state.Released\";\n}\nfunction L(t, e) {\n if (t.$ === \"authority-state.Released\")\n return !1;\n {\n let r = t.grants;\n return _(r, e, !1);\n }\n}\nfunction Q(t, e) {\n return t ? { $: \"authority-state.Active\", grants: e } : { $: \"authority-state.Released\" };\n}\nfunction I(t, e) {\n if (t.$ === \"authority-state.Released\")\n return { $: \"authority-state.Released\" };\n {\n let r = t.grants;\n return Q(E(e, r, !0), e);\n }\n}\nfunction q(t) {\n return { $: \"authority-state.Released\" };\n}\nfunction U(t) {\n return x(t);\n}\nfunction j(t) {\n return C(t);\n}\nfunction D(t, e) {\n return L(t, e);\n}\nfunction M(t, e) {\n return I(t, e);\n}\nfunction B(t) {\n return q(t);\n}\nfunction m(t, e) {\n return t ? e : !1;\n}\nfunction P(t, e) {\n return T(A(t, e));\n}\nfunction T(t) {\n return t.$ === \"EQ\";\n}\nfunction b(t) {\n let e = [t];\n for (let r = e, a = 0; ; )\n switch (t.$) {\n case \"Nil\":\n return r[a] = t, e[0];\n case \"Con\":\n r = r[a] = { ...t, head: N(t.head) }, a = \"tail\", t = t[a];\n continue;\n default:\n throw \"bend: List has no tag \" + t?.$ + \" (its tags: Nil, Con); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction p(t) {\n let e = [t];\n for (let r = e, a = 0; ; )\n switch (t.$) {\n case \"Nil\":\n return r[a] = t, e[0];\n case \"Con\":\n r = r[a] = { ...t, head: BigInt(t.head) }, a = \"tail\", t = t[a];\n continue;\n default:\n throw \"bend: List has no tag \" + t?.$ + \" (its tags: Nil, Con); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction g(t) {\n let e = [t];\n for (let r = e, a = 0; ; )\n switch (t.$) {\n case \"Nil\":\n return r[a] = t, e[0];\n case \"Con\":\n r = r[a] = { ...t, head: b(t.head) }, a = \"tail\", t = t[a];\n continue;\n default:\n throw \"bend: List has no tag \" + t?.$ + \" (its tags: Nil, Con); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction w(t) {\n let e = [t];\n for (let r = e, a = 0; ; )\n switch (t.$) {\n case \"Nil\":\n return r[a] = t, e[0];\n case \"Con\":\n r = r[a] = { ...t, head: p(t.head) }, a = \"tail\", t = t[a];\n continue;\n default:\n throw \"bend: List has no tag \" + t?.$ + \" (its tags: Nil, Con); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction l(t) {\n let e = [t];\n for (let r = e, a = 0; ; )\n switch (t.$) {\n case \"authority-state.Released\":\n return r[a] = t, e[0];\n case \"authority-state.Active\":\n return r = r[a] = { ...t, grants: w(t.grants) }, e[0];\n default:\n throw \"bend: authority-state.Authority has no tag \" + t?.$ + \" (its tags: authority-state.Released, authority-state.Active); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction d(t) {\n let e = [t];\n for (let r = e, a = 0; ; )\n switch (t.$) {\n case \"authority-state.Released\":\n return r[a] = t, e[0];\n case \"authority-state.Active\":\n return r = r[a] = { ...t, grants: g(t.grants) }, e[0];\n default:\n throw \"bend: authority-state.Authority has no tag \" + t?.$ + \" (its tags: authority-state.Released, authority-state.Active); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nvar h = /* @__PURE__ */ new Map([[\"Unknown\", \"resources.Unknown\"], [\"Exact\", \"resources.Exact\"], [\"Quiet\", \"resources.Quiet\"], [\"Active\", \"authority-state.Active\"], [\"Released\", \"authority-state.Released\"], [\"Effect\", \"resources.Effect\"]]), y = /* @__PURE__ */ new Map([[\"resources.Unknown\", \"Unknown\"], [\"resources.Exact\", \"Exact\"], [\"resources.Quiet\", \"Quiet\"], [\"authority-state.Active\", \"Active\"], [\"authority-state.Released\", \"Released\"], [\"resources.Effect\", \"Effect\"]]);\nfunction s(t, e) {\n let r = [t];\n for (let a = [[r, 0]]; a.length > 0; ) {\n let [i, n] = a.pop(), o = i[n];\n if (o === null || typeof o != \"object\") continue;\n let u = Array.isArray(o) ? [...o] : { ...o };\n typeof u.$ == \"string\" && (u.$ = e.get(u.$) ?? u.$), i[n] = u;\n for (let $ of Object.keys(u)) a.push([u, $]);\n }\n return r[0];\n}\nvar G = /* @__PURE__ */ c((t) => {\n let e = l(f(U(g(t))));\n return w(t), e;\n}, 1), J = (t) => s(G(s(t, h)), y), O = /* @__PURE__ */ c((t) => {\n let e = f(j(d(t)));\n return l(t), e;\n}, 1), S = (t) => s(O(s(t, h)), y), z = /* @__PURE__ */ c((t, e) => {\n let r = f(D(d(t), b(e)));\n return l(t), p(e), r;\n}, 2), F = (t, e) => s(z(s(t, h), s(e, h)), y), H = /* @__PURE__ */ c((t, e) => {\n let r = l(f(M(d(t), g(e))));\n return l(t), w(e), r;\n}, 2), K = (t, e) => s(H(s(t, h), s(e, h)), y), V = /* @__PURE__ */ c((t) => {\n let e = l(f(B(d(t))));\n return l(t), e;\n}, 1), W = (t) => s(V(s(t, h)), y);\nexport {\n F as authorityAllows,\n K as authorityDerive,\n J as authorityIssue,\n S as authorityLive,\n W as authorityRelease\n};\n", "import {\n authorityAllows,\n authorityDerive,\n authorityIssue,\n authorityLive,\n authorityRelease,\n type AuthorityGrants,\n type AuthorityState,\n type AuthorityText,\n} from \"./generated/authority-kernel.js\";\nimport type { FabricCapabilityBindingView } from \"../protocol.js\";\n\n/** Trusted codec: JSON's fixed-position string/number tuple plus complete UTF-16\n * code units preserves ref, provider, binding identity, generation and descriptor\n * identity without prefix comparisons or truncation. Descriptor hashing itself\n * remains trusted; the kernel proves equality of identities, not hash injectivity.\n */\nconst encodeGrant = (grant: Readonly<FabricCapabilityBindingView>): AuthorityText => {\n const text = JSON.stringify([\n grant.ref, grant.provider, grant.providerBindingId, grant.generation, grant.descriptorHash,\n ]);\n let encoded: AuthorityText = { $: \"Nil\" };\n for (let i = text.length - 1; i >= 0; i--) {\n encoded = { $: \"Con\", head: BigInt(text.charCodeAt(i)), tail: encoded };\n }\n return encoded;\n};\n\nconst encodeGrants = (grants: readonly Readonly<FabricCapabilityBindingView>[]): AuthorityGrants => {\n let encoded: AuthorityGrants = { $: \"Nil\" };\n for (let i = grants.length - 1; i >= 0; i--) {\n encoded = { $: \"Con\", head: encodeGrant(grants[i]!), tail: encoded };\n }\n return encoded;\n};\n\n/** Private canonical state behind ActionRegistry's WeakMap-owned public views.\n * Root issuance is a trusted registry operation, not a caller-supplied permission\n * Boolean. Bend proves derivation/use/release over exact grants. JS identity,\n * WeakMap ownership, binding observations and abort delivery remain trusted.\n */\nexport class CapabilityAuthority {\n #state: AuthorityState;\n readonly #grants: ReadonlyMap<string, Readonly<FabricCapabilityBindingView>>;\n\n private constructor(grants: readonly FabricCapabilityBindingView[], parent?: CapabilityAuthority) {\n const canonical = grants.map(grant => Object.freeze({ ...grant }));\n this.#grants = new Map(canonical.map(grant => [grant.ref, grant]));\n const encoded = encodeGrants(canonical);\n this.#state = parent ? authorityDerive(parent.#state, encoded) : authorityIssue(encoded);\n }\n\n static issue(grants: readonly FabricCapabilityBindingView[]): CapabilityAuthority {\n return new CapabilityAuthority(grants);\n }\n\n derive(grants: readonly FabricCapabilityBindingView[]): CapabilityAuthority {\n return new CapabilityAuthority(grants, this);\n }\n\n get active(): boolean {\n return authorityLive(this.#state);\n }\n\n release(): void {\n this.#state = authorityRelease(this.#state);\n }\n\n resolve(ref: string): FabricCapabilityBindingView | undefined {\n const grant = this.#grants.get(ref);\n return grant && authorityAllows(this.#state, encodeGrant(grant)) ? { ...grant } : undefined;\n }\n\n bindings(): FabricCapabilityBindingView[] {\n return this.active ? [...this.#grants.values()].map(grant => ({ ...grant })) : [];\n }\n}\n", "import type { ProviderOperations, ProviderOperation } from \"./provider-operations.js\";\nimport { CapabilityAuthority } from \"../verified/authority.js\";\nimport { randomUUID } from \"node:crypto\";\nimport { effectConflictsBetween, registrationEffect, summarizeEffects } from \"../components/effect-policy.js\";\n\n/** Effective page size for registry list(): caller default 100, hard cap 1000.\n * Exported so guest discovery surfaces slice identically to the registry. */\nexport const fabricActionListLimit = (limit?: number): number =>\n Math.max(1, Math.min(limit ?? 100, 1_000));\nimport { repairCatalogInput, validateCatalogArgs, validationMessage } from \"./action-arguments.js\";\nimport {\n MAX_AUDIT_VALUE_CHARS,\n boundedPreviewValue,\n boundedResult,\n failedResultError,\n failedResultOutcome,\n previewArgs,\n previewResult,\n} from \"./action-result.js\";\nimport { runAbortable, settleWithin, throwIfAborted } from \"../async-settlement.js\";\nimport type {\n FabricCapabilityRequirement,\n FabricComponentProviderLease,\n} from \"../components/types.js\";\nimport {\n executionOutcomeFromError,\n FabricResolutionError,\n FabricTraceSafeError,\n type FabricExecutionTraceOperationHandle,\n type FabricExecutionTraceRecorder,\n} from \"../audit/trace.js\";\nimport {\n FABRIC_NESTED_TOOL_CALL_ID_PREFIX,\n type FabricActionDescriptor,\n type FabricActionEffect,\n type FabricCapabilityBindingView,\n type FabricCapabilityCatalog,\n type FabricCapabilityResolution,\n type FabricCommittedCapabilityView,\n type FabricGuestTypeSources,\n type FabricInvocationActivityUpdate,\n type FabricInvocationContext,\n type FabricMediaBlock,\n type FabricNamedActionTypeSource,\n type FabricProvider,\n type FabricProviderListRequest,\n type FabricScope,\n type FabricScopedProviderResult,\n} from \"../protocol.js\";\nimport {\n formatUnknownActionMessage,\n repairActionName,\n} from \"./action-repair.js\";\nimport {\n applyActiveActionName,\n applyActiveArgRepairs,\n getActiveRepairCompiler,\n} from \"../repairs/active.js\";\nimport {\n activeQuarantinedRefNames,\n effectiveInputSchema,\n normalizeActiveArguments,\n isActiveQuarantine,\n} from \"../entropy/active.js\";\nimport { formatFabricEffectConflict } from \"./effect-conflict.js\";\nimport { stableJsonHash } from \"./stable-hash.js\";\nimport type {\n FabricSpeculationReplay,\n FabricSpeculationRuntime,\n} from \"../speculation/types.js\";\nimport type { FabricNestedToolResultProxy } from \"./tool-result-proxy.js\";\nimport {\n FabricProviderBindings,\n type FabricProviderBinding,\n type FabricProviderBindingEvent,\n} from \"./provider-bindings.js\";\n\nexport interface ResolvedFabricAction extends FabricActionDescriptor {\n ref: string;\n provider: string;\n}\n\ninterface FabricEffectConflict {\n withRef: string;\n resources: string[];\n reason: \"shared_resource\" | \"unknown_resource\";\n}\n\nexport interface FabricCallAudit {\n ref: string;\n nestedToolCallId: string;\n startedAt: number;\n endedAt?: number;\n success?: boolean;\n error?: string;\n resultChars?: number;\n resultTruncated?: boolean;\n tool?: string;\n provider?: string;\n args?: Record<string, unknown>;\n result?: unknown;\n media?: FabricMediaBlock[];\n mediaNote?: string;\n preview?: unknown;\n effectConflicts?: FabricEffectConflict[];\n /** Result was pre-launched while the program streamed and served from the speculation store. */\n speculated?: boolean;\n /** Spelled action name that repaired to the canonical one at resolve (e.g. search \u2192 recall). */\n repairedFrom?: string;\n}\n\nexport type FabricRegistryActivityEvent =\n | {\n type: \"call_start\";\n callId: string;\n ref: string;\n args: Record<string, unknown>;\n }\n | {\n type: \"call_update\";\n callId: string;\n update: FabricInvocationActivityUpdate;\n }\n | {\n type: \"call_args\";\n callId: string;\n args: Record<string, unknown>;\n }\n | {\n type: \"call_end\";\n callId: string;\n success: boolean;\n result?: unknown;\n preview?: unknown;\n error?: string;\n };\n\nexport interface FabricCapabilityViewLease extends FabricCapabilityResolution {\n release(): Promise<void>;\n}\n\nexport interface FabricRegistryInvocationContext extends FabricInvocationContext {\n authorize?(action: ResolvedFabricAction): Promise<void>;\n approve(\n action: ResolvedFabricAction,\n args: Record<string, unknown>,\n ): Promise<void>;\n audits: FabricCallAudit[];\n maxResultChars: number;\n trace?: FabricExecutionTraceRecorder;\n traceOperation?: FabricExecutionTraceOperationHandle;\n observeInvocation?(event: FabricRegistryActivityEvent): void;\n}\n\n/**\n * Prefix pi-fabric prepends to every nested tool-call id it generates inside a\n * fabric_exec run (one per pi., mcp., or agents. invocation). Extensions can\n * detect that a tool_call/tool_result event came from a nested fabric call \u2014\n * rather than a top-level call the LLM made directly \u2014 by checking\n * `event.toolCallId.startsWith(NESTED_TOOL_CALL_ID_PREFIX)`. The LLM's own\n * tool-call ids (e.g. openai \"call_\u2026\", anthropic \"toolu_\u2026\") never use this\n * prefix, so the signal is unambiguous.\n */\nexport const NESTED_TOOL_CALL_ID_PREFIX = FABRIC_NESTED_TOOL_CALL_ID_PREFIX;\n\nconst providerNamePattern = /^[a-z][a-z0-9_-]*$/;\n/** Process-wide issuance record owned by src/scope.ts. */\nconst SCOPE_HOLDER = Symbol.for(\"pi-fabric:scope:v1\");\n\n/** structuredClone detaches ordinary nested references, but deliberately shares\n * SharedArrayBuffer backing memory. Such payloads cannot be approved as stable\n * snapshots, including when hidden in maps, views, cycles or Error.cause.\n */\nconst snapshotArguments = (args: Record<string, unknown>): Record<string, unknown> => {\n const snapshot = structuredClone(args);\n const pending: unknown[] = [snapshot];\n const seen = new WeakSet<object>();\n while (pending.length > 0) {\n const value = pending.pop();\n if (value === null || typeof value !== \"object\" || seen.has(value)) continue;\n seen.add(value);\n if (typeof SharedArrayBuffer !== \"undefined\" && value instanceof SharedArrayBuffer) {\n throw new FabricTraceSafeError(\"Fabric argument snapshots cannot contain shared memory\");\n }\n // WebAssembly.Memory has no own data properties; its backing buffer is\n // nevertheless shared by structuredClone and must be inspected explicitly.\n if (Object.prototype.toString.call(value) === \"[object WebAssembly.Memory]\") {\n pending.push((value as { buffer: unknown }).buffer);\n continue;\n }\n if (ArrayBuffer.isView(value)) {\n pending.push(value.buffer);\n continue;\n }\n if (value instanceof Map) for (const [key, entry] of value) pending.push(key, entry);\n if (value instanceof Set) for (const entry of value) pending.push(entry);\n for (const key of Reflect.ownKeys(value)) {\n const property = Object.getOwnPropertyDescriptor(value, key);\n if (property && \"value\" in property) pending.push(property.value);\n }\n }\n return snapshot;\n};\n\nconst resolveDescriptor = (\n provider: FabricProvider,\n descriptor: FabricActionDescriptor,\n): ResolvedFabricAction => ({\n ...descriptor,\n effect: descriptor.effect ?? (descriptor.risk === \"read\"\n ? { kind: \"none\", ordering: \"commutative\" }\n : { kind: \"emission\", ordering: \"unknown\" }),\n provider: provider.name,\n ref: `${provider.name}.${descriptor.name}`,\n});\n\nconst descriptorHash = stableJsonHash;\n\nconst actionDescriptorHash = (action: ResolvedFabricAction): string =>\n descriptorHash({\n ref: action.ref,\n description: action.description,\n inputSchema: action.inputSchema,\n outputSchema: action.outputSchema,\n risk: action.risk,\n namespace: action.namespace,\n effect: action.effect,\n });\n\nconst discoveryTerms = (value: string): string[] =>\n [...value.normalize(\"NFKC\").matchAll(/[\\p{L}\\p{N}_]+/gu)]\n .map((match) => match[0].toLowerCase());\n\nexport const scoreActionSearch = (\n query: string,\n action: {\n ref: string;\n name: string;\n description: string;\n provider: string;\n namespace?: string;\n inputSchema: unknown;\n },\n providerDescription = \"\",\n): number => {\n const normalizedQuery = query.normalize(\"NFKC\").trim().toLowerCase();\n if (!normalizedQuery) return 0;\n const queryTerms = [...new Set(discoveryTerms(normalizedQuery))];\n const ref = action.ref.normalize(\"NFKC\").toLowerCase();\n const name = action.name.normalize(\"NFKC\").toLowerCase();\n const description = action.description.normalize(\"NFKC\").toLowerCase();\n const provider = action.provider.normalize(\"NFKC\").toLowerCase();\n const providerBody = providerDescription.normalize(\"NFKC\").toLowerCase();\n const namespace = (action.namespace ?? \"\").normalize(\"NFKC\").toLowerCase();\n const schema = JSON.stringify(action.inputSchema ?? {}).normalize(\"NFKC\").toLowerCase();\n const tokenSets = {\n ref: new Set(discoveryTerms(ref)),\n name: new Set(discoveryTerms(name)),\n description: new Set(discoveryTerms(description)),\n provider: new Set(discoveryTerms(provider)),\n providerBody: new Set(discoveryTerms(providerBody)),\n namespace: new Set(discoveryTerms(namespace)),\n schema: new Set(discoveryTerms(schema)),\n };\n const fields = Object.values(tokenSets);\n let score = 0;\n if (ref === normalizedQuery) score += 1_000;\n if (name === normalizedQuery) score += 800;\n if (ref.startsWith(normalizedQuery)) score += 300;\n else if (ref.includes(normalizedQuery)) score += 120;\n if (description.includes(normalizedQuery)) score += 40;\n if (providerBody.includes(normalizedQuery)) score += 20;\n if (schema.includes(normalizedQuery)) score += 10;\n let matchedTerms = 0;\n for (const term of queryTerms) {\n const matched = fields.some((field) => field.has(term));\n if (!matched) continue;\n matchedTerms += 1;\n if (tokenSets.ref.has(term) || tokenSets.name.has(term)) score += 30;\n if (tokenSets.provider.has(term)) score += 20;\n if (tokenSets.description.has(term)) score += 8;\n if (tokenSets.providerBody.has(term)) score += 4;\n if (tokenSets.namespace.has(term)) score += 6;\n if (tokenSets.schema.has(term)) score += 2;\n }\n if (queryTerms.length > 0 && matchedTerms === queryTerms.length) score += 15;\n return score;\n};\n\nconst conflictBetween = (\n left: FabricActionEffect,\n right: FabricActionEffect,\n): { resources: string[]; reason: FabricEffectConflict[\"reason\"] } | undefined => {\n return effectConflictsBetween(\n summarizeEffects([registrationEffect({ label: \"left\", ...left })]),\n summarizeEffects([registrationEffect({ label: \"right\", ...right })]),\n )[0];\n};\n\nexport class ActionRegistry {\n readonly #shutdown = new AbortController();\n readonly #views = new WeakMap<FabricCommittedCapabilityView, { controller: AbortController; signal: AbortSignal; authority: CapabilityAuthority }>();\n #operations: Promise<ProviderOperations> | undefined;\n readonly #providerBindings = new FabricProviderBindings();\n readonly #activeEffects = new Map<string, { ref: string; effect: FabricActionEffect }>();\n readonly #unavailable = new Map<string, string>();\n #unavailableResolver: ((name: string) => string | undefined) | undefined;\n #speculation: FabricSpeculationRuntime | undefined;\n #speculationEligibility: ((action: ResolvedFabricAction) => boolean) | undefined;\n\n constructor(readonly toolResultProxy?: FabricNestedToolResultProxy) {\n this.#providerBindings.subscribe(() => this.#speculation?.reset?.());\n }\n\n /**\n * Attach the speculative-PTC runtime. Eligibility is re-checked against the\n * resolved descriptor at launch and replay, so a config/captured-tool change\n * cannot sneak a side-effecting ref into the store after the fact.\n */\n setSpeculation(\n runtime: FabricSpeculationRuntime | undefined,\n eligibility?: (action: ResolvedFabricAction) => boolean,\n ): void {\n this.#speculation = runtime;\n this.#speculationEligibility = eligibility;\n }\n\n #allowsSpeculation(action: ResolvedFabricAction): boolean {\n const localRead = action.risk === \"read\" && action.effect?.kind === \"none\";\n // MCP keeps its conservative network/effect classification. Only the live\n // eligibility callback can attest an allowlisted read; explicit unsafe\n // annotations still refuse even if a custom callback opts it in.\n const mcpRead = action.provider === \"mcp\" && action.risk === \"network\" &&\n action.annotations?.destructiveHint !== true && action.annotations?.readOnlyHint !== false;\n return (localRead || mcpRead) && this.#speculationEligibility?.(structuredClone(action)) === true;\n }\n\n register(provider: FabricProvider, options: { overwrite?: boolean } = {}): void {\n this.mount(provider, options);\n }\n\n mount(\n provider: FabricProvider,\n options: { overwrite?: boolean; staged?: boolean } = {},\n ): FabricComponentProviderLease {\n if (this.#shutdown.signal.aborted) throw new Error(\"Fabric registry is closed\");\n if (!providerNamePattern.test(provider.name)) {\n throw new Error(`Invalid Fabric provider name: ${provider.name}`);\n }\n const lease = this.#providerBindings.mount(provider, options);\n this.#unavailable.delete(provider.name);\n return lease;\n }\n\n activateProviderBindings(bindingIds: readonly string[]): string[] {\n return this.#providerBindings.activate(bindingIds);\n }\n\n subscribeProviderChanges(\n listener: (event: FabricProviderBindingEvent) => void,\n ): () => void {\n return this.#providerBindings.subscribe(listener);\n }\n\n notifyCatalogChanged(provider: string): void {\n this.#providerBindings.notifyCatalogChanged(provider);\n }\n\n has(name: string): boolean {\n return this.#providerBindings.has(name);\n }\n\n setUnavailableResolver(resolve: (name: string) => string | undefined): void {\n this.#unavailableResolver = resolve;\n }\n\n markUnavailable(name: string, reason: string): void {\n if (!providerNamePattern.test(name)) {\n throw new Error(`Invalid Fabric provider name: ${name}`);\n }\n if (this.#providerBindings.has(name)) {\n throw new Error(`Cannot mark a registered Fabric provider unavailable: ${name}`);\n }\n this.#unavailable.set(name, reason);\n }\n\n unavailableProviders(): Array<{ name: string; reason: string }> {\n return [...this.#unavailable.entries()]\n .map(([name, reason]) => ({ name, reason }))\n .sort((left, right) => left.name.localeCompare(right.name));\n }\n\n unregister(\n name: string,\n options?: { provider?: FabricProvider; generation?: number | string; keepProviderOpen?: boolean },\n ): FabricProvider | undefined {\n return this.#providerBindings.unregister(name, options);\n }\n\n providers(context?: FabricInvocationContext): Array<{ name: string; description: string }> {\n if (context) this.#scopeContext(context);\n const visible = context?.capabilityView\n ? [...new Set(this.#viewAuthority(context.capabilityView).bindings().map(value => this.#providerBindings.binding(value.providerBindingId)?.provider).filter((provider): provider is FabricProvider => Boolean(provider)))]\n : this.#providerBindings.providers();\n return visible\n .map((provider) => ({ name: provider.name, description: provider.description }))\n .sort((left, right) => left.name.localeCompare(right.name));\n }\n\n async inspectCapabilities(\n requirements: readonly (string | FabricCapabilityRequirement)[],\n context: FabricInvocationContext,\n ): Promise<FabricCapabilityResolution> {\n return this.#resolveCapabilities(requirements, context, false);\n }\n\n async acquireCapabilityView(\n requirements: readonly (string | FabricCapabilityRequirement)[],\n context: FabricInvocationContext,\n ): Promise<FabricCapabilityViewLease> {\n return this.#resolveCapabilities(requirements, context, true);\n }\n\n /**\n * Snapshot the tool schemas backing the dynamic guest surfaces (mcp and\n * extensions) so the type gate can reject argument-shape mistakes before\n * the sandbox runs. Side-effect-free by construction: MCP data comes from\n * the provider's cache-warm descriptor slice (listing would schedule\n * background revalidation), extension data from the captured-tool catalog.\n * Providers that cannot supply data yet simply contribute no section and\n * the loose declarations stand for that execution.\n */\n async guestTypeSources(context: FabricInvocationContext): Promise<FabricGuestTypeSources> {\n context = this.#scopeContext(context);\n const sources: FabricGuestTypeSources = {};\n if (context.capabilityView) {\n const actions = await this.list({ limit: 1_000 }, context);\n const byServer = new Map<string, FabricNamedActionTypeSource[]>();\n for (const action of actions.filter((candidate) => candidate.provider === \"mcp\")) {\n const server = action.namespace;\n if (!server || server === \"management\" || action.name.startsWith(\"$\")) continue;\n const prefix = `${server}.`;\n const name = action.name.startsWith(prefix)\n ? action.name.slice(prefix.length)\n : action.name;\n const tools = byServer.get(server) ?? [];\n tools.push({ name, inputSchema: action.inputSchema });\n byServer.set(server, tools);\n }\n if (byServer.size > 0) {\n sources.mcpServers = [...byServer.entries()].map(([server, tools]) => ({\n server,\n tools,\n }));\n }\n const extensionTools = actions\n .filter((action) => action.provider === \"extensions\")\n .map((action) => ({ name: action.name, inputSchema: action.inputSchema }));\n if (extensionTools.length > 0) sources.extensionTools = extensionTools;\n return sources;\n }\n const mcp = this.#providerBindings.current(\"mcp\")?.provider as\n | (FabricProvider & { sliceDescriptors?: () => FabricActionDescriptor[] })\n | undefined;\n const mcpDescriptors = mcp?.sliceDescriptors?.();\n if (mcpDescriptors && mcpDescriptors.length > 0) {\n const byServer = new Map<string, Map<string, FabricNamedActionTypeSource>>();\n for (const descriptor of mcpDescriptors) {\n const server = descriptor.namespace;\n if (!server || server === \"management\" || descriptor.name.startsWith(\"$\")) continue;\n const prefix = `${server}.`;\n const toolName = descriptor.name.startsWith(prefix)\n ? descriptor.name.slice(prefix.length)\n : descriptor.name;\n let tools = byServer.get(server);\n if (!tools) {\n tools = new Map();\n byServer.set(server, tools);\n }\n // Teaching: the type gate checks programs against the compiled\n // schema, the same shape invoke validates against, so shape\n // mistakes surface before the sandbox runs.\n tools.set(toolName, {\n name: toolName,\n inputSchema: effectiveInputSchema(\n `mcp.${descriptor.name}`,\n descriptor.inputSchema,\n ) as Record<string, unknown>,\n });\n }\n if (byServer.size > 0) {\n sources.mcpServers = [...byServer.entries()].map(([server, tools]) => ({\n server,\n tools: [...tools.values()],\n }));\n }\n }\n const extensions = this.#providerBindings.current(\"extensions\")?.provider;\n if (extensions) {\n try {\n const descriptors = await extensions.list({}, context);\n if (descriptors.length > 0) {\n sources.extensionTools = descriptors.map((descriptor) => ({\n name: descriptor.name,\n inputSchema: effectiveInputSchema(\n `extensions.${descriptor.name}`,\n descriptor.inputSchema,\n ) as Record<string, unknown>,\n }));\n }\n } catch {\n // Capture catalog not ready yet; the loose extensions surface stands\n // for this execution.\n }\n }\n return sources;\n }\n\n // The model-facing discovery view: quarantined refs hide here, and the\n // compiled overlay teaches: listed schemas show the compiled shape so\n // tightened enums are visible before the first call. Pass `declared: true`\n // for the compile's base-surface truth, which keeps quarantined refs\n // visible and schemas declared so base-digest proofs and artifact\n // carry-forward read the live contract. Capability-view paths stay\n // declared everywhere (see describe): committed views pin declared\n // digests, and a surface activation must never invalidate them.\n async listDetailed(\n request: FabricProviderListRequest & { provider?: string; declared?: boolean },\n context: FabricInvocationContext,\n ): Promise<{ actions: ResolvedFabricAction[]; total: number; truncated: boolean }> {\n context = this.#scopeContext(context);\n if (context.capabilityView) {\n const refs = this.#viewAuthority(context.capabilityView).bindings().map(binding => binding.ref)\n .filter((ref) => !request.provider || ref.startsWith(`${request.provider}.`))\n .filter((ref) => request.declared || !activeQuarantinedRefNames().has(ref))\n .sort();\n const actions = await Promise.all(refs.map((ref) => this.describe(ref, context)));\n const query = request.query?.normalize(\"NFKC\").trim().toLowerCase();\n const filtered = actions\n .filter((action) => !request.namespace || action.namespace === request.namespace)\n .filter((action) =>\n !query || `${action.ref} ${action.description}`.toLowerCase().includes(query),\n );\n const page = filtered.slice(0, fabricActionListLimit(request.limit));\n return { actions: page, total: filtered.length, truncated: filtered.length > page.length };\n }\n const providers = request.provider\n ? [this.#requireProvider(request.provider)]\n : this.#providerBindings.providers();\n const lists = await Promise.all(\n providers.map(async (provider) => {\n const descriptors = await runAbortable(context.signal, () => this.#providerBindings.trackProvider(provider, () => provider.list(request, context)));\n return descriptors\n .filter(\n (descriptor) =>\n request.declared ||\n !activeQuarantinedRefNames().has(`${provider.name}.${descriptor.name}`),\n )\n .map((descriptor) => {\n const action = resolveDescriptor(provider, descriptor);\n // Teaching: the listing carries the compiled schema. Declared\n // requests (the compile snapshot) keep the live contract.\n return request.declared\n ? action\n : {\n ...action,\n inputSchema: effectiveInputSchema(\n action.ref,\n action.inputSchema,\n ) as Record<string, unknown>,\n };\n });\n }),\n );\n const all = lists.flat();\n const page = all.slice(0, fabricActionListLimit(request.limit));\n return { actions: page, total: all.length, truncated: all.length > page.length };\n }\n async list(\n request: FabricProviderListRequest & { provider?: string; declared?: boolean },\n context: FabricInvocationContext,\n ): Promise<ResolvedFabricAction[]> {\n const { actions } = await this.listDetailed(request, context);\n return actions;\n }\n\n async catalog(\n context: FabricInvocationContext,\n options: {\n provider?: string;\n limit?: number;\n includeProvider?: (provider: string) => boolean;\n } = {},\n ): Promise<FabricCapabilityCatalog> {\n context = this.#scopeContext(context);\n const providers = (context.capabilityView\n ? [...new Map(\n this.#viewAuthority(context.capabilityView).bindings().flatMap((pinned) => {\n const binding = this.#providerBindings.binding(pinned.providerBindingId);\n return binding ? [[binding.name, binding.provider] as const] : [];\n }),\n ).values()]\n : options.provider\n ? [this.#requireProvider(options.provider)]\n : this.#providerBindings.providers())\n .filter((provider) => !options.provider || provider.name === options.provider)\n .filter((provider) => options.includeProvider?.(provider.name) ?? true)\n .sort((left, right) => left.name.localeCompare(right.name));\n const lists = await Promise.all(\n providers.map(async (provider) => ({\n provider,\n actions: context.capabilityView\n ? await this.list({ provider: provider.name, limit: 1_000 }, context)\n : (await runAbortable(context.signal, () => this.#providerBindings.trackProvider(provider, () => provider.list({}, context))))\n .filter(\n (descriptor) =>\n !activeQuarantinedRefNames().has(`${provider.name}.${descriptor.name}`),\n )\n .map((descriptor) => resolveDescriptor(provider, descriptor)),\n })),\n );\n const allActions = lists.flatMap(({ actions }) => actions)\n .sort((left, right) => left.ref.localeCompare(right.ref));\n const limit = Math.max(1, Math.min(Math.floor(options.limit ?? 1_000), 1_000));\n const retainedRefs = new Set(allActions.slice(0, limit).map((action) => action.ref));\n const providerHeads = lists.map(({ provider, actions }) => {\n const actionHeads = actions\n .filter((action) => retainedRefs.has(action.ref))\n .sort((left, right) => left.ref.localeCompare(right.ref))\n .map((action) => ({\n key: `action:${action.ref}`,\n parentKey: `provider:${provider.name}`,\n ref: action.ref,\n name: action.name,\n description: action.description,\n descriptorHash: actionDescriptorHash(action),\n risk: action.risk,\n ...(action.namespace === undefined ? {} : { namespace: action.namespace }),\n ...(action.effect === undefined ? {} : { effect: action.effect }),\n }));\n return {\n key: `provider:${provider.name}`,\n parentKey: \"capability:fabric\",\n name: provider.name,\n description: provider.description,\n descriptorHash: descriptorHash({\n name: provider.name,\n description: provider.description,\n actions: actionHeads.map((action) => action.descriptorHash),\n }),\n actions: actionHeads,\n };\n });\n const indexedActions = providerHeads.reduce((total, provider) => total + provider.actions.length, 0);\n const rootHash = descriptorHash(providerHeads.map((provider) => provider.descriptorHash));\n return {\n kind: \"pi-fabric.capability-catalog\",\n version: 1,\n root: {\n key: \"capability:fabric\",\n name: \"Fabric capabilities\",\n description: context.capabilityView\n ? \"Committed provider and action metadata for this execution; not historical session evidence.\"\n : \"Current registered provider and action metadata for navigation; not historical session evidence.\",\n descriptorHash: rootHash,\n },\n providers: providerHeads,\n totalActions: allActions.length,\n indexedActions,\n complete: indexedActions === allActions.length,\n reasons: indexedActions === allActions.length ? [] : [\"action_limit\"],\n };\n }\n\n async search(\n query: string,\n context: FabricInvocationContext,\n limit = 30,\n ): Promise<ResolvedFabricAction[]> {\n const normalizedQuery = query.normalize(\"NFKC\").trim().toLowerCase();\n if (!normalizedQuery) return [];\n const listed = await this.list({ limit: 1_000 }, context);\n return listed\n .map((action) => ({\n action,\n score: scoreActionSearch(\n normalizedQuery,\n action,\n this.#providerBindings.current(action.provider)?.provider.description ?? \"\",\n ),\n }))\n .filter((entry) => entry.score > 0)\n .sort(\n (left, right) =>\n right.score - left.score || left.action.ref.localeCompare(right.action.ref),\n )\n .slice(0, Math.max(1, Math.min(limit, 100)))\n .map((entry) => entry.action);\n }\n\n async describe(ref: string, context: FabricInvocationContext): Promise<ResolvedFabricAction> {\n context = this.#scopeContext(context);\n if (ref.includes(\".\")) {\n const { provider, actionName, expectedDescriptorHash } = this.#parseRef(\n ref,\n context.capabilityView,\n );\n const resolved = await this.#resolveActionDescriptor(\n provider,\n actionName,\n context,\n context.capabilityView === undefined,\n );\n if (!resolved.action) {\n throw new FabricResolutionError(formatUnknownActionMessage(ref, resolved.suggestions));\n }\n const action = resolved.action;\n if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {\n throw new FabricResolutionError(`Fabric capability descriptor changed: ${ref}`);\n }\n return action;\n }\n if (context.capabilityView) {\n const pinned = await Promise.all(\n this.#viewAuthority(context.capabilityView).bindings().map(binding => binding.ref).map((candidate) =>\n this.describe(candidate, context),\n ),\n );\n const matches = pinned.filter((action) => action.name === ref);\n if (matches.length === 1) return matches[0]!;\n if (matches.length > 1) {\n throw new Error(\n `\"${ref}\" matches ${matches.length} committed Fabric actions; qualify with provider.action: ` +\n matches.map((match) => match.ref).sort().join(\", \"),\n );\n }\n throw new FabricResolutionError(`Unknown Fabric action in committed view: ${ref}`);\n }\n // Bare action names (what typed calls pragmatically use): walk every\n // provider for a unique action-name match.\n const matches: ResolvedFabricAction[] = [];\n const declaredNames: string[] = [];\n for (const provider of this.#providerBindings.providers()) {\n let descriptors: FabricActionDescriptor[];\n try {\n descriptors = await runAbortable(context.signal, () => this.#providerBindings.trackProvider(provider, () => provider.list({}, context)));\n } catch {\n continue;\n }\n for (const descriptor of descriptors) {\n declaredNames.push(descriptor.name);\n if (descriptor.name === ref) matches.push(resolveDescriptor(provider, descriptor));\n }\n }\n if (matches.length === 1) return matches[0]!;\n if (matches.length > 1) {\n throw new Error(\n `\"${ref}\" matches ${matches.length} Fabric actions; qualify with provider.action: ` +\n matches.map((match) => match.ref).sort().join(\", \"),\n );\n }\n const repair = repairActionName(declaredNames, ref);\n throw new FabricResolutionError(formatUnknownActionMessage(ref, repair.suggestions));\n }\n\n async acquireScoped(\n ref: string,\n args: Record<string, unknown>,\n context: FabricInvocationContext & Partial<Pick<FabricRegistryInvocationContext, \"authorize\" | \"approve\">>,\n adopt?: ProviderOperation[\"adopt\"],\n ): Promise<FabricScopedProviderResult> {\n context = this.#scopeContext(context);\n args = snapshotArguments(args);\n const { binding, provider, actionName, expectedDescriptorHash } = this.#parseRef(\n ref,\n context.capabilityView,\n );\n context = this.#bindingContext(binding, context);\n const endInvocation = this.#providerBindings.beginInvocation(binding.id);\n const releaseBinding = this.#providerBindings.retain([binding.id]);\n try {\n const resolved = await this.#resolveActionDescriptor(\n provider,\n actionName,\n context,\n context.capabilityView === undefined,\n );\n if (!resolved.action) {\n throw new FabricResolutionError(formatUnknownActionMessage(ref, resolved.suggestions));\n }\n const action = resolved.action;\n const providerActionName = resolved.repairedFrom === undefined ? actionName : action.name;\n const authority = { ref: action.ref, descriptor: actionDescriptorHash(action) };\n if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {\n throw new FabricResolutionError(`Fabric capability descriptor changed: ${ref}`);\n }\n if (action.effect?.kind !== \"scoped\") {\n throw new Error(`Fabric action is not a scoped acquisition: ${ref}`);\n }\n if (!provider.acquire) {\n throw new Error(`Fabric provider does not implement scoped acquisition: ${provider.name}`);\n }\n // Supervised callers may supply the same policy hooks as invoke. Base\n // contexts remain supported; their host owns authorization/approval.\n if (context.authorize) {\n await runAbortable(context.signal, () => context.authorize!(structuredClone(action)));\n }\n const effectiveSchema = effectiveInputSchema(\n action.ref,\n action.inputSchema,\n ) as Record<string, unknown>;\n const catalogInput = repairCatalogInput(action.ref, effectiveSchema, args);\n const preparedArgs = provider.prepareArguments\n ? await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.prepareArguments!(providerActionName, catalogInput.args, context)),\n )\n : catalogInput.args;\n if (typeof preparedArgs !== \"object\" || preparedArgs === null || Array.isArray(preparedArgs)) {\n throw new Error(`Argument preparation for ${ref} did not return an object`);\n }\n const catalog = validateCatalogArgs(\n action.ref,\n effectiveSchema,\n // Preparation may return provider-held nested references. Detach before\n // validation and never expose this validated snapshot to policy hooks.\n snapshotArguments(preparedArgs),\n catalogInput.observedUnexpected,\n );\n if (catalog.invalid) throw new Error(`Invalid arguments for ${ref}: ${catalog.invalid}`);\n if (context.approve) {\n await runAbortable(context.signal, () => context.approve!(structuredClone(action), snapshotArguments(catalog.args)));\n }\n const acquired = await runAbortable(context.signal, () =>\n this.#runPlanned(binding, providerActionName, authority, \"acquire\", catalog.args, context, undefined, adopt),\n ) as FabricScopedProviderResult;\n throwIfAborted(context.signal);\n if (!acquired || typeof acquired.dispose !== \"function\") {\n throw new Error(`Scoped acquisition ${ref} did not return a disposer`);\n }\n return { value: acquired.value, dispose: acquired.dispose };\n } finally {\n void endInvocation().catch(() => undefined);\n // The interpreter owns the returned resource lease. This temporary hold\n // protects resolution/acquisition only; cancellation must not await close.\n void releaseBinding().catch(() => undefined);\n }\n }\n\n async invoke(\n ref: string,\n args: Record<string, unknown>,\n context: FabricRegistryInvocationContext,\n ): Promise<unknown> {\n context = this.#scopeContext(context);\n args = snapshotArguments(args);\n const traceOperation = context.traceOperation ?? context.trace?.issueCall(ref, snapshotArguments(args));\n let failureStage: \"resolve\" | \"guard\" | \"prepare\" | \"validate\" | \"approve\" | \"invoke\" = \"resolve\";\n let audit: FabricCallAudit | undefined;\n let invocationActive = false;\n let endBindingInvocation: (() => Promise<void>) | undefined;\n try {\n const { binding, provider, actionName, expectedDescriptorHash } = this.#parseRef(\n ref,\n context.capabilityView,\n );\n context = this.#bindingContext(binding, context);\n endBindingInvocation = this.#providerBindings.beginInvocation(binding.id);\n const resolved = await this.#resolveActionDescriptor(\n provider,\n actionName,\n context,\n context.capabilityView === undefined,\n );\n if (!resolved.action) {\n throw new FabricResolutionError(formatUnknownActionMessage(ref, resolved.suggestions));\n }\n const action = resolved.action;\n const providerActionName = resolved.repairedFrom === undefined ? actionName : action.name;\n const authority = { ref: action.ref, descriptor: actionDescriptorHash(action) };\n if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {\n throw new FabricResolutionError(`Fabric capability descriptor changed: ${ref}`);\n }\n traceOperation?.resolved(action.provider, action.name);\n\n failureStage = \"guard\";\n if (action.effect?.kind === \"scoped\") {\n throw new FabricTraceSafeError(\n `Fabric scoped action ${ref} requires a supervised acquisition context`,\n );\n }\n if (context.authorize) {\n await runAbortable(context.signal, () => context.authorize!(structuredClone(action)));\n }\n\n failureStage = \"prepare\";\n const effectiveSchema = effectiveInputSchema(\n action.ref,\n action.inputSchema,\n ) as Record<string, unknown>;\n const catalogInput = repairCatalogInput(action.ref, effectiveSchema, args);\n const preparedArgs = provider.prepareArguments\n ? await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.prepareArguments!(providerActionName, catalogInput.args, context)),\n )\n : catalogInput.args;\n if (typeof preparedArgs !== \"object\" || preparedArgs === null || Array.isArray(preparedArgs)) {\n throw new FabricTraceSafeError(`Argument preparation for ${ref} did not return an object`);\n }\n\n failureStage = \"validate\";\n const catalog = validateCatalogArgs(\n action.ref,\n effectiveSchema,\n // Preparation may return provider-held nested references. Detach before\n // validation and never expose this validated snapshot to policy hooks.\n snapshotArguments(preparedArgs),\n catalogInput.observedUnexpected,\n );\n traceOperation?.prepared(snapshotArguments(catalog.args));\n if (catalog.normalization) traceOperation?.normalized(structuredClone(catalog.normalization));\n // TypeBox validator messages describe schema expectations only \u2014 they\n // never echo argument values \u2014 so they are safe for durable traces.\n if (catalog.invalid) {\n // A validate-rejected attempt is in-domain evidence against the\n // effective surface, but rejected argument values are untrusted\n // input and never enter the durable record. The trace-safe feed\n // persists only values the live schema's own enums declare: for a\n // closed-domain parameter the refused value is already the author's\n // public vocabulary, so the observation pool can carry it and a\n // later reset (base drift or review) re-derives with it included.\n // Values outside the declared enums (typos, payloads) drop here,\n // the same pre-birth rule the derivation applies.\n const declaredSchema = action.inputSchema;\n const declaredProperties =\n typeof declaredSchema === \"object\" &&\n declaredSchema !== null &&\n !Array.isArray(declaredSchema) &&\n typeof (declaredSchema as Record<string, unknown>).properties === \"object\" &&\n (declaredSchema as Record<string, unknown>).properties !== null\n ? ((declaredSchema as Record<string, unknown>).properties as Record<string, unknown>)\n : undefined;\n const attemptArgs: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(catalog.args)) {\n const property = declaredProperties ? declaredProperties[key] : undefined;\n const declaredEnum =\n typeof property === \"object\" && property !== null\n ? (property as Record<string, unknown>).enum\n : undefined;\n if (!Array.isArray(declaredEnum)) continue;\n if (\n typeof value !== \"string\" &&\n typeof value !== \"number\" &&\n typeof value !== \"boolean\"\n ) {\n continue;\n }\n if (String(value).length > MAX_AUDIT_VALUE_CHARS) continue;\n if (!declaredEnum.includes(value)) continue;\n attemptArgs[key] = value;\n }\n if (Object.keys(attemptArgs).length > 0) {\n const attempt: FabricCallAudit = {\n ref,\n nestedToolCallId: `${NESTED_TOOL_CALL_ID_PREFIX}${randomUUID()}`,\n startedAt: Date.now(),\n tool: action.name,\n provider: action.provider,\n args: attemptArgs,\n success: false,\n error: `Invalid arguments for ${ref}: ${catalog.invalid}`,\n endedAt: Date.now(),\n ...(resolved.repairedFrom !== undefined\n ? { repairedFrom: resolved.repairedFrom }\n : {}),\n };\n context.audits.push(attempt);\n }\n throw new FabricTraceSafeError(`Invalid arguments for ${ref}: ${catalog.invalid}`);\n }\n\n failureStage = \"approve\";\n await runAbortable(context.signal, () => context.approve(structuredClone(action), snapshotArguments(catalog.args)));\n\n failureStage = \"invoke\";\n const nestedToolCallId = `${NESTED_TOOL_CALL_ID_PREFIX}${randomUUID()}`;\n const effect = action.effect!;\n const effectConflicts = [...this.#activeEffects.values()].flatMap((active) => {\n const conflict = conflictBetween(effect, active.effect);\n return conflict ? [{ withRef: active.ref, ...conflict }] : [];\n }).slice(0, 32);\n if (effectConflicts.length > 0 && context.effectPolicy === \"strict\") {\n failureStage = \"guard\";\n throw new FabricTraceSafeError(\n `Fabric effect conflict for ${ref}: ${effectConflicts\n .map((conflict) => formatFabricEffectConflict(\n conflict.withRef,\n conflict.resources,\n conflict.reason,\n ))\n .join(\"; \")}`,\n );\n }\n const argsPreview = previewArgs(ref, catalog.args);\n const activeAudit: FabricCallAudit = {\n ref,\n nestedToolCallId,\n startedAt: Date.now(),\n tool: action.name,\n provider: action.provider,\n args: boundedPreviewValue(\n argsPreview,\n MAX_AUDIT_VALUE_CHARS,\n ) as Record<string, unknown>,\n ...(effectConflicts.length > 0 ? { effectConflicts } : {}),\n ...(resolved.repairedFrom !== undefined\n ? { repairedFrom: resolved.repairedFrom }\n : {}),\n };\n audit = activeAudit;\n invocationActive = true;\n context.audits.push(activeAudit);\n context.observeInvocation?.({\n type: \"call_start\",\n callId: nestedToolCallId,\n ref,\n args: argsPreview,\n });\n context.update(`Calling ${ref}`);\n this.#activeEffects.set(nestedToolCallId, { ref, effect });\n let servedFromSpeculation = false;\n let providerValue: unknown;\n let providerInvoked = false;\n try {\n if (this.#speculation && this.#allowsSpeculation(action)) {\n const served = await runAbortable(context.signal, () =>\n this.#speculation!.tryServe(context.parentToolCallId, ref, snapshotArguments(catalog.args), JSON.stringify([binding.id, authority.descriptor, context.capabilityView?.id ?? null, context.scope?.digest ?? null])));\n if (served.hit) {\n providerValue = await runAbortable(context.signal, () => this.#runPlanned(binding, providerActionName, authority, \"replay\", catalog.args, context, served.value));\n servedFromSpeculation = true;\n activeAudit.speculated = true;\n if (served.replay.updatedArgs !== undefined) {\n const replayedPreview = previewArgs(ref, served.replay.updatedArgs);\n activeAudit.args = boundedPreviewValue(\n replayedPreview,\n MAX_AUDIT_VALUE_CHARS,\n ) as Record<string, unknown>;\n traceOperation?.prepared(snapshotArguments(served.replay.updatedArgs));\n context.observeInvocation?.({\n type: \"call_args\",\n callId: nestedToolCallId,\n args: replayedPreview,\n });\n }\n if (served.replay.media?.length) {\n activeAudit.media = [...(activeAudit.media ?? []), ...served.replay.media];\n if (served.replay.mediaNote) activeAudit.mediaNote = served.replay.mediaNote;\n }\n if (served.replay.preview !== undefined) activeAudit.preview = served.replay.preview;\n }\n }\n if (!servedFromSpeculation) {\n providerInvoked = true;\n providerValue = await runAbortable(context.signal, () =>\n this.#runPlanned(binding, providerActionName, authority, \"invoke\", catalog.args, {\n ...context,\n nestedToolCallId,\n update(message) {\n if (!invocationActive) return;\n context.update(message);\n context.observeInvocation?.({\n type: \"call_update\",\n callId: nestedToolCallId,\n update: { type: \"progress\", message },\n });\n },\n activity(update) {\n if (!invocationActive) return;\n context.activity?.(update);\n context.observeInvocation?.({\n type: \"call_update\",\n callId: nestedToolCallId,\n update,\n });\n },\n attachMedia(blocks, note) {\n if (!invocationActive) return;\n if (!activeAudit.media) activeAudit.media = [];\n for (const block of blocks) activeAudit.media.push(block);\n if (note) activeAudit.mediaNote = note;\n },\n updateArguments(updatedArgs) {\n if (!invocationActive) return;\n const updatedPreview = previewArgs(ref, updatedArgs);\n activeAudit.args = boundedPreviewValue(\n updatedPreview,\n MAX_AUDIT_VALUE_CHARS,\n ) as Record<string, unknown>;\n traceOperation?.prepared(snapshotArguments(updatedArgs));\n context.observeInvocation?.({\n type: \"call_args\",\n callId: nestedToolCallId,\n args: updatedPreview,\n });\n },\n attachPreview(preview) {\n if (!invocationActive) return;\n activeAudit.preview = preview;\n },\n }).finally(() => {\n if (effect.kind !== \"none\") this.#speculation?.bumpEpoch();\n this.#activeEffects.delete(nestedToolCallId);\n }),\n );\n }\n } finally {\n if (!providerInvoked) this.#activeEffects.delete(nestedToolCallId);\n }\n const value = this.toolResultProxy\n ? await runAbortable(context.signal, () => this.toolResultProxy!.proxy({\n action,\n args: snapshotArguments(catalog.args),\n toolCallId: nestedToolCallId,\n value: providerValue,\n ...(context.signal ? { signal: context.signal } : {}),\n }))\n : providerValue;\n const bounded = boundedResult(value, context.maxResultChars);\n const resultError = failedResultError(value);\n activeAudit.success = resultError === undefined;\n if (resultError) activeAudit.error = resultError;\n activeAudit.resultChars = bounded.chars;\n activeAudit.resultTruncated = bounded.truncated;\n const resultPreview = previewResult(bounded.value);\n activeAudit.result = boundedPreviewValue(resultPreview, MAX_AUDIT_VALUE_CHARS);\n activeAudit.endedAt = Date.now();\n context.observeInvocation?.({\n type: \"call_end\",\n callId: nestedToolCallId,\n success: resultError === undefined,\n result: resultPreview,\n ...(activeAudit.preview !== undefined ? { preview: activeAudit.preview } : {}),\n ...(resultError ? { error: resultError } : {}),\n });\n if (resultError) {\n traceOperation?.fail(\"invoke\", resultError, failedResultOutcome(value), bounded.value, {\n resultTruncated: bounded.truncated,\n });\n } else {\n traceOperation?.succeed(bounded.value, { resultTruncated: bounded.truncated });\n }\n throwIfAborted(context.signal);\n return bounded.value;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n traceOperation?.fail(failureStage, error, executionOutcomeFromError(error, context.signal));\n if (audit) {\n audit.success = false;\n audit.error = message;\n audit.endedAt = Date.now();\n context.observeInvocation?.({\n type: \"call_end\",\n callId: audit.nestedToolCallId,\n success: false,\n error: audit.error,\n });\n }\n throw error;\n } finally {\n invocationActive = false;\n if (audit) audit.endedAt ??= Date.now();\n void endBindingInvocation?.().catch(() => undefined);\n }\n }\n\n /**\n * Prepare + pre-launch a speculative call discovered in a partially\n * streamed program (see src/speculation). Pure pipeline only: descriptor\n * resolution, the eligibility gate on the resolved action, argument\n * preparation, and schema validation. The compiled entropy surface gates\n * launches too: quarantined refs never pre-launch and overlays validate\n * prepared arguments, so the store never warms a call the serve path\n * would reject. authorize/approve/audits are skipped\n * because the eligibility gate restricts this path to actions that never\n * prompt, and the real call re-runs the full pipeline on a serve miss.\n * Side-channel outputs are captured into `replay` so the serve path can\n * project them into the real audit.\n */\n async speculate(\n ref: string,\n args: Record<string, unknown>,\n context: FabricInvocationContext,\n replay: FabricSpeculationReplay,\n ): Promise<\n | {\n preparedArgs: Record<string, unknown>;\n bindingToken: string;\n execute(signal: AbortSignal | undefined): Promise<unknown>;\n }\n | undefined\n > {\n if (!this.#speculationEligibility) return undefined;\n try {\n context = this.#scopeContext(context);\n args = snapshotArguments(args);\n const { binding, provider, actionName, expectedDescriptorHash } = this.#parseRef(\n ref,\n context.capabilityView,\n );\n context = this.#bindingContext(binding, context);\n const descriptor = await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.describe(actionName, context)));\n if (!descriptor) return undefined;\n const action = resolveDescriptor(provider, descriptor);\n if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) {\n return undefined;\n }\n if (isActiveQuarantine(provider.name, actionName, descriptor.inputSchema)) {\n return undefined;\n }\n const authority = { ref: action.ref, descriptor: actionDescriptorHash(action) };\n if (!this.#allowsSpeculation(action)) return undefined;\n const effectiveSchema = effectiveInputSchema(\n action.ref,\n action.inputSchema,\n ) as Record<string, unknown>;\n const catalogInput = applyActiveArgRepairs(action.ref, args, effectiveSchema);\n const preparedArgs = provider.prepareArguments\n ? await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.prepareArguments!(action.name, catalogInput, context)))\n : catalogInput;\n if (\n typeof preparedArgs !== \"object\" ||\n preparedArgs === null ||\n Array.isArray(preparedArgs)\n ) {\n return undefined;\n }\n const repairedArgs = normalizeActiveArguments(action.ref, effectiveSchema,\n applyActiveArgRepairs(action.ref, snapshotArguments(preparedArgs), effectiveSchema),\n ).args;\n if (validationMessage(effectiveSchema, repairedArgs)) return undefined;\n const nestedToolCallId = `${NESTED_TOOL_CALL_ID_PREFIX}spec-${randomUUID()}`;\n const execute = await this.#preparePlanned(binding, action.name, authority, \"speculate\", repairedArgs, this.#bindingContext(binding, {\n ...context, nestedToolCallId, update() {}, activity() {},\n attachMedia(blocks, note) { replay.media = [...(replay.media ?? []), ...blocks]; if (note) replay.mediaNote = note; },\n updateArguments(updatedArgs) { replay.updatedArgs = updatedArgs; },\n attachPreview(preview) { replay.preview = preview; },\n }));\n return {\n get preparedArgs() { return snapshotArguments(repairedArgs); },\n bindingToken: JSON.stringify([binding.id, authority.descriptor, context.capabilityView?.id ?? null, context.scope?.digest ?? null]),\n execute: async signal => {\n const combined = AbortSignal.any([context.signal!, ...(signal ? [signal] : [])]);\n const actual = execute(combined);\n void actual.catch(() => undefined);\n return runAbortable(combined, () => actual);\n },\n };\n } catch {\n // Speculation degrades silently; the real call runs the full pipeline.\n return undefined;\n }\n }\n\n async endInvocation(parentToolCallId: string, timeoutMs = 1_000): Promise<void> {\n this.#speculation?.onInvocationEnd?.(parentToolCallId);\n const providers = new Set(\n this.#providerBindings.entries().map((binding) => binding.provider),\n );\n const finalizers = [...providers].flatMap((provider) =>\n provider.invocationEnded\n ? [this.#providerBindings.trackProvider(provider, () => provider.invocationEnded!(parentToolCallId), true)]\n : [],\n );\n await settleWithin(finalizers, timeoutMs);\n }\n\n /** Revocation is distinct from rolling withdrawal: pinned old generations may\n * survive retirement, but revoked bindings admit no further work. */\n revokeProvider(name: string): void {\n const binding = this.#providerBindings.current(name);\n if (binding) this.#providerBindings.revoke(binding.id);\n }\n\n providerStatus(): Array<{ name: string; generation: number; state: string; inFlight: number; revoked: boolean; error?: string }> {\n return this.#providerBindings.entries().map(binding => ({ name: binding.name, generation: binding.generation, state: binding.state,\n inFlight: binding.inFlight, revoked: this.#providerBindings.signal(binding.id).aborted,\n ...(binding.closeError ? { error: binding.closeError } : {}) }));\n }\n\n async close(excludedProviderNames: Set<string> = new Set()): Promise<void> {\n this.#shutdown.abort(new Error(\"Fabric registry closed\"));\n try {\n if (this.#operations) await (await this.#operations).close();\n } finally {\n await this.#providerBindings.close(excludedProviderNames);\n }\n }\n\n\n async #resolveCapabilities(\n requirements: readonly (string | FabricCapabilityRequirement)[],\n context: FabricInvocationContext,\n retain: boolean,\n ): Promise<FabricCapabilityViewLease> {\n context = this.#scopeContext(context);\n const normalized = new Map<string, boolean>();\n for (const requirement of requirements) {\n const ref = (typeof requirement === \"string\" ? requirement : requirement.ref).trim();\n if (!ref || ref.length > 256 || !ref.includes(\".\")) {\n throw new Error(`Fabric capability requirements must use provider.action: ${ref || \"<empty>\"}`);\n }\n const optional = typeof requirement === \"string\" ? false : requirement.optional === true;\n normalized.set(ref, (normalized.get(ref) ?? true) && optional);\n }\n\n const missing: string[] = [];\n const optionalMissing: string[] = [];\n const resolved = new Map<string, FabricCapabilityBindingView>();\n const temporaryReleases: Array<() => Promise<void>> = [];\n let permanentRelease: (() => Promise<void>) | undefined;\n try {\n for (const [ref, optional] of [...normalized].sort(([left], [right]) =>\n left.localeCompare(right),\n )) {\n try {\n const { binding, provider, actionName, expectedDescriptorHash } = this.#parseRef(ref, context.capabilityView);\n const release = this.#providerBindings.retain([binding.id]);\n temporaryReleases.push(release);\n const descriptor = await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.describe(actionName, context)),\n );\n if (!descriptor) throw new FabricResolutionError(`Unknown Fabric action: ${ref}`);\n const action = resolveDescriptor(provider, descriptor);\n if (expectedDescriptorHash && actionDescriptorHash(action) !== expectedDescriptorHash) throw new FabricResolutionError(`Committed capability drifted: ${ref}`);\n resolved.set(ref, {\n ref,\n provider: provider.name,\n providerBindingId: binding.id,\n generation: binding.generation,\n descriptorHash: actionDescriptorHash(action),\n });\n } catch (error) {\n if (!(error instanceof FabricResolutionError)) throw error;\n (optional ? optionalMissing : missing).push(ref);\n }\n }\n\n let view: FabricCommittedCapabilityView | undefined;\n if (missing.length === 0) {\n // Resolution awaited provider code: recheck the parent immediately\n // before deriving, even for an empty/optional-only child. Never derive\n // from the public view's presentation fields.\n throwIfAborted(context.signal);\n const values = [...resolved.values()];\n const authority = context.capabilityView\n ? this.#viewAuthority(context.capabilityView).derive(values)\n : CapabilityAuthority.issue(values);\n if (!authority.active) throw new FabricResolutionError(\"Fabric capability view is unissued, released, or revoked\");\n const bindings = Object.fromEntries(authority.bindings().map(value => [value.ref, value]));\n if (retain) permanentRelease = this.#providerBindings.retain(\n values.map((binding) => binding.providerBindingId),\n );\n for (const value of Object.values(bindings)) Object.freeze(value);\n view = Object.freeze({\n id: randomUUID(),\n digest: descriptorHash(values),\n semanticDigest: descriptorHash(\n values.map(({ ref, provider, descriptorHash: hash }) => ({\n ref,\n provider,\n descriptorHash: hash,\n })),\n ),\n bindings: Object.freeze(bindings),\n });\n const controller = new AbortController();\n const parent = context.capabilityView ? this.#requireView(context.capabilityView) : undefined;\n const signal = AbortSignal.any([this.#shutdown.signal, controller.signal, ...(parent ? [parent] : [])]);\n this.#views.set(view, { controller, signal, authority });\n const revoked = () => {\n authority.release();\n const release = permanentRelease;\n permanentRelease = undefined;\n void release?.().catch(() => undefined);\n };\n signal.addEventListener(\"abort\", revoked, { once: true });\n if (signal.aborted) revoked();\n }\n return {\n satisfied: missing.length === 0,\n missing,\n optionalMissing,\n ...(view ? { view } : {}),\n release: async () => {\n const release = permanentRelease;\n permanentRelease = undefined;\n if (view) this.#views.get(view)?.controller.abort(new Error(\"Fabric capability view released\"));\n await release?.();\n },\n };\n } finally {\n await Promise.allSettled(temporaryReleases.map((release) => release()));\n }\n }\n\n async #declaredActionNames(\n provider: FabricProvider,\n context: FabricInvocationContext,\n ): Promise<string[]> {\n try {\n const descriptors = await runAbortable(context.signal, () => this.#providerBindings.trackProvider(provider, () => provider.list({}, context)));\n return descriptors.map((descriptor) => descriptor.name);\n } catch {\n return [];\n }\n }\n\n // Resolve a provider action descriptor, repairing a near-miss action name\n // (mirroring arg-normalization's prepare-stage argument repair) when the\n // caller is not pinned to a committed capability view. Committed views are\n // exact contracts: a pinned miss keeps the plain resolution error.\n async #resolveActionDescriptor(\n provider: FabricProvider,\n actionName: string,\n context: FabricInvocationContext,\n allowRepair: boolean,\n ): Promise<{ action?: ResolvedFabricAction; suggestions: string[]; repairedFrom?: string }> {\n const descriptor = await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.describe(actionName, context)),\n );\n // A quarantined ref resolves as unknown: the model-facing catalog never\n // shows it, and a direct call gets the standard not-found message with\n // suggestions, exactly like any retired action.\n if (descriptor && !isActiveQuarantine(provider.name, actionName, descriptor.inputSchema)) {\n return {\n action: resolveDescriptor(provider, descriptor),\n suggestions: [],\n ...(descriptor.name !== actionName ? { repairedFrom: actionName } : {}),\n };\n }\n if (!allowRepair) return { suggestions: [] };\n const declared = (await this.#declaredActionNames(provider, context)).filter(\n (name) => !activeQuarantinedRefNames().has(`${provider.name}.${name}`),\n );\n const catalogName = applyActiveActionName(provider.name, actionName, declared);\n if (catalogName !== actionName) {\n const catalogDescriptor = await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.describe(catalogName, context)),\n );\n if (catalogDescriptor) {\n return {\n action: resolveDescriptor(provider, catalogDescriptor),\n suggestions: [],\n repairedFrom: actionName,\n };\n }\n }\n const repair = repairActionName(declared, actionName);\n const compiler = getActiveRepairCompiler();\n if (repair.repaired !== undefined) {\n compiler?.observeUnknownAction(provider.name, actionName, declared, {\n countError: false,\n });\n const repairedDescriptor = await runAbortable(context.signal, () =>\n this.#providerBindings.trackProvider(provider, () => provider.describe(repair.repaired!, context)),\n );\n if (repairedDescriptor) {\n return {\n action: resolveDescriptor(provider, repairedDescriptor),\n suggestions: [],\n repairedFrom: actionName,\n };\n }\n compiler?.recordInvocationError();\n } else {\n compiler?.observeUnknownAction(provider.name, actionName, declared);\n }\n return {\n suggestions: repair.suggestions.map((name) => `${provider.name}.${name}`),\n };\n }\n\n #parseRef(\n ref: string,\n view?: FabricCommittedCapabilityView,\n ): {\n binding: FabricProviderBinding;\n provider: FabricProvider;\n actionName: string;\n expectedDescriptorHash?: string;\n } {\n if (view) this.#requireView(view);\n const separator = ref.indexOf(\".\");\n if (separator <= 0 || separator === ref.length - 1) {\n throw new Error(`Fabric action references must use provider.action: ${ref}`);\n }\n const providerName = ref.slice(0, separator);\n const pinned = view ? this.#viewAuthority(view).resolve(ref) : undefined;\n if (view && !pinned) {\n throw new FabricResolutionError(`Fabric capability is outside the committed view: ${ref}`);\n }\n const binding = pinned\n ? this.#providerBindings.binding(pinned.providerBindingId)\n : this.#providerBindings.current(providerName);\n if (!binding || binding.name !== providerName || (pinned && (pinned.generation !== binding.generation || pinned.provider !== providerName || pinned.ref !== ref))) {\n if (pinned) {\n throw new FabricResolutionError(\n `Fabric capability binding is no longer available: ${ref} (${pinned.providerBindingId})`,\n );\n }\n this.#requireProvider(providerName);\n throw new FabricResolutionError(`Unknown Fabric provider: ${providerName}`);\n }\n return {\n binding,\n provider: binding.provider,\n actionName: ref.slice(separator + 1),\n ...(pinned ? { expectedDescriptorHash: pinned.descriptorHash } : {}),\n };\n }\n\n #requireView(view: FabricCommittedCapabilityView): AbortSignal {\n const owned = this.#views.get(view);\n if (!owned || owned.signal.aborted || !owned.authority.active) throw new FabricResolutionError(\"Fabric capability view is unissued, released, or revoked\");\n return owned.signal;\n }\n\n #viewAuthority(view: FabricCommittedCapabilityView): CapabilityAuthority {\n this.#requireView(view);\n return this.#views.get(view)!.authority;\n }\n\n #scopeContext<T extends FabricInvocationContext>(context: T): T {\n const view = context.capabilityView ? this.#requireView(context.capabilityView) : undefined;\n throwIfAborted(context.signal);\n if (this.#shutdown.signal.aborted) throw new FabricResolutionError(\"Fabric registry is closed\");\n // Host-issued scope (src/scope.ts) replaces any caller value; failed issuance refuses every call.\n const issued = (globalThis as Record<symbol, { scope?: FabricScope; error?: string } | undefined>)[SCOPE_HOLDER];\n if (issued?.error) throw new FabricResolutionError(`Fabric scope issuance failed; provider calls are refused: ${issued.error}`);\n const scoped = { ...context, signal: AbortSignal.any([this.#shutdown.signal, ...(context.signal ? [context.signal] : []), ...(view ? [view] : [])]) };\n if (issued?.scope) scoped.scope = issued.scope;\n else delete scoped.scope;\n return scoped;\n }\n\n #bindingContext<T extends FabricInvocationContext>(binding: FabricProviderBinding, context: T): T {\n return { ...context, signal: AbortSignal.any([this.#providerBindings.signal(binding.id), ...(context.signal ? [context.signal] : [])]) };\n }\n\n async #preparePlanned(binding: FabricProviderBinding, actionName: string, authority: { ref: string; descriptor: string }, mode: ProviderOperation[\"mode\"], args: Record<string, unknown>, context: FabricInvocationContext, replayValue?: unknown, adopt?: ProviderOperation[\"adopt\"]): Promise<(signal?: AbortSignal) => Promise<unknown>> {\n const payload = snapshotArguments(args);\n this.#operations ??= import(\"./provider-operations.js\").then(({ ProviderOperations }) => new ProviderOperations(this.#providerBindings));\n return (await this.#operations).prepare({ binding, action: actionName, ...authority, mode, args: payload, context, replayValue, ...(adopt ? { adopt } : {}),\n observe: async observedContext => {\n const descriptor = await binding.provider.describe(actionName, observedContext);\n if (!descriptor) return { ref: \"\", descriptor: \"\" };\n const action = resolveDescriptor(binding.provider, descriptor);\n return { ref: action.ref, descriptor: actionDescriptorHash(action) };\n },\n });\n }\n\n #runPlanned(binding: FabricProviderBinding, actionName: string, authority: { ref: string; descriptor: string }, mode: ProviderOperation[\"mode\"], args: Record<string, unknown>, context: FabricInvocationContext, replayValue?: unknown, adopt?: ProviderOperation[\"adopt\"]): Promise<unknown> {\n return this.#providerBindings.track(binding.id, async () => {\n const execute = await this.#preparePlanned(binding, actionName, authority, mode, args, context, replayValue, adopt);\n return execute();\n });\n }\n\n #requireProvider(name: string): FabricProvider {\n const provider = this.#providerBindings.current(name)?.provider;\n if (provider) return provider;\n const unavailableReason = this.#unavailable.get(name) ?? this.#unavailableResolver?.(name);\n if (unavailableReason) {\n throw new FabricResolutionError(\n `Fabric provider \"${name}\" is unavailable: ${unavailableReason}`,\n );\n }\n const registered = this.#providerBindings.providers()\n .map((provider) => provider.name)\n .sort((left, right) => left.localeCompare(right));\n throw new FabricResolutionError(\n `Unknown Fabric provider: ${name}` +\n (registered.length > 0 ? ` (registered providers: ${registered.join(\", \")})` : \"\"),\n );\n }\n}\n", "import { unknownConflict, knownConflict } from \"../verified/policy.js\";\nimport { boundedEffectResources, encodeResourceEffects, resourceGroups } from \"../verified/resources.js\";\nimport type { ResolvedFabricAction } from \"../core/action-registry.js\";\nimport type {\n FabricComponentEffectConflict,\n FabricComponentEffectInfo,\n FabricComponentEffectOptions,\n FabricComponentEffectRegistration,\n} from \"./types.js\";\n\nexport class FabricComponentIndependenceError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"FabricComponentIndependenceError\";\n }\n}\n\nconst normalizeResources = boundedEffectResources;\n\nexport const trackedRegistration = (\n registration: FabricComponentEffectRegistration | undefined,\n fallbackLabel: string,\n): FabricComponentEffectOptions => {\n if (typeof registration === \"string\") return { label: registration };\n return { label: fallbackLabel, ...registration };\n};\n\nexport const registrationEffect = (\n registration: FabricComponentEffectOptions,\n): FabricComponentEffectInfo => ({\n label: registration.label?.trim().slice(0, 256) || \"anonymous\",\n kind: registration.kind ?? \"transactional\",\n resources: normalizeResources(registration.resources),\n ordering: registration.ordering ?? \"unknown\",\n});\n\nexport const actionEffect = (\n action: ResolvedFabricAction,\n): FabricComponentEffectInfo | undefined => {\n if (!action.effect || action.effect.kind === \"none\") return undefined;\n return {\n label: action.ref,\n kind: action.effect.kind,\n resources: normalizeResources(action.effect.resources),\n ordering: action.effect.ordering ?? \"unknown\",\n };\n};\n\ninterface FabricComponentEffectSummary {\n declarations: ReturnType<typeof encodeResourceEffects>;\n hasEffects: boolean;\n hasNoncommutative: boolean;\n hasUnknown: boolean;\n hasUnknownNoncommutative: boolean;\n resourceNoncommutative: Map<string, boolean>;\n}\n\ntype FabricComponentConflictBasis = Omit<FabricComponentEffectConflict, \"withComponent\">;\n\nexport const summarizeEffects = (\n effects: readonly FabricComponentEffectInfo[],\n): FabricComponentEffectSummary => {\n const resourceNoncommutative = new Map<string, boolean>();\n let hasNoncommutative = false;\n let hasUnknown = false;\n let hasUnknownNoncommutative = false;\n let effectful = 0;\n for (const effect of effects) {\n if (effect.kind === \"none\") continue;\n effectful++;\n const noncommutative = effect.ordering !== \"commutative\";\n hasNoncommutative ||= noncommutative;\n for (const resource of effect.resources) {\n if (resource === \"*\") {\n hasUnknown = true;\n hasUnknownNoncommutative ||= noncommutative;\n } else {\n resourceNoncommutative.set(\n resource,\n (resourceNoncommutative.get(resource) ?? false) || noncommutative,\n );\n }\n }\n }\n return {\n declarations: encodeResourceEffects(effects),\n hasEffects: effectful > 0,\n hasNoncommutative,\n hasUnknown,\n hasUnknownNoncommutative,\n resourceNoncommutative,\n };\n};\n\nexport const effectConflictsBetween = (\n left: FabricComponentEffectSummary,\n right: FabricComponentEffectSummary,\n): FabricComponentConflictBasis[] => {\n // Only the compiled full-declaration decision can grant independence.\n // The summaries below explain a conflict; they cannot erase one.\n if (!resourceGroups(left.declarations, right.declarations)) return [];\n const conflicts: FabricComponentConflictBasis[] = [];\n if (\n unknownConflict(\n left.hasUnknown, left.hasUnknownNoncommutative, left.hasNoncommutative,\n right.hasUnknown, right.hasUnknownNoncommutative, right.hasNoncommutative,\n )\n ) {\n conflicts.push({ resources: [\"*\"], reason: \"unknown_resource\" });\n }\n const overlap = [...left.resourceNoncommutative.keys()]\n .filter((resource) =>\n knownConflict(\n right.resourceNoncommutative.has(resource),\n left.resourceNoncommutative.get(resource) ?? false,\n right.resourceNoncommutative.get(resource) ?? false,\n ),\n )\n .sort();\n if (overlap.length > 0) {\n conflicts.push({ resources: overlap, reason: \"shared_resource\" });\n }\n return conflicts.length > 0 ? conflicts : [{ resources: [\"*\"], reason: \"unknown_resource\" }];\n};\n\nexport const compareEffectInfo = (\n left: FabricComponentEffectInfo,\n right: FabricComponentEffectInfo,\n): number =>\n left.label.localeCompare(right.label) ||\n left.kind.localeCompare(right.kind) ||\n left.ordering.localeCompare(right.ordering) ||\n left.resources.join(\"\\0\").localeCompare(right.resources.join(\"\\0\"));\n\n", "// Action-name repair for Fabric registry resolution, mirroring the\n// argument-shape repair architecture in src/providers/arg-normalization.ts:\n//\n// 1. The registry resolve stage canonicalizes near-miss action spellings\n// (memory.search \u2192 memory.recall) before the provider descriptor is\n// demanded. The repair surface is mostly derived from the provider's\n// declared action names rather than maintained by hand. Exact casing and\n// separator forms and unique authored synonyms authorize repair; plural,\n// prefix, token-alignment, and edit-distance matches only suggest names.\n// 2. The resolution failure tier owns the didactic failure: ambiguous or\n// unmatched names fail with the closest declared candidates named, and\n// the original \"Unknown Fabric action\" prefix is preserved.\n//\n// As with KEY_SYNONYM_CLASSES in arg-normalization, only genuinely semantic\n// verb synonyms need explicit vocabulary, and a spilled name repairs only\n// when exactly one declared member fits: ambiguity (or absence) leaves the\n// name untouched so the failure tier can enumerate the honest choices.\n\ninterface ActionNameRepair {\n /** Canonical declared action name when exactly one candidate fits. */\n repaired?: string;\n /** Ranked declared candidates for the didactic failure message. */\n suggestions: string[];\n}\n\n// Verb/concept classes shared across the stable providers. Each class mixes\n// plausible spilled verbs with the canonical names providers actually\n// declare, so e.g. \"search\" repairs to memory.recall (sole recall-class\n// member declared by memory) while \"fetch\" on mesh stays ambiguous between\n// mesh.get and mesh.read. A class only fires when exactly one member is\n// declared by the target provider's catalog.\nconst ACTION_SYNONYM_CLASSES: ReadonlyArray<ReadonlyArray<string>> = [\n // memory.recall and its spilled search verbs.\n [\"recall\", \"search\", \"find\", \"query\", \"lookup\", \"grep\", \"scan\", \"locate\"],\n // memory.expand / read-one-entry verbs.\n [\"expand\", \"get\", \"read\", \"fetch\", \"load\", \"view\", \"show\"],\n // memory.sessions and list-style catalog reads.\n [\"sessions\", \"list\", \"ls\", \"enumerate\", \"index\"],\n // state.transition / mesh.put write verbs.\n [\"transition\", \"write\", \"put\", \"set\", \"save\", \"update\", \"store\", \"upsert\", \"append\", \"post\"],\n // agents.create family.\n [\"create\", \"spawn\", \"new\", \"add\", \"make\", \"register\"],\n // mesh.publish family (\"post\" deliberately also sits in the write class,\n // so mesh.post stays ambiguous between publish and put).\n [\"publish\", \"send\", \"emit\", \"notify\"],\n // teardown verbs.\n [\"delete\", \"remove\", \"rm\", \"destroy\", \"drop\", \"clear\"],\n // components.reload family.\n [\"reload\", \"restart\", \"refresh\", \"rebuild\", \"reboot\"],\n // status/introspection reads (\"get\" is deliberately shared with the\n // expand class: memory.get expands an entry, components.get is status).\n [\"status\", \"info\", \"inspect\", \"health\", \"describe\", \"get\"],\n // execution verbs.\n [\"run\", \"execute\", \"exec\", \"invoke\", \"call\", \"start\", \"go\"],\n // cancellation verbs.\n [\"cancel\", \"abort\", \"stop\", \"kill\", \"terminate\"],\n // verification verbs.\n [\"verify\", \"check\", \"validate\", \"assert\", \"confirm\", \"certify\"],\n // timeline reads.\n [\"history\", \"log\", \"journal\", \"events\", \"timeline\", \"transitions\"],\n // subscription verbs.\n [\"subscribe\", \"watch\", \"listen\", \"observe\", \"follow\"],\n // compact.request family.\n [\"request\", \"begin\", \"initiate\", \"trigger\", \"schedule\"],\n // schema.commit family.\n [\"commit\", \"apply\", \"finalize\"],\n // agents messaging pair (both declare, so spilled verbs here stay\n // ambiguous and the failure tier enumerates ask vs tell).\n [\"ask\", \"tell\", \"say\", \"chat\"],\n];\n\n// Casing/spacing/underscore/dollar-insensitive action form, mirroring\n// normalizeForm in arg-normalization: \"$servers\" and \"servers\" share a form.\nconst normalizeActionForm = (name: string): string =>\n name.toLowerCase().replace(/[^a-z0-9]/g, \"\");\n\nconst ACTION_CLASS_FORMS = ACTION_SYNONYM_CLASSES.map((cls) =>\n new Set(cls.map(normalizeActionForm)),\n);\n\nconst camelTokens = (name: string): string[] =>\n name\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/([A-Z]+)([A-Z][a-z])/g, \"$1 $2\")\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .filter((token) => token.length > 0);\n\n// Singular/plural near-misses collapse to one form, mirroring the derived\n// plural handling of declared schema keys in arg-normalization.\nconst singularActionForm = (form: string): string =>\n form.length > 3 && form.endsWith(\"s\") ? form.slice(0, -1) : form;\n\nconst levenshtein = (left: string, right: string): number => {\n if (left === right) return 0;\n if (left.length === 0) return right.length;\n if (right.length === 0) return left.length;\n let previous = new Array<number>(right.length + 1);\n let current = new Array<number>(right.length + 1);\n for (let j = 0; j <= right.length; j++) previous[j] = j;\n for (let i = 1; i <= left.length; i++) {\n current[0] = i;\n for (let j = 1; j <= right.length; j++) {\n current[j] = Math.min(\n previous[j]! + 1,\n current[j - 1]! + 1,\n previous[j - 1]! + (left[i - 1] === right[j - 1] ? 0 : 1),\n );\n }\n const swap = previous;\n previous = current;\n current = swap;\n }\n return previous[right.length]!;\n};\n\n// Edit-distance budget scales with the spilled length; short names keep a\n// tight budget so \"get\" never quietly becomes \"set\".\nconst editThreshold = (form: string): number =>\n form.length <= 4 ? 1 : Math.max(2, Math.floor(form.length / 4));\n\nconst tokenAligned = (spilled: string[], declared: string[]): boolean => {\n if (spilled.length === 0 || spilled.length !== declared.length) return false;\n return spilled.every((token, index) => {\n const other = declared[index]!;\n if (token === other) return true;\n return token.length >= 3 && other.length >= 3 &&\n (token.startsWith(other) || other.startsWith(token));\n });\n};\n\nconst sortNames = (names: readonly string[]): string[] =>\n [...new Set(names)].sort((left, right) => left.localeCompare(right));\n\ninterface CatalogForm {\n name: string;\n form: string;\n singular: string;\n tokens: string[];\n}\n\n// Catalog identity is weakly held; validate its contents so mutable provider\n// registrations cannot retain stale names, ambiguity, or authorization targets.\ninterface CatalogSnapshot {\n forms: CatalogForm[];\n repairs: Map<string, ActionNameRepair>;\n}\n\nconst catalogCache = new WeakMap<readonly string[], CatalogSnapshot>();\nconst catalogSnapshot = (declared: readonly string[]): CatalogSnapshot => {\n const cached = catalogCache.get(declared);\n if (cached?.forms.length === declared.length && cached.forms.every((entry, index) => entry.name === declared[index])) {\n return cached;\n }\n const forms = declared.map((name) => {\n const form = normalizeActionForm(name);\n return { name, form, singular: singularActionForm(form), tokens: camelTokens(name) };\n });\n const snapshot = { forms, repairs: new Map<string, ActionNameRepair>() };\n catalogCache.set(declared, snapshot);\n return snapshot;\n};\n\n/**\n * Repair a spilled action name against the provider's declared names.\n * Returns the canonical name when exactly one declared candidate fits, or\n * ranked suggestions for the didactic failure message.\n */\nconst computeActionRepair = (\n catalog: readonly CatalogForm[],\n actionName: string,\n): ActionNameRepair => {\n const spilledForm = normalizeActionForm(actionName);\n if (spilledForm.length === 0) return { suggestions: [] };\n if (catalog.some((entry) => entry.name === actionName)) return { suggestions: [] };\n const forms = [...new Map(catalog.map((entry) => [entry.name, entry])).values()];\n\n // Exact case/separator forms prove identity before semantic aliases.\n const exact = forms.filter((entry) => entry.form === spilledForm).map((entry) => entry.name);\n if (exact.length === 1) return { repaired: exact[0]!, suggestions: exact };\n if (exact.length > 1) return { suggestions: sortNames(exact) };\n if (forms.length === 0) return { suggestions: [] };\n\n // Tier 1 \u2014 semantic verb classes: the spilled verb belongs to a shared\n // synonym class; repair only when exactly one class member is declared.\n const classCandidates = sortNames(ACTION_CLASS_FORMS\n .filter((classForms) => classForms.has(spilledForm))\n .flatMap((classForms) =>\n forms.filter((entry) => classForms.has(entry.form)).map((entry) => entry.name)\n ));\n if (classCandidates.length === 1) {\n return { repaired: classCandidates[0]!, suggestions: [classCandidates[0]!] };\n }\n if (classCandidates.length > 1) {\n return { suggestions: sortNames(classCandidates) };\n }\n\n // Similarity is only didactic evidence, even with a unique candidate.\n // Singular/plural, token alignment, and prefixes never authorize repair.\n const spilledTokens = camelTokens(actionName);\n const spilledSingular = singularActionForm(spilledForm);\n const derived: string[] = [];\n for (const entry of forms) {\n if (\n entry.form === spilledForm ||\n entry.singular === spilledSingular ||\n (spilledTokens.length > 0 && tokenAligned(spilledTokens, entry.tokens)) ||\n (spilledForm.length >= 4 && entry.form.startsWith(spilledForm))\n ) {\n derived.push(entry.name);\n }\n }\n if (derived.length > 0) return { suggestions: sortNames(derived) };\n\n // Bounded edit distance ranks suggestions, never semantic proof.\n const distances = forms.map((entry) => ({\n name: entry.name,\n distance: levenshtein(spilledForm, entry.form),\n }));\n const min = Math.min(...distances.map((entry) => entry.distance));\n const threshold = editThreshold(spilledForm);\n if (min <= threshold) {\n const nearest = sortNames(\n distances.filter((entry) => entry.distance === min).map((entry) => entry.name),\n );\n return { suggestions: nearest };\n }\n\n // Failure tier \u2014 rank a few close names so the error teaches the catalog.\n const suggestions = distances\n .filter((entry) => entry.distance <= Math.max(3, Math.floor(spilledForm.length / 2)))\n .sort((left, right) =>\n left.distance - right.distance || left.name.localeCompare(right.name)\n )\n .slice(0, 3)\n .map((entry) => entry.name);\n return { suggestions: sortNames(suggestions) };\n};\n\n// Bound memoized near-misses per live catalogue. Every call revalidates the\n// names above, so replacement/removal invalidates repairs as well as forms.\nexport const repairActionName = (declared: readonly string[], actionName: string): ActionNameRepair => {\n const catalog = catalogSnapshot(declared);\n let result = catalog.repairs.get(actionName);\n if (!result) {\n result = computeActionRepair(catalog.forms, actionName);\n if (actionName.length <= 512) {\n if (catalog.repairs.size >= 128) catalog.repairs.delete(catalog.repairs.keys().next().value!);\n catalog.repairs.set(actionName, result);\n }\n }\n // Callers own suggestions; never expose mutable cached values.\n return { ...result, suggestions: [...result.suggestions] };\n};\n\n/**\n * The didactic unknown-action failure message. The original\n * \"Unknown Fabric action: <ref>\" prefix is preserved verbatim; declared\n * candidates are appended only when repair found close misses.\n */\nexport const formatUnknownActionMessage = (\n ref: string,\n suggestions: readonly string[],\n): string =>\n suggestions.length > 0\n ? `Unknown Fabric action: ${ref} (did you mean: ${suggestions.slice(0, 3).join(\", \")}?)`\n : `Unknown Fabric action: ${ref}`;\n", "import { randomUUID } from \"node:crypto\";\nimport { settleWithin } from \"../async-settlement.js\";\nimport { BEND_NAT_MAX } from \"../verified/nat.js\";\nimport { consume } from \"../verified/policy.js\";\nimport { bindingStep, type BindingLife, type BindingEvent, type BindingOutcome } from \"../verified/generated/lifecycle-kernel.js\";\nimport type { FabricComponentProviderLease } from \"../components/types.js\";\nimport type { FabricProvider } from \"../protocol.js\";\n\ntype FabricProviderBindingState = \"staged\" | \"active\" | \"retiring\" | \"closed\";\n\nexport interface FabricProviderBinding {\n id: string;\n name: string;\n generation: number;\n provider: FabricProvider;\n state: FabricProviderBindingState;\n ownerRetained: boolean;\n allowReplace: boolean;\n retainers: number;\n inFlight: number;\n closeTask?: Promise<void>;\n closeError?: string;\n unsubscribeCatalog?: () => void;\n}\n\nexport type FabricProviderBindingEvent =\n | { type: \"staged\" | \"activated\" | \"retiring\" | \"closed\"; binding: FabricProviderBinding }\n | { type: \"catalog\"; provider: string };\n\nconst snapshot = (binding: FabricProviderBinding): FabricProviderBinding => ({\n ...binding,\n ...(binding.closeTask ? { closeTask: binding.closeTask } : {}),\n});\n\nconst useOnce = (): (() => boolean) => {\n let active = true;\n return () => {\n const next = consume(active);\n active = next.snd;\n return next.fst;\n };\n};\n\nexport class FabricProviderBindings {\n readonly #lifecycles = new Map<string, BindingLife>();\n readonly #current = new Map<string, FabricProviderBinding>();\n readonly #staged = new Map<string, FabricProviderBinding>();\n readonly #all = new Map<string, FabricProviderBinding>();\n readonly #generations = new Map<string, number>();\n readonly #pending = new Set<Promise<unknown>>();\n readonly #excluded = new Set<string>();\n readonly #signals = new Map<string, AbortController>();\n readonly #listeners = new Set<(event: FabricProviderBindingEvent) => void>();\n\n subscribe(listener: (event: FabricProviderBindingEvent) => void): () => void {\n this.#listeners.add(listener);\n return () => this.#listeners.delete(listener);\n }\n\n current(name: string): FabricProviderBinding | undefined {\n return this.#current.get(name);\n }\n\n binding(id: string): FabricProviderBinding | undefined {\n const binding = this.#all.get(id);\n const life = this.#lifecycles.get(id);\n return binding && life && bindingStep(life, { $: \"Inspect\" }).command.$ === \"Granted\" ? binding : undefined;\n }\n\n has(name: string): boolean {\n return this.#current.has(name);\n }\n\n providers(): FabricProvider[] {\n return [...this.#current.values()].map((binding) => binding.provider);\n }\n\n entries(): FabricProviderBinding[] {\n return [...this.#all.values()].filter((binding) => binding.state !== \"closed\");\n }\n\n mount(\n provider: FabricProvider,\n options: { overwrite?: boolean; staged?: boolean } = {},\n ): FabricComponentProviderLease {\n // A host-owned (excluded) generation never reaches provider.close(), so\n // its instance may be remounted while that generation finishes closing.\n if ([...this.#all.values()].some(binding =>\n binding.provider === provider && binding.closeTask && !this.#excluded.has(binding.id))) {\n throw new Error(\"Cannot mount a provider instance whose close has begun\");\n }\n const current = this.#current.get(provider.name);\n const staged = this.#staged.get(provider.name);\n if ((current || staged) && !options.overwrite) {\n throw new Error(`Fabric provider already registered: ${provider.name}`);\n }\n if (staged && options.overwrite) this.retire(staged.id);\n const generation = (this.#generations.get(provider.name) ?? 0) + 1;\n if (!Number.isSafeInteger(generation)) throw new Error(\"Provider generation overflow\");\n this.#generations.set(provider.name, generation);\n const binding: FabricProviderBinding = {\n id: randomUUID(),\n name: provider.name,\n generation,\n provider,\n state: options.staged ? \"staged\" : \"active\",\n ownerRetained: true,\n allowReplace: options.overwrite === true,\n retainers: 0,\n inFlight: 0,\n };\n if (provider.subscribeCatalog) {\n binding.unsubscribeCatalog = provider.subscribeCatalog(() =>\n this.notifyCatalogChanged(provider.name),\n );\n }\n this.#all.set(binding.id, binding);\n this.#lifecycles.set(binding.id, { $: \"Life\", phase: { $: options.staged ? \"Staged\" : \"Active\" }, owner: true, holds: 0n, calls: 0n, revoked: false });\n this.#signals.set(binding.id, new AbortController());\n if (options.staged) {\n this.#staged.set(binding.name, binding);\n this.#emit({ type: \"staged\", binding: snapshot(binding) });\n } else {\n const replaced = this.#activateOne(binding);\n if (replaced && options.overwrite) void this.releaseOwner(replaced.id).catch(() => undefined);\n }\n\n const takeRelease = useOnce();\n return {\n bindingId: binding.id,\n name: binding.name,\n generation: binding.generation,\n get active() {\n return binding.state === \"active\";\n },\n retire: () => this.retire(binding.id),\n release: async () => {\n if (!takeRelease()) return binding.closeTask;\n return this.releaseOwner(binding.id);\n },\n };\n }\n\n activate(bindingIds: readonly string[]): string[] {\n const bindings = bindingIds.map((id) => {\n const binding = this.#all.get(id);\n if (!binding || binding.state === \"closed\" || binding.closeTask) {\n throw new Error(`Unknown Fabric provider binding: ${id}`);\n }\n if (binding.state !== \"staged\" && binding.state !== \"active\") {\n throw new Error(`Fabric provider binding is ${binding.state}: ${binding.name}`);\n }\n return binding;\n });\n const names = new Set<string>();\n for (const binding of bindings) {\n if (names.has(binding.name)) {\n throw new Error(`Cannot activate multiple Fabric bindings for provider ${binding.name}`);\n }\n names.add(binding.name);\n const current = this.#current.get(binding.name);\n if (current && current.id !== binding.id && !binding.allowReplace) {\n throw new Error(`Fabric provider already registered: ${binding.name}`);\n }\n }\n const replaced: string[] = [];\n for (const binding of bindings) {\n const previous = this.#activateOne(binding);\n if (previous && previous.id !== binding.id) {\n replaced.push(previous.id);\n if (binding.allowReplace) void this.releaseOwner(previous.id).catch(() => undefined);\n }\n }\n return replaced;\n }\n\n /** Withdraw the current binding: retire it and drop its owner hold, so\n * retained generations drain under the normal lifecycle rules. `provider`\n * and `generation` (number = generation, string = binding id) pin the target;\n * a mismatch withdraws nothing. `keepProviderOpen` skips provider.close() for\n * host-owned instances. */\n unregister(\n name: string,\n options: { provider?: FabricProvider; generation?: number | string; keepProviderOpen?: boolean } = {},\n ): FabricProvider | undefined {\n const binding = this.#current.get(name);\n if (!binding) return undefined;\n if (options.provider !== undefined && binding.provider !== options.provider) return undefined;\n if (\n options.generation !== undefined &&\n (typeof options.generation === \"number\" ? binding.generation : binding.id) !== options.generation\n ) {\n return undefined;\n }\n if (options.keepProviderOpen) this.#excluded.add(binding.id);\n this.retire(binding.id);\n void this.releaseOwner(binding.id).catch(() => undefined);\n return binding.provider;\n }\n\n retire(id: string): void {\n const binding = this.#all.get(id);\n if (!binding) return;\n const withdrawing = this.#current.get(binding.name)?.id === id || this.#staged.get(binding.name)?.id === id;\n if (this.#current.get(binding.name)?.id === id) this.#current.delete(binding.name);\n if (this.#staged.get(binding.name)?.id === id) this.#staged.delete(binding.name);\n this.#step(binding, { $: \"Retire\" });\n if (withdrawing) this.#emit({ type: \"retiring\", binding: snapshot(binding) });\n void this.#maybeClose(binding).catch(() => undefined);\n }\n\n retain(ids: Iterable<string>, cleanup = false): () => Promise<void> {\n const retained: FabricProviderBinding[] = [];\n try {\n for (const id of new Set(ids)) {\n const binding = this.#all.get(id);\n if (!binding || this.#step(binding, { $: \"Retain\", cleanup }) !== \"Granted\") {\n throw new Error(`Unknown Fabric provider binding: ${id}`);\n }\n retained.push(binding);\n }\n } catch (error) {\n for (const binding of retained) this.#step(binding, { $: \"Release\" });\n throw error;\n }\n const takeRelease = useOnce();\n return async () => {\n if (!takeRelease()) return;\n await Promise.all(retained.map(async (binding) => {\n this.#step(binding, { $: \"Release\" });\n await this.#maybeClose(binding);\n }));\n };\n }\n\n beginInvocation(id: string, cleanup = false): () => Promise<void> {\n const binding = this.#all.get(id);\n if (!binding || this.#step(binding, { $: \"Begin\", cleanup }) !== \"Granted\") {\n throw new Error(`Unknown Fabric provider binding: ${id}`);\n }\n const takeEnd = useOnce();\n return async () => {\n if (!takeEnd()) return;\n this.#step(binding, { $: \"End\" });\n await this.#maybeClose(binding);\n };\n }\n\n signal(id: string): AbortSignal {\n const controller = this.#signals.get(id);\n if (!controller) throw new Error(\"Unknown provider authority\");\n return controller.signal;\n }\n\n revoke(id: string): void {\n const binding = this.#all.get(id);\n if (!binding) return;\n this.#step(binding, { $: \"Revoke\" });\n this.#signals.get(id)?.abort(new Error(\"Fabric provider authority revoked\"));\n this.retire(id);\n void this.#maybeClose(binding).catch(() => undefined);\n }\n\n quarantine(id: string, error: unknown): void {\n const binding = this.#all.get(id);\n if (!binding) return;\n binding.closeError = error instanceof Error ? error.message : String(error);\n this.#step(binding, { $: \"Abort\" });\n this.revoke(id);\n }\n\n /** Hold the real operation, not the caller's cancellation race. */\n track<T>(id: string, operation: () => T | PromiseLike<T>, cleanup = false): Promise<T> {\n if (!cleanup && !this.binding(id)) return Promise.reject(new Error(\"Fabric provider authority revoked or unavailable\"));\n let end: () => Promise<void>;\n try { end = this.beginInvocation(id, cleanup); }\n catch (error) { return Promise.reject(error); }\n let actual: Promise<T>;\n try { actual = Promise.resolve(operation()); }\n catch (error) { actual = Promise.reject(error); }\n this.#pending.add(actual);\n const settled = () => { this.#pending.delete(actual); return end(); };\n void actual.then(settled, settled).catch(() => undefined);\n return actual;\n }\n\n trackProvider<T>(provider: FabricProvider, operation: () => T | PromiseLike<T>, cleanup = false): Promise<T> {\n const binding = [...this.#all.values()].find(item => item.provider === provider && this.#canBegin(item.id, cleanup));\n if (!binding) return Promise.reject(new Error(\"Fabric provider binding is unavailable\"));\n return this.track(binding.id, operation, cleanup);\n }\n\n notifyCatalogChanged(provider: string): void {\n if (this.#current.has(provider)) this.#emit({ type: \"catalog\", provider });\n }\n\n async close(excludedProviderNames: Set<string> = new Set()): Promise<void> {\n const tasks: Promise<void>[] = [];\n for (const binding of this.#all.values()) {\n if (binding.state === \"closed\") continue;\n if (excludedProviderNames.has(binding.name)) this.#excluded.add(binding.id);\n this.revoke(binding.id);\n tasks.push(this.#maybeClose(binding));\n }\n const deadline = Date.now() + 1_000;\n await settleWithin([...tasks, ...this.#pending], 1_000);\n await settleWithin([...this.#all.values()].flatMap(binding => binding.closeTask ? [binding.closeTask] : []), Math.max(0, deadline - Date.now()));\n this.#current.clear();\n this.#staged.clear();\n }\n\n #activateOne(binding: FabricProviderBinding): FabricProviderBinding | undefined {\n const current = this.#current.get(binding.name);\n if (current?.id === binding.id && binding.state === \"active\") return current;\n if (current && current.id !== binding.id) this.retire(current.id);\n if (this.#staged.get(binding.name)?.id === binding.id) this.#staged.delete(binding.name);\n if (this.#step(binding, { $: \"Activate\" }) !== \"Granted\") throw new Error(\"Provider binding cannot be activated\");\n this.#current.set(binding.name, binding);\n this.#emit({ type: \"activated\", binding: snapshot(binding) });\n return current;\n }\n\n private async releaseOwner(id: string): Promise<void> {\n const binding = this.#all.get(id);\n if (!binding) return;\n this.retire(id);\n this.#step(binding, { $: \"DropOwner\" });\n await this.#maybeClose(binding);\n }\n\n async #maybeClose(binding: FabricProviderBinding): Promise<void> {\n if (binding.closeTask) return binding.closeTask;\n // The reducer reserves Closing synchronously, before arbitrary callbacks.\n if (this.#step(binding, { $: \"Shut\" }) !== \"StartClose\") return;\n binding.closeTask = Promise.resolve().then(async () => {\n try {\n const unsubscribe = binding.unsubscribeCatalog;\n delete binding.unsubscribeCatalog;\n await unsubscribe?.();\n const shared = [...this.#all.values()].some(other => other.id !== binding.id && other.provider === binding.provider && other.state !== \"closed\");\n if (!shared && !this.#excluded.has(binding.id)) await binding.provider.close?.();\n } catch (error) {\n this.quarantine(binding.id, error);\n throw error;\n }\n if (this.#step(binding, { $: \"Complete\" }) !== \"Granted\") {\n throw new Error(binding.closeError ?? \"Provider close completion refused\");\n }\n this.#all.delete(binding.id);\n this.#lifecycles.delete(binding.id);\n this.#signals.delete(binding.id);\n this.#excluded.delete(binding.id);\n this.#emit({ type: \"closed\", binding: snapshot(binding) });\n });\n return binding.closeTask;\n }\n\n #canBegin(id: string, cleanup: boolean): boolean {\n const life = this.#lifecycles.get(id);\n return !!life && life.calls < BigInt(BEND_NAT_MAX) && bindingStep(life, { $: \"Begin\", cleanup }).command.$ === \"Granted\";\n }\n\n #step(binding: FabricProviderBinding, event: BindingEvent): BindingOutcome[\"command\"][\"$\"] {\n const life = this.#lifecycles.get(binding.id);\n if (!life) return \"Denied\";\n if ((event.$ === \"Begin\" && life.calls >= BigInt(BEND_NAT_MAX)) || (event.$ === \"Retain\" && life.holds >= BigInt(BEND_NAT_MAX))) {\n throw new Error(\"Provider lifecycle accounting overflow\");\n }\n const outcome = bindingStep(life, event);\n if (outcome.next.holds > BigInt(BEND_NAT_MAX) || outcome.next.calls > BigInt(BEND_NAT_MAX)) {\n throw new Error(\"Provider lifecycle accounting overflow\");\n }\n this.#lifecycles.set(binding.id, outcome.next);\n binding.state = ({ Staged: \"staged\", Active: \"active\", Retiring: \"retiring\", Closing: \"retiring\", Closed: \"closed\", Failed: \"retiring\" } as const)[outcome.next.phase.$];\n binding.ownerRetained = outcome.next.owner;\n binding.retainers = Number(outcome.next.holds);\n binding.inFlight = Number(outcome.next.calls);\n return outcome.command.$;\n }\n\n #emit(event: FabricProviderBindingEvent): void {\n for (const listener of [...this.#listeners]) {\n try {\n listener(event);\n } catch {\n // Registry listeners are observations; one listener cannot break provider ownership.\n }\n }\n }\n}\n", "// Generated by Bend 2.0.35; do not edit. See LAWS.bend and PROOF.bend.\n// Includes adapted Bend runtime/Base code, Copyright 2026 HigherOrderCO, Apache-2.0.\n// ABI exports selected and tags adapted by Pi Fabric; see THIRD_PARTY_NOTICES.md.\nfunction d(l) {\n if (l > 281474976710655)\n throw \"bend: a Nat past the largest immediate 2^48-1\";\n return l;\n}\nfunction y(l) {\n return (typeof l == \"bigint\" || Number.isInteger(l)) && l >= 0 && l <= 2 ** 53 ? Number(l) : { [Symbol.toPrimitive]() {\n throw \"bend: a Nat past the largest immediate 2^48-1\";\n } };\n}\nfunction p(l) {\n for (; l !== null && typeof l == \"object\" && l.$ === \"$JMP\"; )\n l = l.f(...l.x);\n return l;\n}\nfunction f(l, e) {\n return (...c) => c.length < e ? f((...o) => l(...c, ...o), e - c.length) : l(...c);\n}\nfunction s(l, e, c) {\n if (l.$ === \"lifecycle.Closing\" || l.$ === \"lifecycle.Closed\")\n return !1;\n if (l.$ === \"lifecycle.Failed\")\n return c;\n {\n let o = R(e);\n return c || o;\n }\n}\nfunction $(l) {\n return l.$ === \"lifecycle.Staged\" ? { $: \"lifecycle.Retiring\" } : l.$ === \"lifecycle.Active\" ? { $: \"lifecycle.Retiring\" } : l;\n}\nfunction k(l, e) {\n if (l) {\n let c = e.phase, o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: d(r + 1), revoked: t }, command: { $: \"lifecycle.Granted\" } };\n } else\n return { $: \"lifecycle.Outcome\", next: e, command: { $: \"lifecycle.Denied\" } };\n}\nfunction w(l, e) {\n if (l) {\n let c = e.phase, o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: d(n + 1), calls: r, revoked: t }, command: { $: \"lifecycle.Granted\" } };\n } else\n return { $: \"lifecycle.Outcome\", next: e, command: { $: \"lifecycle.Denied\" } };\n}\nfunction v(l, e) {\n return l ? { $: \"lifecycle.Outcome\", next: e, command: { $: \"lifecycle.Granted\" } } : { $: \"lifecycle.Outcome\", next: e, command: { $: \"lifecycle.Denied\" } };\n}\nfunction g(l, e) {\n if (l.$ === \"lifecycle.Inspect\") {\n let c = e.phase, o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return v(s(c, t, !1), { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: r, revoked: t });\n } else if (l.$ === \"lifecycle.Activate\") {\n let c = e.phase;\n if (c.$ === \"lifecycle.Staged\") {\n let o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Active\" }, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Granted\" } };\n } else if (c.$ === \"lifecycle.Active\") {\n let o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Active\" }, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Granted\" } };\n } else {\n let o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Denied\" } };\n }\n } else if (l.$ === \"lifecycle.Retire\") {\n let c = e.phase, o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: $(c), owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Granted\" } };\n } else if (l.$ === \"lifecycle.DropOwner\") {\n let c = e.phase, o = e.holds, n = e.calls, r = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: !1, holds: o, calls: n, revoked: r }, command: { $: \"lifecycle.Granted\" } };\n } else if (l.$ === \"lifecycle.Revoke\") {\n let c = e.phase, o = e.holds, n = e.calls;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: $(c), owner: !1, holds: o, calls: n, revoked: !0 }, command: { $: \"lifecycle.Granted\" } };\n } else if (l.$ === \"lifecycle.Retain\") {\n let c = l.cleanup, o = e.phase, n = e.owner, r = e.holds, t = e.calls, i = e.revoked;\n return w(s(o, i, c), { $: \"lifecycle.Life\", phase: o, owner: n, holds: r, calls: t, revoked: i });\n } else if (l.$ === \"lifecycle.Release\") {\n let c = e.phase, o = e.owner, n = e.holds;\n if (n === 0) {\n let r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: 0, calls: r, revoked: t }, command: { $: \"lifecycle.Denied\" } };\n } else {\n let r = n - 1, t = e.calls, i = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: r, calls: t, revoked: i }, command: { $: \"lifecycle.Granted\" } };\n }\n } else if (l.$ === \"lifecycle.Begin\") {\n let c = l.cleanup, o = e.phase, n = e.owner, r = e.holds, t = e.calls, i = e.revoked;\n return k(s(o, i, c), { $: \"lifecycle.Life\", phase: o, owner: n, holds: r, calls: t, revoked: i });\n } else if (l.$ === \"lifecycle.End\") {\n let c = e.phase, o = e.owner, n = e.holds, r = e.calls;\n if (r === 0) {\n let t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: 0, revoked: t }, command: { $: \"lifecycle.Denied\" } };\n } else {\n let t = r - 1, i = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: t, revoked: i }, command: { $: \"lifecycle.Granted\" } };\n }\n } else if (l.$ === \"lifecycle.Shut\") {\n let c = e.phase;\n if (c.$ === \"lifecycle.Retiring\") {\n let o = e.owner;\n if (o) {\n let n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Retiring\" }, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Denied\" } };\n } else {\n let n = e.holds;\n if (n === 0) {\n let r = e.calls;\n if (r === 0) {\n let t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Closing\" }, owner: !1, holds: 0, calls: 0, revoked: t }, command: { $: \"lifecycle.StartClose\" } };\n } else {\n let t = r - 0, i = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Retiring\" }, owner: !1, holds: 0, calls: t, revoked: i }, command: { $: \"lifecycle.Denied\" } };\n }\n } else {\n let r = n - 0, t = e.calls, i = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Retiring\" }, owner: !1, holds: r, calls: t, revoked: i }, command: { $: \"lifecycle.Denied\" } };\n }\n }\n } else {\n let o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Denied\" } };\n }\n } else if (l.$ === \"lifecycle.Complete\") {\n let c = e.phase;\n if (c.$ === \"lifecycle.Closing\") {\n let o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Closed\" }, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Granted\" } };\n } else {\n let o = e.owner, n = e.holds, r = e.calls, t = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: c, owner: o, holds: n, calls: r, revoked: t }, command: { $: \"lifecycle.Denied\" } };\n }\n } else if (e.phase.$ === \"lifecycle.Closed\") {\n let c = e.owner, o = e.holds, n = e.calls, r = e.revoked;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Closed\" }, owner: c, holds: o, calls: n, revoked: r }, command: { $: \"lifecycle.Denied\" } };\n } else {\n let c = e.holds, o = e.calls;\n return { $: \"lifecycle.Outcome\", next: { $: \"lifecycle.Life\", phase: { $: \"lifecycle.Failed\" }, owner: !1, holds: c, calls: o, revoked: !0 }, command: { $: \"lifecycle.Granted\" } };\n }\n}\nfunction O(l, e) {\n return g(e, l);\n}\nfunction L(l, e) {\n return O(l, e);\n}\nfunction R(l) {\n return !l;\n}\nfunction x(l) {\n let e = [l];\n for (let c = e, o = 0; ; )\n switch (l.$) {\n case \"lifecycle.Life\":\n return c = c[o] = { ...l, holds: y(l.holds), calls: y(l.calls) }, e[0];\n default:\n throw \"bend: lifecycle.Life has no tag \" + l?.$ + \" (its tags: lifecycle.Life); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction h(l) {\n let e = [l];\n for (let c = e, o = 0; ; )\n switch (l.$) {\n case \"lifecycle.Life\":\n return c = c[o] = { ...l, holds: BigInt(l.holds), calls: BigInt(l.calls) }, e[0];\n default:\n throw \"bend: lifecycle.Life has no tag \" + l?.$ + \" (its tags: lifecycle.Life); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nfunction C(l) {\n let e = [l];\n for (let c = e, o = 0; ; )\n switch (l.$) {\n case \"lifecycle.Outcome\":\n return c = c[o] = { ...l, next: h(l.next) }, e[0];\n default:\n throw \"bend: lifecycle.Outcome has no tag \" + l?.$ + \" (its tags: lifecycle.Outcome); a tag names its constructor as the loading file sees it, which a later version will make the same everywhere (#1105)\";\n }\n}\nvar u = /* @__PURE__ */ new Map([[\"Closing\", \"lifecycle.Closing\"], [\"Closed\", \"lifecycle.Closed\"], [\"Failed\", \"lifecycle.Failed\"], [\"Staged\", \"lifecycle.Staged\"], [\"Retiring\", \"lifecycle.Retiring\"], [\"Active\", \"lifecycle.Active\"], [\"Outcome\", \"lifecycle.Outcome\"], [\"Denied\", \"lifecycle.Denied\"], [\"Life\", \"lifecycle.Life\"], [\"Granted\", \"lifecycle.Granted\"], [\"Inspect\", \"lifecycle.Inspect\"], [\"Activate\", \"lifecycle.Activate\"], [\"Retire\", \"lifecycle.Retire\"], [\"DropOwner\", \"lifecycle.DropOwner\"], [\"Revoke\", \"lifecycle.Revoke\"], [\"Retain\", \"lifecycle.Retain\"], [\"Release\", \"lifecycle.Release\"], [\"Begin\", \"lifecycle.Begin\"], [\"End\", \"lifecycle.End\"], [\"Shut\", \"lifecycle.Shut\"], [\"StartClose\", \"lifecycle.StartClose\"], [\"Complete\", \"lifecycle.Complete\"]]), D = /* @__PURE__ */ new Map([[\"lifecycle.Closing\", \"Closing\"], [\"lifecycle.Closed\", \"Closed\"], [\"lifecycle.Failed\", \"Failed\"], [\"lifecycle.Staged\", \"Staged\"], [\"lifecycle.Retiring\", \"Retiring\"], [\"lifecycle.Active\", \"Active\"], [\"lifecycle.Outcome\", \"Outcome\"], [\"lifecycle.Denied\", \"Denied\"], [\"lifecycle.Life\", \"Life\"], [\"lifecycle.Granted\", \"Granted\"], [\"lifecycle.Inspect\", \"Inspect\"], [\"lifecycle.Activate\", \"Activate\"], [\"lifecycle.Retire\", \"Retire\"], [\"lifecycle.DropOwner\", \"DropOwner\"], [\"lifecycle.Revoke\", \"Revoke\"], [\"lifecycle.Retain\", \"Retain\"], [\"lifecycle.Release\", \"Release\"], [\"lifecycle.Begin\", \"Begin\"], [\"lifecycle.End\", \"End\"], [\"lifecycle.Shut\", \"Shut\"], [\"lifecycle.StartClose\", \"StartClose\"], [\"lifecycle.Complete\", \"Complete\"]]);\nfunction a(l, e) {\n let c = [l];\n for (let o = [[c, 0]]; o.length > 0; ) {\n let [n, r] = o.pop(), t = n[r];\n if (t === null || typeof t != \"object\") continue;\n let i = Array.isArray(t) ? [...t] : { ...t };\n typeof i.$ == \"string\" && (i.$ = e.get(i.$) ?? i.$), n[r] = i;\n for (let m of Object.keys(i)) o.push([i, m]);\n }\n return c[0];\n}\nvar S = /* @__PURE__ */ f((l, e) => {\n let c = C(p(L(x(l), e)));\n return h(l), c;\n}, 2), b = (l, e) => a(S(a(l, u), a(e, u)), D);\nexport {\n b as bindingStep\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,EAAE,GAAG,IAAI,IAAI,OAAO,MAAM,IAAI,OAAO,KAAK;AACnD;AACA,SAAS,EAAE,GAAG;AACZ,UAAQ,OAAO,KAAK,YAAY,OAAO,UAAU,CAAC,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,WAAW,IAAI;AACpH,UAAM;AAAA,EACR,EAAE;AACJ;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,MAAM,QAAQ,OAAO,KAAK,YAAY,EAAE,MAAM;AACnD,QAAI,EAAE,EAAE,GAAG,EAAE,CAAC;AAChB,SAAO;AACT;AACA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,IAAI,MAAM,EAAE,SAAS,IAAI,EAAE,IAAIA,OAAM,EAAE,GAAG,GAAG,GAAGA,EAAC,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC;AACnF;AACA,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,aAAW;AACT,QAAIA,KAAI,GAAG,IAAI,GAAG,IAAI;AACtB,QAAIA,GAAE,MAAM;AACV,aAAO,EAAE,MAAM,QAAQ,IAAI;AAC7B;AACE,UAAI,IAAIA,GAAE,MAAMC,KAAID,GAAE;AACtB,UAAI,EAAE,MAAM;AACV,eAAO;AACT;AACE,YAAIE,KAAI,EAAE,MAAMC,KAAI,EAAE;AACtB,YAAIF,IAAG,IAAIE,IAAG,IAAI,EAAE,GAAG,EAAE,GAAGD,EAAC,CAAC;AAC9B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AACA,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,aAAW;AACT,QAAIF,KAAI,GAAG,IAAI,GAAG,IAAI;AACtB,QAAIA,GAAE,MAAM;AACV,aAAO;AACT;AACE,UAAI,IAAIA,GAAE,MAAMC,KAAID,GAAE,MAAME,KAAI,EAAE,GAAG,GAAG,IAAE;AAC1C,UAAID,IAAG,IAAI,GAAG,IAAI,KAAKC;AACvB;AAAA,IACF;AAAA,EACF;AACF;AACA,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,aAAW;AACT,QAAIF,KAAI,GAAG,IAAI,GAAG,IAAI;AACtB,QAAIA,GAAE,MAAM;AACV,aAAO;AACT;AACE,UAAI,IAAIA,GAAE;AACV,UAAIA,GAAE,MAAM,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,KAAE,CAAC;AACvC;AAAA,IACF;AAAA,EACF;AACF;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,GAAG,0BAA0B,QAAQ,EAAE;AAClD;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,MAAM;AACjB;AACA,SAAS,EAAE,GAAG,GAAG;AACf,MAAI,EAAE,MAAM;AACV,WAAO;AACT;AACE,QAAI,IAAI,EAAE;AACV,WAAO,EAAE,GAAG,GAAG,KAAE;AAAA,EACnB;AACF;AACA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,IAAI,EAAE,GAAG,0BAA0B,QAAQ,EAAE,IAAI,EAAE,GAAG,2BAA2B;AAC1F;AACA,SAAS,EAAE,GAAG,GAAG;AACf,MAAI,EAAE,MAAM;AACV,WAAO,EAAE,GAAG,2BAA2B;AACzC;AACE,QAAI,IAAI,EAAE;AACV,WAAO,EAAE,EAAE,GAAG,GAAG,IAAE,GAAG,CAAC;AAAA,EACzB;AACF;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,GAAG,2BAA2B;AACzC;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,CAAC;AACZ;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,CAAC;AACZ;AACA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,EAAE,GAAG,CAAC;AACf;AACA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,EAAE,GAAG,CAAC;AACf;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,CAAC;AACZ;AACA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,IAAI,IAAI;AACjB;AACA,SAAS,EAAE,GAAG,GAAG;AACf,SAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AAClB;AACA,SAAS,EAAE,GAAG;AACZ,SAAO,EAAE,MAAM;AACjB;AACA,SAAS,EAAE,GAAG;AACZ,MAAI,IAAI,CAAC,CAAC;AACV,WAAS,IAAI,GAAGA,KAAI;AAClB,YAAQ,EAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAO,EAAEA,EAAC,IAAI,GAAG,EAAE,CAAC;AAAA,MACtB,KAAK;AACH,YAAI,EAAEA,EAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAGA,KAAI,QAAQ,IAAI,EAAEA,EAAC;AACzD;AAAA,MACF;AACE,cAAM,2BAA2B,GAAG,IAAI;AAAA,IAC5C;AACJ;AACA,SAAS,EAAE,GAAG;AACZ,MAAI,IAAI,CAAC,CAAC;AACV,WAAS,IAAI,GAAGA,KAAI;AAClB,YAAQ,EAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAO,EAAEA,EAAC,IAAI,GAAG,EAAE,CAAC;AAAA,MACtB,KAAK;AACH,YAAI,EAAEA,EAAC,IAAI,EAAE,GAAG,GAAG,MAAM,OAAO,EAAE,IAAI,EAAE,GAAGA,KAAI,QAAQ,IAAI,EAAEA,EAAC;AAC9D;AAAA,MACF;AACE,cAAM,2BAA2B,GAAG,IAAI;AAAA,IAC5C;AACJ;AACA,SAAS,EAAE,GAAG;AACZ,MAAI,IAAI,CAAC,CAAC;AACV,WAAS,IAAI,GAAGA,KAAI;AAClB,YAAQ,EAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAO,EAAEA,EAAC,IAAI,GAAG,EAAE,CAAC;AAAA,MACtB,KAAK;AACH,YAAI,EAAEA,EAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAGA,KAAI,QAAQ,IAAI,EAAEA,EAAC;AACzD;AAAA,MACF;AACE,cAAM,2BAA2B,GAAG,IAAI;AAAA,IAC5C;AACJ;AACA,SAAS,EAAE,GAAG;AACZ,MAAI,IAAI,CAAC,CAAC;AACV,WAAS,IAAI,GAAGA,KAAI;AAClB,YAAQ,EAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAO,EAAEA,EAAC,IAAI,GAAG,EAAE,CAAC;AAAA,MACtB,KAAK;AACH,YAAI,EAAEA,EAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAGA,KAAI,QAAQ,IAAI,EAAEA,EAAC;AACzD;AAAA,MACF;AACE,cAAM,2BAA2B,GAAG,IAAI;AAAA,IAC5C;AACJ;AACA,SAAS,EAAE,GAAG;AACZ,MAAI,IAAI,CAAC,CAAC;AACV,WAAS,IAAI,GAAGA,KAAI;AAClB,YAAQ,EAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAO,EAAEA,EAAC,IAAI,GAAG,EAAE,CAAC;AAAA,MACtB,KAAK;AACH,eAAO,IAAI,EAAEA,EAAC,IAAI,EAAE,GAAG,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAAA,MACtD;AACE,cAAM,gDAAgD,GAAG,IAAI;AAAA,IACjE;AACJ;AACA,SAAS,EAAE,GAAG;AACZ,MAAI,IAAI,CAAC,CAAC;AACV,WAAS,IAAI,GAAGA,KAAI;AAClB,YAAQ,EAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAO,EAAEA,EAAC,IAAI,GAAG,EAAE,CAAC;AAAA,MACtB,KAAK;AACH,eAAO,IAAI,EAAEA,EAAC,IAAI,EAAE,GAAG,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAAA,MACtD;AACE,cAAM,gDAAgD,GAAG,IAAI;AAAA,IACjE;AACJ;AACA,IAAI,IAAoB,oBAAI,IAAI,CAAC,CAAC,WAAW,mBAAmB,GAAG,CAAC,SAAS,iBAAiB,GAAG,CAAC,SAAS,iBAAiB,GAAG,CAAC,UAAU,wBAAwB,GAAG,CAAC,YAAY,0BAA0B,GAAG,CAAC,UAAU,kBAAkB,CAAC,CAAC;AAA9O,IAAiP,IAAoB,oBAAI,IAAI,CAAC,CAAC,qBAAqB,SAAS,GAAG,CAAC,mBAAmB,OAAO,GAAG,CAAC,mBAAmB,OAAO,GAAG,CAAC,0BAA0B,QAAQ,GAAG,CAAC,4BAA4B,UAAU,GAAG,CAAC,oBAAoB,QAAQ,CAAC,CAAC;AAC3d,SAAS,EAAE,GAAG,GAAG;AACf,MAAI,IAAI,CAAC,CAAC;AACV,WAASA,KAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAGA,GAAE,SAAS,KAAK;AACrC,QAAI,CAAC,GAAG,CAAC,IAAIA,GAAE,IAAI,GAAG,IAAI,EAAE,CAAC;AAC7B,QAAI,MAAM,QAAQ,OAAO,KAAK,SAAU;AACxC,QAAIC,KAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AAC3C,WAAOA,GAAE,KAAK,aAAaA,GAAE,IAAI,EAAE,IAAIA,GAAE,CAAC,KAAKA,GAAE,IAAI,EAAE,CAAC,IAAIA;AAC5D,aAASC,MAAK,OAAO,KAAKD,EAAC,EAAG,CAAAD,GAAE,KAAK,CAACC,IAAGC,EAAC,CAAC;AAAA,EAC7C;AACA,SAAO,EAAE,CAAC;AACZ;AACA,IAAI,IAAoB,kBAAE,CAAC,MAAM;AAC/B,MAAI,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,SAAO,EAAE,CAAC,GAAG;AACf,GAAG,CAAC;AAHJ,IAGO,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AAHjC,IAGoC,IAAoB,kBAAE,CAAC,MAAM;AAC/D,MAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjB,SAAO,EAAE,CAAC,GAAG;AACf,GAAG,CAAC;AANJ,IAMO,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AANjC,IAMoC,IAAoB,kBAAE,CAAC,GAAG,MAAM;AAClE,MAAI,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvB,SAAO,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG;AACrB,GAAG,CAAC;AATJ,IASO,IAAI,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AAT7C,IASgD,IAAoB,kBAAE,CAAC,GAAG,MAAM;AAC9E,MAAI,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,SAAO,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG;AACrB,GAAG,CAAC;AAZJ,IAYO,IAAI,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AAZ7C,IAYgD,IAAoB,kBAAE,CAAC,MAAM;AAC3E,MAAI,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,SAAO,EAAE,CAAC,GAAG;AACf,GAAG,CAAC;AAfJ,IAeO,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;;;ACtMjC,IAAM,cAAc,CAAC,UAAgE;AACnF,QAAM,OAAO,KAAK,UAAU;AAAA,IAC1B,MAAM;AAAA,IAAK,MAAM;AAAA,IAAU,MAAM;AAAA,IAAmB,MAAM;AAAA,IAAY,MAAM;AAAA,EAC9E,CAAC;AACD,MAAI,UAAyB,EAAE,GAAG,MAAM;AACxC,WAAS,IAAI,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK;AACzC,cAAU,EAAE,GAAG,OAAO,MAAM,OAAO,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,QAAQ;AAAA,EACxE;AACA,SAAO;AACT;AAEA,IAAM,eAAe,CAAC,WAA8E;AAClG,MAAI,UAA2B,EAAE,GAAG,MAAM;AAC1C,WAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,cAAU,EAAE,GAAG,OAAO,MAAM,YAAY,OAAO,CAAC,CAAE,GAAG,MAAM,QAAQ;AAAA,EACrE;AACA,SAAO;AACT;AAOO,IAAM,sBAAN,MAAM,qBAAoB;AAAA,EAC/B;AAAA,EACS;AAAA,EAED,YAAY,QAAgD,QAA8B;AAChG,UAAM,YAAY,OAAO,IAAI,WAAS,OAAO,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;AACjE,SAAK,UAAU,IAAI,IAAI,UAAU,IAAI,WAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AACjE,UAAM,UAAU,aAAa,SAAS;AACtC,SAAK,SAAS,SAAS,EAAgB,OAAO,QAAQ,OAAO,IAAI,EAAe,OAAO;AAAA,EACzF;AAAA,EAEA,OAAO,MAAM,QAAqE;AAChF,WAAO,IAAI,qBAAoB,MAAM;AAAA,EACvC;AAAA,EAEA,OAAO,QAAqE;AAC1E,WAAO,IAAI,qBAAoB,QAAQ,IAAI;AAAA,EAC7C;AAAA,EAEA,IAAI,SAAkB;AACpB,WAAO,EAAc,KAAK,MAAM;AAAA,EAClC;AAAA,EAEA,UAAgB;AACd,SAAK,SAAS,EAAiB,KAAK,MAAM;AAAA,EAC5C;AAAA,EAEA,QAAQ,KAAsD;AAC5D,UAAM,QAAQ,KAAK,QAAQ,IAAI,GAAG;AAClC,WAAO,SAAS,EAAgB,KAAK,QAAQ,YAAY,KAAK,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI;AAAA,EACpF;AAAA,EAEA,WAA0C;AACxC,WAAO,KAAK,SAAS,CAAC,GAAG,KAAK,QAAQ,OAAO,CAAC,EAAE,IAAI,YAAU,EAAE,GAAG,MAAM,EAAE,IAAI,CAAC;AAAA,EAClF;AACF;;;AC1EA,SAAS,cAAAE,mBAAkB;;;ACQpB,IAAM,mCAAN,cAA+C,MAAM;AAAA,EAC1D,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAEA,IAAM,qBAAqB;AAEpB,IAAM,sBAAsB,CACjC,cACA,kBACiC;AACjC,MAAI,OAAO,iBAAiB,SAAU,QAAO,EAAE,OAAO,aAAa;AACnE,SAAO,EAAE,OAAO,eAAe,GAAG,aAAa;AACjD;AAEO,IAAM,qBAAqB,CAChC,kBAC+B;AAAA,EAC/B,OAAO,aAAa,OAAO,KAAK,EAAE,MAAM,GAAG,GAAG,KAAK;AAAA,EACnD,MAAM,aAAa,QAAQ;AAAA,EAC3B,WAAW,mBAAmB,aAAa,SAAS;AAAA,EACpD,UAAU,aAAa,YAAY;AACrC;AAEO,IAAM,eAAe,CAC1B,WAC0C;AAC1C,MAAI,CAAC,OAAO,UAAU,OAAO,OAAO,SAAS,OAAQ,QAAO;AAC5D,SAAO;AAAA,IACL,OAAO,OAAO;AAAA,IACd,MAAM,OAAO,OAAO;AAAA,IACpB,WAAW,mBAAmB,OAAO,OAAO,SAAS;AAAA,IACrD,UAAU,OAAO,OAAO,YAAY;AAAA,EACtC;AACF;AAaO,IAAM,mBAAmB,CAC9B,YACiC;AACjC,QAAM,yBAAyB,oBAAI,IAAqB;AACxD,MAAI,oBAAoB;AACxB,MAAI,aAAa;AACjB,MAAI,2BAA2B;AAC/B,MAAI,YAAY;AAChB,aAAW,UAAU,SAAS;AAC5B,QAAI,OAAO,SAAS,OAAQ;AAC5B;AACA,UAAM,iBAAiB,OAAO,aAAa;AAC3C,0BAAsB;AACtB,eAAW,YAAY,OAAO,WAAW;AACvC,UAAI,aAAa,KAAK;AACpB,qBAAa;AACb,qCAA6B;AAAA,MAC/B,OAAO;AACL,+BAAuB;AAAA,UACrB;AAAA,WACC,uBAAuB,IAAI,QAAQ,KAAK,UAAU;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,cAAc,sBAAsB,OAAO;AAAA,IAC3C,YAAY,YAAY;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,yBAAyB,CACpC,MACA,UACmC;AAGnC,MAAI,CAAC,GAAe,KAAK,cAAc,MAAM,YAAY,EAAG,QAAO,CAAC;AACpE,QAAM,YAA4C,CAAC;AACnD,MACE;AAAA,IACE,KAAK;AAAA,IAAY,KAAK;AAAA,IAA0B,KAAK;AAAA,IACrD,MAAM;AAAA,IAAY,MAAM;AAAA,IAA0B,MAAM;AAAA,EAC1D,GACA;AACA,cAAU,KAAK,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,mBAAmB,CAAC;AAAA,EACjE;AACA,QAAM,UAAU,CAAC,GAAG,KAAK,uBAAuB,KAAK,CAAC,EACnD;AAAA,IAAO,CAAC,aACP;AAAA,MACE,MAAM,uBAAuB,IAAI,QAAQ;AAAA,MACzC,KAAK,uBAAuB,IAAI,QAAQ,KAAK;AAAA,MAC7C,MAAM,uBAAuB,IAAI,QAAQ,KAAK;AAAA,IAChD;AAAA,EACF,EACC,KAAK;AACR,MAAI,QAAQ,SAAS,GAAG;AACtB,cAAU,KAAK,EAAE,WAAW,SAAS,QAAQ,kBAAkB,CAAC;AAAA,EAClE;AACA,SAAO,UAAU,SAAS,IAAI,YAAY,CAAC,EAAE,WAAW,CAAC,GAAG,GAAG,QAAQ,mBAAmB,CAAC;AAC7F;AAEO,IAAM,oBAAoB,CAC/B,MACA,UAEA,KAAK,MAAM,cAAc,MAAM,KAAK,KACpC,KAAK,KAAK,cAAc,MAAM,IAAI,KAClC,KAAK,SAAS,cAAc,MAAM,QAAQ,KAC1C,KAAK,UAAU,KAAK,IAAI,EAAE,cAAc,MAAM,UAAU,KAAK,IAAI,CAAC;;;ACrGpE,IAAM,yBAA+D;AAAA;AAAA,EAEnE,CAAC,UAAU,UAAU,QAAQ,SAAS,UAAU,QAAQ,QAAQ,QAAQ;AAAA;AAAA,EAExE,CAAC,UAAU,OAAO,QAAQ,SAAS,QAAQ,QAAQ,MAAM;AAAA;AAAA,EAEzD,CAAC,YAAY,QAAQ,MAAM,aAAa,OAAO;AAAA;AAAA,EAE/C,CAAC,cAAc,SAAS,OAAO,OAAO,QAAQ,UAAU,SAAS,UAAU,UAAU,MAAM;AAAA;AAAA,EAE3F,CAAC,UAAU,SAAS,OAAO,OAAO,QAAQ,UAAU;AAAA;AAAA;AAAA,EAGpD,CAAC,WAAW,QAAQ,QAAQ,QAAQ;AAAA;AAAA,EAEpC,CAAC,UAAU,UAAU,MAAM,WAAW,QAAQ,OAAO;AAAA;AAAA,EAErD,CAAC,UAAU,WAAW,WAAW,WAAW,QAAQ;AAAA;AAAA;AAAA,EAGpD,CAAC,UAAU,QAAQ,WAAW,UAAU,YAAY,KAAK;AAAA;AAAA,EAEzD,CAAC,OAAO,WAAW,QAAQ,UAAU,QAAQ,SAAS,IAAI;AAAA;AAAA,EAE1D,CAAC,UAAU,SAAS,QAAQ,QAAQ,WAAW;AAAA;AAAA,EAE/C,CAAC,UAAU,SAAS,YAAY,UAAU,WAAW,SAAS;AAAA;AAAA,EAE9D,CAAC,WAAW,OAAO,WAAW,UAAU,YAAY,aAAa;AAAA;AAAA,EAEjE,CAAC,aAAa,SAAS,UAAU,WAAW,QAAQ;AAAA;AAAA,EAEpD,CAAC,WAAW,SAAS,YAAY,WAAW,UAAU;AAAA;AAAA,EAEtD,CAAC,UAAU,SAAS,UAAU;AAAA;AAAA;AAAA,EAG9B,CAAC,OAAO,QAAQ,OAAO,MAAM;AAC/B;AAIA,IAAM,sBAAsB,CAAC,SAC3B,KAAK,YAAY,EAAE,QAAQ,cAAc,EAAE;AAE7C,IAAM,qBAAqB,uBAAuB;AAAA,EAAI,CAAC,QACrD,IAAI,IAAI,IAAI,IAAI,mBAAmB,CAAC;AACtC;AAEA,IAAM,cAAc,CAAC,SACnB,KACG,QAAQ,sBAAsB,OAAO,EACrC,QAAQ,yBAAyB,OAAO,EACxC,YAAY,EACZ,MAAM,YAAY,EAClB,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC;AAIvC,IAAM,qBAAqB,CAAC,SAC1B,KAAK,SAAS,KAAK,KAAK,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAE9D,IAAM,cAAc,CAAC,MAAc,UAA0B;AAC3D,MAAI,SAAS,MAAO,QAAO;AAC3B,MAAI,KAAK,WAAW,EAAG,QAAO,MAAM;AACpC,MAAI,MAAM,WAAW,EAAG,QAAO,KAAK;AACpC,MAAI,WAAW,IAAI,MAAc,MAAM,SAAS,CAAC;AACjD,MAAI,UAAU,IAAI,MAAc,MAAM,SAAS,CAAC;AAChD,WAASC,KAAI,GAAGA,MAAK,MAAM,QAAQA,KAAK,UAASA,EAAC,IAAIA;AACtD,WAAS,IAAI,GAAG,KAAK,KAAK,QAAQ,KAAK;AACrC,YAAQ,CAAC,IAAI;AACb,aAASA,KAAI,GAAGA,MAAK,MAAM,QAAQA,MAAK;AACtC,cAAQA,EAAC,IAAI,KAAK;AAAA,QAChB,SAASA,EAAC,IAAK;AAAA,QACf,QAAQA,KAAI,CAAC,IAAK;AAAA,QAClB,SAASA,KAAI,CAAC,KAAM,KAAK,IAAI,CAAC,MAAM,MAAMA,KAAI,CAAC,IAAI,IAAI;AAAA,MACzD;AAAA,IACF;AACA,UAAM,OAAO;AACb,eAAW;AACX,cAAU;AAAA,EACZ;AACA,SAAO,SAAS,MAAM,MAAM;AAC9B;AAIA,IAAM,gBAAgB,CAAC,SACrB,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,SAAS,CAAC,CAAC;AAEhE,IAAM,eAAe,CAAC,SAAmB,aAAgC;AACvE,MAAI,QAAQ,WAAW,KAAK,QAAQ,WAAW,SAAS,OAAQ,QAAO;AACvE,SAAO,QAAQ,MAAM,CAAC,OAAO,UAAU;AACrC,UAAM,QAAQ,SAAS,KAAK;AAC5B,QAAI,UAAU,MAAO,QAAO;AAC5B,WAAO,MAAM,UAAU,KAAK,MAAM,UAAU,MACzC,MAAM,WAAW,KAAK,KAAK,MAAM,WAAW,KAAK;AAAA,EACtD,CAAC;AACH;AAEA,IAAM,YAAY,CAAC,UACjB,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC;AAgBrE,IAAM,eAAe,oBAAI,QAA4C;AACrE,IAAM,kBAAkB,CAAC,aAAiD;AACxE,QAAM,SAAS,aAAa,IAAI,QAAQ;AACxC,MAAI,QAAQ,MAAM,WAAW,SAAS,UAAU,OAAO,MAAM,MAAM,CAAC,OAAO,UAAU,MAAM,SAAS,SAAS,KAAK,CAAC,GAAG;AACpH,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,SAAS,IAAI,CAAC,SAAS;AACnC,UAAM,OAAO,oBAAoB,IAAI;AACrC,WAAO,EAAE,MAAM,MAAM,UAAU,mBAAmB,IAAI,GAAG,QAAQ,YAAY,IAAI,EAAE;AAAA,EACrF,CAAC;AACD,QAAMC,YAAW,EAAE,OAAO,SAAS,oBAAI,IAA8B,EAAE;AACvE,eAAa,IAAI,UAAUA,SAAQ;AACnC,SAAOA;AACT;AAOA,IAAM,sBAAsB,CAC1B,SACA,eACqB;AACrB,QAAM,cAAc,oBAAoB,UAAU;AAClD,MAAI,YAAY,WAAW,EAAG,QAAO,EAAE,aAAa,CAAC,EAAE;AACvD,MAAI,QAAQ,KAAK,CAAC,UAAU,MAAM,SAAS,UAAU,EAAG,QAAO,EAAE,aAAa,CAAC,EAAE;AACjF,QAAM,QAAQ,CAAC,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AAG/E,QAAM,QAAQ,MAAM,OAAO,CAAC,UAAU,MAAM,SAAS,WAAW,EAAE,IAAI,CAAC,UAAU,MAAM,IAAI;AAC3F,MAAI,MAAM,WAAW,EAAG,QAAO,EAAE,UAAU,MAAM,CAAC,GAAI,aAAa,MAAM;AACzE,MAAI,MAAM,SAAS,EAAG,QAAO,EAAE,aAAa,UAAU,KAAK,EAAE;AAC7D,MAAI,MAAM,WAAW,EAAG,QAAO,EAAE,aAAa,CAAC,EAAE;AAIjD,QAAM,kBAAkB,UAAU,mBAC/B,OAAO,CAAC,eAAe,WAAW,IAAI,WAAW,CAAC,EAClD;AAAA,IAAQ,CAAC,eACR,MAAM,OAAO,CAAC,UAAU,WAAW,IAAI,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,EAC/E,CAAC;AACH,MAAI,gBAAgB,WAAW,GAAG;AAChC,WAAO,EAAE,UAAU,gBAAgB,CAAC,GAAI,aAAa,CAAC,gBAAgB,CAAC,CAAE,EAAE;AAAA,EAC7E;AACA,MAAI,gBAAgB,SAAS,GAAG;AAC9B,WAAO,EAAE,aAAa,UAAU,eAAe,EAAE;AAAA,EACnD;AAIA,QAAM,gBAAgB,YAAY,UAAU;AAC5C,QAAM,kBAAkB,mBAAmB,WAAW;AACtD,QAAM,UAAoB,CAAC;AAC3B,aAAW,SAAS,OAAO;AACzB,QACE,MAAM,SAAS,eACf,MAAM,aAAa,mBAClB,cAAc,SAAS,KAAK,aAAa,eAAe,MAAM,MAAM,KACpE,YAAY,UAAU,KAAK,MAAM,KAAK,WAAW,WAAW,GAC7D;AACA,cAAQ,KAAK,MAAM,IAAI;AAAA,IACzB;AAAA,EACF;AACA,MAAI,QAAQ,SAAS,EAAG,QAAO,EAAE,aAAa,UAAU,OAAO,EAAE;AAGjE,QAAM,YAAY,MAAM,IAAI,CAAC,WAAW;AAAA,IACtC,MAAM,MAAM;AAAA,IACZ,UAAU,YAAY,aAAa,MAAM,IAAI;AAAA,EAC/C,EAAE;AACF,QAAM,MAAM,KAAK,IAAI,GAAG,UAAU,IAAI,CAAC,UAAU,MAAM,QAAQ,CAAC;AAChE,QAAM,YAAY,cAAc,WAAW;AAC3C,MAAI,OAAO,WAAW;AACpB,UAAM,UAAU;AAAA,MACd,UAAU,OAAO,CAAC,UAAU,MAAM,aAAa,GAAG,EAAE,IAAI,CAAC,UAAU,MAAM,IAAI;AAAA,IAC/E;AACA,WAAO,EAAE,aAAa,QAAQ;AAAA,EAChC;AAGA,QAAM,cAAc,UACjB,OAAO,CAAC,UAAU,MAAM,YAAY,KAAK,IAAI,GAAG,KAAK,MAAM,YAAY,SAAS,CAAC,CAAC,CAAC,EACnF;AAAA,IAAK,CAAC,MAAM,UACX,KAAK,WAAW,MAAM,YAAY,KAAK,KAAK,cAAc,MAAM,IAAI;AAAA,EACtE,EACC,MAAM,GAAG,CAAC,EACV,IAAI,CAAC,UAAU,MAAM,IAAI;AAC5B,SAAO,EAAE,aAAa,UAAU,WAAW,EAAE;AAC/C;AAIO,IAAM,mBAAmB,CAAC,UAA6B,eAAyC;AACrG,QAAM,UAAU,gBAAgB,QAAQ;AACxC,MAAI,SAAS,QAAQ,QAAQ,IAAI,UAAU;AAC3C,MAAI,CAAC,QAAQ;AACX,aAAS,oBAAoB,QAAQ,OAAO,UAAU;AACtD,QAAI,WAAW,UAAU,KAAK;AAC5B,UAAI,QAAQ,QAAQ,QAAQ,IAAK,SAAQ,QAAQ,OAAO,QAAQ,QAAQ,KAAK,EAAE,KAAK,EAAE,KAAM;AAC5F,cAAQ,QAAQ,IAAI,YAAY,MAAM;AAAA,IACxC;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,QAAQ,aAAa,CAAC,GAAG,OAAO,WAAW,EAAE;AAC3D;AAOO,IAAM,6BAA6B,CACxC,KACA,gBAEA,YAAY,SAAS,IACjB,0BAA0B,GAAG,mBAAmB,YAAY,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,OAClF,0BAA0B,GAAG;;;AC1QnC,SAAS,kBAAkB;;;ACG3B,SAASC,GAAEC,IAAG;AACZ,MAAIA,KAAI;AACN,UAAM;AACR,SAAOA;AACT;AACA,SAASC,GAAED,IAAG;AACZ,UAAQ,OAAOA,MAAK,YAAY,OAAO,UAAUA,EAAC,MAAMA,MAAK,KAAKA,MAAK,KAAK,KAAK,OAAOA,EAAC,IAAI,EAAE,CAAC,OAAO,WAAW,IAAI;AACpH,UAAM;AAAA,EACR,EAAE;AACJ;AACA,SAASE,GAAEF,IAAG;AACZ,SAAOA,OAAM,QAAQ,OAAOA,MAAK,YAAYA,GAAE,MAAM;AACnD,IAAAA,KAAIA,GAAE,EAAE,GAAGA,GAAE,CAAC;AAChB,SAAOA;AACT;AACA,SAASG,GAAEH,IAAG,GAAG;AACf,SAAO,IAAII,OAAMA,GAAE,SAAS,IAAID,GAAE,IAAI,MAAMH,GAAE,GAAGI,IAAG,GAAG,CAAC,GAAG,IAAIA,GAAE,MAAM,IAAIJ,GAAE,GAAGI,EAAC;AACnF;AACA,SAASC,GAAEL,IAAG,GAAGI,IAAG;AAClB,MAAIJ,GAAE,MAAM,uBAAuBA,GAAE,MAAM;AACzC,WAAO;AACT,MAAIA,GAAE,MAAM;AACV,WAAOI;AACT;AACE,QAAI,IAAIE,GAAE,CAAC;AACX,WAAOF,MAAK;AAAA,EACd;AACF;AACA,SAAS,EAAEJ,IAAG;AACZ,SAAOA,GAAE,MAAM,qBAAqB,EAAE,GAAG,qBAAqB,IAAIA,GAAE,MAAM,qBAAqB,EAAE,GAAG,qBAAqB,IAAIA;AAC/H;AACA,SAAS,EAAEA,IAAG,GAAG;AACf,MAAIA,IAAG;AACL,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AAC9D,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAOL,GAAE,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,EACjK;AACE,WAAO,EAAE,GAAG,qBAAqB,MAAM,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AACjF;AACA,SAASQ,GAAEP,IAAG,GAAG;AACf,MAAIA,IAAG;AACL,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AAC9D,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAOL,GAAE,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,EACjK;AACE,WAAO,EAAE,GAAG,qBAAqB,MAAM,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AACjF;AACA,SAAS,EAAEC,IAAG,GAAG;AACf,SAAOA,KAAI,EAAE,GAAG,qBAAqB,MAAM,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE,IAAI,EAAE,GAAG,qBAAqB,MAAM,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAC9J;AACA,SAASQ,GAAER,IAAG,GAAG;AACf,MAAIA,GAAE,MAAM,qBAAqB;AAC/B,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AAC9D,WAAO,EAAEC,GAAED,IAAG,GAAG,KAAE,GAAG,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;AAAA,EACnG,WAAWJ,GAAE,MAAM,sBAAsB;AACvC,QAAII,KAAI,EAAE;AACV,QAAIA,GAAE,MAAM,oBAAoB;AAC9B,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,IAClL,WAAWA,GAAE,MAAM,oBAAoB;AACrC,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,IAClL,OAAO;AACL,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,IACzJ;AAAA,EACF,WAAWJ,GAAE,MAAM,oBAAoB;AACrC,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AAC9D,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAEA,EAAC,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,EAC7J,WAAWJ,GAAE,MAAM,uBAAuB;AACxC,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,OAAI,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,EAC3J,WAAWJ,GAAE,MAAM,oBAAoB;AACrC,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACpC,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAEA,EAAC,GAAG,OAAO,OAAI,OAAO,GAAG,OAAO,GAAG,SAAS,KAAG,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,EAC/J,WAAWJ,GAAE,MAAM,oBAAoB;AACrC,QAAII,KAAIJ,GAAE,SAAS,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AAC7E,WAAOO,GAAEF,GAAE,GAAG,GAAGD,EAAC,GAAG,EAAE,GAAG,kBAAkB,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;AAAA,EAClG,WAAWJ,GAAE,MAAM,qBAAqB;AACtC,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACpC,QAAI,MAAM,GAAG;AACX,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE;AACvB,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,IACzJ,OAAO;AACL,UAAI,IAAI,IAAI,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE;AAClC,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,IAC1J;AAAA,EACF,WAAWJ,GAAE,MAAM,mBAAmB;AACpC,QAAII,KAAIJ,GAAE,SAAS,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AAC7E,WAAO,EAAEK,GAAE,GAAG,GAAGD,EAAC,GAAG,EAAE,GAAG,kBAAkB,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;AAAA,EAClG,WAAWJ,GAAE,MAAM,iBAAiB;AAClC,QAAII,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,QAAI,MAAM,GAAG;AACX,UAAI,IAAI,EAAE;AACV,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,IACzJ,OAAO;AACL,UAAI,IAAI,IAAI,GAAG,IAAI,EAAE;AACrB,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,IAC1J;AAAA,EACF,WAAWJ,GAAE,MAAM,kBAAkB;AACnC,QAAII,KAAI,EAAE;AACV,QAAIA,GAAE,MAAM,sBAAsB;AAChC,UAAI,IAAI,EAAE;AACV,UAAI,GAAG;AACL,YAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACpC,eAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,qBAAqB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,MACnL,OAAO;AACL,YAAI,IAAI,EAAE;AACV,YAAI,MAAM,GAAG;AACX,cAAI,IAAI,EAAE;AACV,cAAI,MAAM,GAAG;AACX,gBAAI,IAAI,EAAE;AACV,mBAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,oBAAoB,GAAG,OAAO,OAAI,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,uBAAuB,EAAE;AAAA,UACvL,OAAO;AACL,gBAAI,IAAI,IAAI,GAAG,IAAI,EAAE;AACrB,mBAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,qBAAqB,GAAG,OAAO,OAAI,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,UACpL;AAAA,QACF,OAAO;AACL,cAAI,IAAI,IAAI,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE;AAClC,iBAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,qBAAqB,GAAG,OAAO,OAAI,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,QACpL;AAAA,MACF;AAAA,IACF,OAAO;AACL,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,IACzJ;AAAA,EACF,WAAWJ,GAAE,MAAM,sBAAsB;AACvC,QAAII,KAAI,EAAE;AACV,QAAIA,GAAE,MAAM,qBAAqB;AAC/B,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,IAClL,OAAO;AACL,UAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,aAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,IACzJ;AAAA,EACF,WAAW,EAAE,MAAM,MAAM,oBAAoB;AAC3C,QAAIA,KAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE;AACjD,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,mBAAmB,GAAG,OAAOA,IAAG,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,mBAAmB,EAAE;AAAA,EACjL,OAAO;AACL,QAAIA,KAAI,EAAE,OAAO,IAAI,EAAE;AACvB,WAAO,EAAE,GAAG,qBAAqB,MAAM,EAAE,GAAG,kBAAkB,OAAO,EAAE,GAAG,mBAAmB,GAAG,OAAO,OAAI,OAAOA,IAAG,OAAO,GAAG,SAAS,KAAG,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE;AAAA,EACpL;AACF;AACA,SAASK,GAAET,IAAG,GAAG;AACf,SAAOQ,GAAE,GAAGR,EAAC;AACf;AACA,SAASU,GAAEV,IAAG,GAAG;AACf,SAAOS,GAAET,IAAG,CAAC;AACf;AACA,SAASM,GAAEN,IAAG;AACZ,SAAO,CAACA;AACV;AACA,SAASW,GAAEX,IAAG;AACZ,MAAI,IAAI,CAACA,EAAC;AACV,WAASI,KAAI,GAAG,IAAI;AAClB,YAAQJ,GAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAOI,KAAIA,GAAE,CAAC,IAAI,EAAE,GAAGJ,IAAG,OAAOC,GAAED,GAAE,KAAK,GAAG,OAAOC,GAAED,GAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAAA,MACvE;AACE,cAAM,qCAAqCA,IAAG,IAAI;AAAA,IACtD;AACJ;AACA,SAASY,GAAEZ,IAAG;AACZ,MAAI,IAAI,CAACA,EAAC;AACV,WAASI,KAAI,GAAG,IAAI;AAClB,YAAQJ,GAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAOI,KAAIA,GAAE,CAAC,IAAI,EAAE,GAAGJ,IAAG,OAAO,OAAOA,GAAE,KAAK,GAAG,OAAO,OAAOA,GAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAAA,MACjF;AACE,cAAM,qCAAqCA,IAAG,IAAI;AAAA,IACtD;AACJ;AACA,SAASa,GAAEb,IAAG;AACZ,MAAI,IAAI,CAACA,EAAC;AACV,WAASI,KAAI,GAAG,IAAI;AAClB,YAAQJ,GAAE,GAAG;AAAA,MACX,KAAK;AACH,eAAOI,KAAIA,GAAE,CAAC,IAAI,EAAE,GAAGJ,IAAG,MAAMY,GAAEZ,GAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAAA,MAClD;AACE,cAAM,wCAAwCA,IAAG,IAAI;AAAA,IACzD;AACJ;AACA,IAAI,IAAoB,oBAAI,IAAI,CAAC,CAAC,WAAW,mBAAmB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,YAAY,oBAAoB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,WAAW,mBAAmB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,QAAQ,gBAAgB,GAAG,CAAC,WAAW,mBAAmB,GAAG,CAAC,WAAW,mBAAmB,GAAG,CAAC,YAAY,oBAAoB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,aAAa,qBAAqB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,UAAU,kBAAkB,GAAG,CAAC,WAAW,mBAAmB,GAAG,CAAC,SAAS,iBAAiB,GAAG,CAAC,OAAO,eAAe,GAAG,CAAC,QAAQ,gBAAgB,GAAG,CAAC,cAAc,sBAAsB,GAAG,CAAC,YAAY,oBAAoB,CAAC,CAAC;AAApvB,IAAuvBc,KAAoB,oBAAI,IAAI,CAAC,CAAC,qBAAqB,SAAS,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,sBAAsB,UAAU,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,qBAAqB,SAAS,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,kBAAkB,MAAM,GAAG,CAAC,qBAAqB,SAAS,GAAG,CAAC,qBAAqB,SAAS,GAAG,CAAC,sBAAsB,UAAU,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,uBAAuB,WAAW,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,oBAAoB,QAAQ,GAAG,CAAC,qBAAqB,SAAS,GAAG,CAAC,mBAAmB,OAAO,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC,kBAAkB,MAAM,GAAG,CAAC,wBAAwB,YAAY,GAAG,CAAC,sBAAsB,UAAU,CAAC,CAAC;AACv+C,SAAS,EAAEd,IAAG,GAAG;AACf,MAAII,KAAI,CAACJ,EAAC;AACV,WAAS,IAAI,CAAC,CAACI,IAAG,CAAC,CAAC,GAAG,EAAE,SAAS,KAAK;AACrC,QAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;AAC7B,QAAI,MAAM,QAAQ,OAAO,KAAK,SAAU;AACxC,QAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE;AAC3C,WAAO,EAAE,KAAK,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI;AAC5D,aAASW,MAAK,OAAO,KAAK,CAAC,EAAG,GAAE,KAAK,CAAC,GAAGA,EAAC,CAAC;AAAA,EAC7C;AACA,SAAOX,GAAE,CAAC;AACZ;AACA,IAAIY,KAAoB,gBAAAb,GAAE,CAACH,IAAG,MAAM;AAClC,MAAII,KAAIS,GAAEX,GAAEQ,GAAEC,GAAEX,EAAC,GAAG,CAAC,CAAC,CAAC;AACvB,SAAOY,GAAEZ,EAAC,GAAGI;AACf,GAAG,CAAC;AAHJ,IAGOa,KAAI,CAACjB,IAAG,MAAM,EAAEgB,GAAE,EAAEhB,IAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAGc,EAAC;;;ADzK7C,IAAM,WAAW,CAAC,aAA2D;AAAA,EAC3E,GAAG;AAAA,EACH,GAAI,QAAQ,YAAY,EAAE,WAAW,QAAQ,UAAU,IAAI,CAAC;AAC9D;AAEA,IAAM,UAAU,MAAuB;AACrC,MAAI,SAAS;AACb,SAAO,MAAM;AACX,UAAM,OAAO,GAAQ,MAAM;AAC3B,aAAS,KAAK;AACd,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAM,yBAAN,MAA6B;AAAA,EACzB,cAAc,oBAAI,IAAyB;AAAA,EAC3C,WAAW,oBAAI,IAAmC;AAAA,EAClD,UAAU,oBAAI,IAAmC;AAAA,EACjD,OAAO,oBAAI,IAAmC;AAAA,EAC9C,eAAe,oBAAI,IAAoB;AAAA,EACvC,WAAW,oBAAI,IAAsB;AAAA,EACrC,YAAY,oBAAI,IAAY;AAAA,EAC5B,WAAW,oBAAI,IAA6B;AAAA,EAC5C,aAAa,oBAAI,IAAiD;AAAA,EAE3E,UAAU,UAAmE;AAC3E,SAAK,WAAW,IAAI,QAAQ;AAC5B,WAAO,MAAM,KAAK,WAAW,OAAO,QAAQ;AAAA,EAC9C;AAAA,EAEA,QAAQ,MAAiD;AACvD,WAAO,KAAK,SAAS,IAAI,IAAI;AAAA,EAC/B;AAAA,EAEA,QAAQ,IAA+C;AACrD,UAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,UAAM,OAAO,KAAK,YAAY,IAAI,EAAE;AACpC,WAAO,WAAW,QAAQI,GAAY,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,QAAQ,MAAM,YAAY,UAAU;AAAA,EACpG;AAAA,EAEA,IAAI,MAAuB;AACzB,WAAO,KAAK,SAAS,IAAI,IAAI;AAAA,EAC/B;AAAA,EAEA,YAA8B;AAC5B,WAAO,CAAC,GAAG,KAAK,SAAS,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,QAAQ,QAAQ;AAAA,EACtE;AAAA,EAEA,UAAmC;AACjC,WAAO,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,QAAQ,UAAU,QAAQ;AAAA,EAC/E;AAAA,EAEA,MACE,UACA,UAAqD,CAAC,GACxB;AAG9B,QAAI,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,EAAE,KAAK,CAAAC,aAC/BA,SAAQ,aAAa,YAAYA,SAAQ,aAAa,CAAC,KAAK,UAAU,IAAIA,SAAQ,EAAE,CAAC,GAAG;AACxF,YAAM,IAAI,MAAM,wDAAwD;AAAA,IAC1E;AACA,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS,IAAI;AAC/C,UAAM,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI;AAC7C,SAAK,WAAW,WAAW,CAAC,QAAQ,WAAW;AAC7C,YAAM,IAAI,MAAM,uCAAuC,SAAS,IAAI,EAAE;AAAA,IACxE;AACA,QAAI,UAAU,QAAQ,UAAW,MAAK,OAAO,OAAO,EAAE;AACtD,UAAM,cAAc,KAAK,aAAa,IAAI,SAAS,IAAI,KAAK,KAAK;AACjE,QAAI,CAAC,OAAO,cAAc,UAAU,EAAG,OAAM,IAAI,MAAM,8BAA8B;AACrF,SAAK,aAAa,IAAI,SAAS,MAAM,UAAU;AAC/C,UAAM,UAAiC;AAAA,MACrC,IAAI,WAAW;AAAA,MACf,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,OAAO,QAAQ,SAAS,WAAW;AAAA,MACnC,eAAe;AAAA,MACf,cAAc,QAAQ,cAAc;AAAA,MACpC,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AACA,QAAI,SAAS,kBAAkB;AAC7B,cAAQ,qBAAqB,SAAS;AAAA,QAAiB,MACrD,KAAK,qBAAqB,SAAS,IAAI;AAAA,MACzC;AAAA,IACF;AACA,SAAK,KAAK,IAAI,QAAQ,IAAI,OAAO;AACjC,SAAK,YAAY,IAAI,QAAQ,IAAI,EAAE,GAAG,QAAQ,OAAO,EAAE,GAAG,QAAQ,SAAS,WAAW,SAAS,GAAG,OAAO,MAAM,OAAO,IAAI,OAAO,IAAI,SAAS,MAAM,CAAC;AACrJ,SAAK,SAAS,IAAI,QAAQ,IAAI,IAAI,gBAAgB,CAAC;AACnD,QAAI,QAAQ,QAAQ;AAClB,WAAK,QAAQ,IAAI,QAAQ,MAAM,OAAO;AACtC,WAAK,MAAM,EAAE,MAAM,UAAU,SAAS,SAAS,OAAO,EAAE,CAAC;AAAA,IAC3D,OAAO;AACL,YAAM,WAAW,KAAK,aAAa,OAAO;AAC1C,UAAI,YAAY,QAAQ,UAAW,MAAK,KAAK,aAAa,SAAS,EAAE,EAAE,MAAM,MAAM,MAAS;AAAA,IAC9F;AAEA,UAAM,cAAc,QAAQ;AAC5B,WAAO;AAAA,MACL,WAAW,QAAQ;AAAA,MACnB,MAAM,QAAQ;AAAA,MACd,YAAY,QAAQ;AAAA,MACpB,IAAI,SAAS;AACX,eAAO,QAAQ,UAAU;AAAA,MAC3B;AAAA,MACA,QAAQ,MAAM,KAAK,OAAO,QAAQ,EAAE;AAAA,MACpC,SAAS,YAAY;AACnB,YAAI,CAAC,YAAY,EAAG,QAAO,QAAQ;AACnC,eAAO,KAAK,aAAa,QAAQ,EAAE;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS,YAAyC;AAChD,UAAM,WAAW,WAAW,IAAI,CAAC,OAAO;AACtC,YAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,UAAI,CAAC,WAAW,QAAQ,UAAU,YAAY,QAAQ,WAAW;AAC/D,cAAM,IAAI,MAAM,oCAAoC,EAAE,EAAE;AAAA,MAC1D;AACA,UAAI,QAAQ,UAAU,YAAY,QAAQ,UAAU,UAAU;AAC5D,cAAM,IAAI,MAAM,8BAA8B,QAAQ,KAAK,KAAK,QAAQ,IAAI,EAAE;AAAA,MAChF;AACA,aAAO;AAAA,IACT,CAAC;AACD,UAAM,QAAQ,oBAAI,IAAY;AAC9B,eAAW,WAAW,UAAU;AAC9B,UAAI,MAAM,IAAI,QAAQ,IAAI,GAAG;AAC3B,cAAM,IAAI,MAAM,yDAAyD,QAAQ,IAAI,EAAE;AAAA,MACzF;AACA,YAAM,IAAI,QAAQ,IAAI;AACtB,YAAM,UAAU,KAAK,SAAS,IAAI,QAAQ,IAAI;AAC9C,UAAI,WAAW,QAAQ,OAAO,QAAQ,MAAM,CAAC,QAAQ,cAAc;AACjE,cAAM,IAAI,MAAM,uCAAuC,QAAQ,IAAI,EAAE;AAAA,MACvE;AAAA,IACF;AACA,UAAM,WAAqB,CAAC;AAC5B,eAAW,WAAW,UAAU;AAC9B,YAAM,WAAW,KAAK,aAAa,OAAO;AAC1C,UAAI,YAAY,SAAS,OAAO,QAAQ,IAAI;AAC1C,iBAAS,KAAK,SAAS,EAAE;AACzB,YAAI,QAAQ,aAAc,MAAK,KAAK,aAAa,SAAS,EAAE,EAAE,MAAM,MAAM,MAAS;AAAA,MACrF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WACE,MACA,UAAmG,CAAC,GACxE;AAC5B,UAAM,UAAU,KAAK,SAAS,IAAI,IAAI;AACtC,QAAI,CAAC,QAAS,QAAO;AACrB,QAAI,QAAQ,aAAa,UAAa,QAAQ,aAAa,QAAQ,SAAU,QAAO;AACpF,QACE,QAAQ,eAAe,WACtB,OAAO,QAAQ,eAAe,WAAW,QAAQ,aAAa,QAAQ,QAAQ,QAAQ,YACvF;AACA,aAAO;AAAA,IACT;AACA,QAAI,QAAQ,iBAAkB,MAAK,UAAU,IAAI,QAAQ,EAAE;AAC3D,SAAK,OAAO,QAAQ,EAAE;AACtB,SAAK,KAAK,aAAa,QAAQ,EAAE,EAAE,MAAM,MAAM,MAAS;AACxD,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,OAAO,IAAkB;AACvB,UAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,QAAI,CAAC,QAAS;AACd,UAAM,cAAc,KAAK,SAAS,IAAI,QAAQ,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,OAAO;AACzG,QAAI,KAAK,SAAS,IAAI,QAAQ,IAAI,GAAG,OAAO,GAAI,MAAK,SAAS,OAAO,QAAQ,IAAI;AACjF,QAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,OAAO,GAAI,MAAK,QAAQ,OAAO,QAAQ,IAAI;AAC/E,SAAK,MAAM,SAAS,EAAE,GAAG,SAAS,CAAC;AACnC,QAAI,YAAa,MAAK,MAAM,EAAE,MAAM,YAAY,SAAS,SAAS,OAAO,EAAE,CAAC;AAC5E,SAAK,KAAK,YAAY,OAAO,EAAE,MAAM,MAAM,MAAS;AAAA,EACtD;AAAA,EAEA,OAAO,KAAuB,UAAU,OAA4B;AAClE,UAAM,WAAoC,CAAC;AAC3C,QAAI;AACF,iBAAW,MAAM,IAAI,IAAI,GAAG,GAAG;AAC7B,cAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,YAAI,CAAC,WAAW,KAAK,MAAM,SAAS,EAAE,GAAG,UAAU,QAAQ,CAAC,MAAM,WAAW;AAC3E,gBAAM,IAAI,MAAM,oCAAoC,EAAE,EAAE;AAAA,QAC1D;AACA,iBAAS,KAAK,OAAO;AAAA,MACvB;AAAA,IACF,SAAS,OAAO;AACd,iBAAW,WAAW,SAAU,MAAK,MAAM,SAAS,EAAE,GAAG,UAAU,CAAC;AACpE,YAAM;AAAA,IACR;AACA,UAAM,cAAc,QAAQ;AAC5B,WAAO,YAAY;AACjB,UAAI,CAAC,YAAY,EAAG;AACpB,YAAM,QAAQ,IAAI,SAAS,IAAI,OAAO,YAAY;AAChD,aAAK,MAAM,SAAS,EAAE,GAAG,UAAU,CAAC;AACpC,cAAM,KAAK,YAAY,OAAO;AAAA,MAChC,CAAC,CAAC;AAAA,IACJ;AAAA,EACF;AAAA,EAEA,gBAAgB,IAAY,UAAU,OAA4B;AAChE,UAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,QAAI,CAAC,WAAW,KAAK,MAAM,SAAS,EAAE,GAAG,SAAS,QAAQ,CAAC,MAAM,WAAW;AAC1E,YAAM,IAAI,MAAM,oCAAoC,EAAE,EAAE;AAAA,IAC1D;AACA,UAAM,UAAU,QAAQ;AACxB,WAAO,YAAY;AACjB,UAAI,CAAC,QAAQ,EAAG;AAChB,WAAK,MAAM,SAAS,EAAE,GAAG,MAAM,CAAC;AAChC,YAAM,KAAK,YAAY,OAAO;AAAA,IAChC;AAAA,EACF;AAAA,EAEA,OAAO,IAAyB;AAC9B,UAAM,aAAa,KAAK,SAAS,IAAI,EAAE;AACvC,QAAI,CAAC,WAAY,OAAM,IAAI,MAAM,4BAA4B;AAC7D,WAAO,WAAW;AAAA,EACpB;AAAA,EAEA,OAAO,IAAkB;AACvB,UAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,QAAI,CAAC,QAAS;AACd,SAAK,MAAM,SAAS,EAAE,GAAG,SAAS,CAAC;AACnC,SAAK,SAAS,IAAI,EAAE,GAAG,MAAM,IAAI,MAAM,mCAAmC,CAAC;AAC3E,SAAK,OAAO,EAAE;AACd,SAAK,KAAK,YAAY,OAAO,EAAE,MAAM,MAAM,MAAS;AAAA,EACtD;AAAA,EAEA,WAAW,IAAY,OAAsB;AAC3C,UAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,QAAI,CAAC,QAAS;AACd,YAAQ,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,SAAK,MAAM,SAAS,EAAE,GAAG,QAAQ,CAAC;AAClC,SAAK,OAAO,EAAE;AAAA,EAChB;AAAA;AAAA,EAGA,MAAS,IAAY,WAAqC,UAAU,OAAmB;AACrF,QAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,EAAG,QAAO,QAAQ,OAAO,IAAI,MAAM,kDAAkD,CAAC;AACtH,QAAI;AACJ,QAAI;AAAE,YAAM,KAAK,gBAAgB,IAAI,OAAO;AAAA,IAAG,SACxC,OAAO;AAAE,aAAO,QAAQ,OAAO,KAAK;AAAA,IAAG;AAC9C,QAAI;AACJ,QAAI;AAAE,eAAS,QAAQ,QAAQ,UAAU,CAAC;AAAA,IAAG,SACtC,OAAO;AAAE,eAAS,QAAQ,OAAO,KAAK;AAAA,IAAG;AAChD,SAAK,SAAS,IAAI,MAAM;AACxB,UAAM,UAAU,MAAM;AAAE,WAAK,SAAS,OAAO,MAAM;AAAG,aAAO,IAAI;AAAA,IAAG;AACpE,SAAK,OAAO,KAAK,SAAS,OAAO,EAAE,MAAM,MAAM,MAAS;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,cAAiB,UAA0B,WAAqC,UAAU,OAAmB;AAC3G,UAAM,UAAU,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,EAAE,KAAK,UAAQ,KAAK,aAAa,YAAY,KAAK,UAAU,KAAK,IAAI,OAAO,CAAC;AACnH,QAAI,CAAC,QAAS,QAAO,QAAQ,OAAO,IAAI,MAAM,wCAAwC,CAAC;AACvF,WAAO,KAAK,MAAM,QAAQ,IAAI,WAAW,OAAO;AAAA,EAClD;AAAA,EAEA,qBAAqB,UAAwB;AAC3C,QAAI,KAAK,SAAS,IAAI,QAAQ,EAAG,MAAK,MAAM,EAAE,MAAM,WAAW,SAAS,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,MAAM,wBAAqC,oBAAI,IAAI,GAAkB;AACzE,UAAM,QAAyB,CAAC;AAChC,eAAW,WAAW,KAAK,KAAK,OAAO,GAAG;AACxC,UAAI,QAAQ,UAAU,SAAU;AAChC,UAAI,sBAAsB,IAAI,QAAQ,IAAI,EAAG,MAAK,UAAU,IAAI,QAAQ,EAAE;AAC1E,WAAK,OAAO,QAAQ,EAAE;AACtB,YAAM,KAAK,KAAK,YAAY,OAAO,CAAC;AAAA,IACtC;AACA,UAAM,WAAW,KAAK,IAAI,IAAI;AAC9B,UAAM,aAAa,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAK;AACtD,UAAM,aAAa,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,EAAE,QAAQ,aAAW,QAAQ,YAAY,CAAC,QAAQ,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC;AAC/I,SAAK,SAAS,MAAM;AACpB,SAAK,QAAQ,MAAM;AAAA,EACrB;AAAA,EAEA,aAAa,SAAmE;AAC9E,UAAM,UAAU,KAAK,SAAS,IAAI,QAAQ,IAAI;AAC9C,QAAI,SAAS,OAAO,QAAQ,MAAM,QAAQ,UAAU,SAAU,QAAO;AACrE,QAAI,WAAW,QAAQ,OAAO,QAAQ,GAAI,MAAK,OAAO,QAAQ,EAAE;AAChE,QAAI,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,OAAO,QAAQ,GAAI,MAAK,QAAQ,OAAO,QAAQ,IAAI;AACvF,QAAI,KAAK,MAAM,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,UAAW,OAAM,IAAI,MAAM,sCAAsC;AAChH,SAAK,SAAS,IAAI,QAAQ,MAAM,OAAO;AACvC,SAAK,MAAM,EAAE,MAAM,aAAa,SAAS,SAAS,OAAO,EAAE,CAAC;AAC5D,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,aAAa,IAA2B;AACpD,UAAM,UAAU,KAAK,KAAK,IAAI,EAAE;AAChC,QAAI,CAAC,QAAS;AACd,SAAK,OAAO,EAAE;AACd,SAAK,MAAM,SAAS,EAAE,GAAG,YAAY,CAAC;AACtC,UAAM,KAAK,YAAY,OAAO;AAAA,EAChC;AAAA,EAEA,MAAM,YAAY,SAA+C;AAC/D,QAAI,QAAQ,UAAW,QAAO,QAAQ;AAEtC,QAAI,KAAK,MAAM,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,aAAc;AACzD,YAAQ,YAAY,QAAQ,QAAQ,EAAE,KAAK,YAAY;AACrD,UAAI;AACF,cAAM,cAAc,QAAQ;AAC5B,eAAO,QAAQ;AACf,cAAM,cAAc;AACpB,cAAM,SAAS,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,EAAE,KAAK,WAAS,MAAM,OAAO,QAAQ,MAAM,MAAM,aAAa,QAAQ,YAAY,MAAM,UAAU,QAAQ;AAC/I,YAAI,CAAC,UAAU,CAAC,KAAK,UAAU,IAAI,QAAQ,EAAE,EAAG,OAAM,QAAQ,SAAS,QAAQ;AAAA,MACjF,SAAS,OAAO;AACd,aAAK,WAAW,QAAQ,IAAI,KAAK;AACjC,cAAM;AAAA,MACR;AACA,UAAI,KAAK,MAAM,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,WAAW;AACxD,cAAM,IAAI,MAAM,QAAQ,cAAc,mCAAmC;AAAA,MAC3E;AACA,WAAK,KAAK,OAAO,QAAQ,EAAE;AAC3B,WAAK,YAAY,OAAO,QAAQ,EAAE;AAClC,WAAK,SAAS,OAAO,QAAQ,EAAE;AAC/B,WAAK,UAAU,OAAO,QAAQ,EAAE;AAChC,WAAK,MAAM,EAAE,MAAM,UAAU,SAAS,SAAS,OAAO,EAAE,CAAC;AAAA,IAC3D,CAAC;AACD,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,UAAU,IAAY,SAA2B;AAC/C,UAAM,OAAO,KAAK,YAAY,IAAI,EAAE;AACpC,WAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,OAAO,YAAY,KAAKD,GAAY,MAAM,EAAE,GAAG,SAAS,QAAQ,CAAC,EAAE,QAAQ,MAAM;AAAA,EACjH;AAAA,EAEA,MAAM,SAAgC,OAAqD;AACzF,UAAM,OAAO,KAAK,YAAY,IAAI,QAAQ,EAAE;AAC5C,QAAI,CAAC,KAAM,QAAO;AAClB,QAAK,MAAM,MAAM,WAAW,KAAK,SAAS,OAAO,YAAY,KAAO,MAAM,MAAM,YAAY,KAAK,SAAS,OAAO,YAAY,GAAI;AAC/H,YAAM,IAAI,MAAM,wCAAwC;AAAA,IAC1D;AACA,UAAM,UAAUA,GAAY,MAAM,KAAK;AACvC,QAAI,QAAQ,KAAK,QAAQ,OAAO,YAAY,KAAK,QAAQ,KAAK,QAAQ,OAAO,YAAY,GAAG;AAC1F,YAAM,IAAI,MAAM,wCAAwC;AAAA,IAC1D;AACA,SAAK,YAAY,IAAI,QAAQ,IAAI,QAAQ,IAAI;AAC7C,YAAQ,QAAS,EAAE,QAAQ,UAAU,QAAQ,UAAU,UAAU,YAAY,SAAS,YAAY,QAAQ,UAAU,QAAQ,WAAW,EAAY,QAAQ,KAAK,MAAM,CAAC;AACvK,YAAQ,gBAAgB,QAAQ,KAAK;AACrC,YAAQ,YAAY,OAAO,QAAQ,KAAK,KAAK;AAC7C,YAAQ,WAAW,OAAO,QAAQ,KAAK,KAAK;AAC5C,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,MAAM,OAAyC;AAC7C,eAAW,YAAY,CAAC,GAAG,KAAK,UAAU,GAAG;AAC3C,UAAI;AACF,iBAAS,KAAK;AAAA,MAChB,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF;AACF;;;AH9XO,IAAM,wBAAwB,CAAC,UACpC,KAAK,IAAI,GAAG,KAAK,IAAI,SAAS,KAAK,GAAK,CAAC;AA2JpC,IAAM,6BAA6B;AAE1C,IAAM,sBAAsB;AAE5B,IAAM,eAAe,OAAO,IAAI,oBAAoB;AAMpD,IAAM,oBAAoB,CAAC,SAA2D;AACpF,QAAME,YAAW,gBAAgB,IAAI;AACrC,QAAM,UAAqB,CAACA,SAAQ;AACpC,QAAM,OAAO,oBAAI,QAAgB;AACjC,SAAO,QAAQ,SAAS,GAAG;AACzB,UAAM,QAAQ,QAAQ,IAAI;AAC1B,QAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,KAAK,IAAI,KAAK,EAAG;AACpE,SAAK,IAAI,KAAK;AACd,QAAI,OAAO,sBAAsB,eAAe,iBAAiB,mBAAmB;AAClF,YAAM,IAAI,qBAAqB,wDAAwD;AAAA,IACzF;AAGA,QAAI,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,+BAA+B;AAC3E,cAAQ,KAAM,MAA8B,MAAM;AAClD;AAAA,IACF;AACA,QAAI,YAAY,OAAO,KAAK,GAAG;AAC7B,cAAQ,KAAK,MAAM,MAAM;AACzB;AAAA,IACF;AACA,QAAI,iBAAiB,IAAK,YAAW,CAAC,KAAK,KAAK,KAAK,MAAO,SAAQ,KAAK,KAAK,KAAK;AACnF,QAAI,iBAAiB,IAAK,YAAW,SAAS,MAAO,SAAQ,KAAK,KAAK;AACvE,eAAW,OAAO,QAAQ,QAAQ,KAAK,GAAG;AACxC,YAAM,WAAW,OAAO,yBAAyB,OAAO,GAAG;AAC3D,UAAI,YAAY,WAAW,SAAU,SAAQ,KAAK,SAAS,KAAK;AAAA,IAClE;AAAA,EACF;AACA,SAAOA;AACT;AAEA,IAAM,oBAAoB,CACxB,UACA,gBAC0B;AAAA,EAC1B,GAAG;AAAA,EACH,QAAQ,WAAW,WAAW,WAAW,SAAS,SAC9C,EAAE,MAAM,QAAQ,UAAU,cAAc,IACxC,EAAE,MAAM,YAAY,UAAU,UAAU;AAAA,EAC5C,UAAU,SAAS;AAAA,EACnB,KAAK,GAAG,SAAS,IAAI,IAAI,WAAW,IAAI;AAC1C;AAEA,IAAM,iBAAiB;AAEvB,IAAM,uBAAuB,CAAC,WAC5B,eAAe;AAAA,EACb,KAAK,OAAO;AAAA,EACZ,aAAa,OAAO;AAAA,EACpB,aAAa,OAAO;AAAA,EACpB,cAAc,OAAO;AAAA,EACrB,MAAM,OAAO;AAAA,EACb,WAAW,OAAO;AAAA,EAClB,QAAQ,OAAO;AACjB,CAAC;AAEH,IAAM,iBAAiB,CAAC,UACtB,CAAC,GAAG,MAAM,UAAU,MAAM,EAAE,SAAS,kBAAkB,CAAC,EACrD,IAAI,CAAC,UAAU,MAAM,CAAC,EAAE,YAAY,CAAC;AAEnC,IAAM,oBAAoB,CAC/B,OACA,QAQA,sBAAsB,OACX;AACX,QAAM,kBAAkB,MAAM,UAAU,MAAM,EAAE,KAAK,EAAE,YAAY;AACnE,MAAI,CAAC,gBAAiB,QAAO;AAC7B,QAAM,aAAa,CAAC,GAAG,IAAI,IAAI,eAAe,eAAe,CAAC,CAAC;AAC/D,QAAM,MAAM,OAAO,IAAI,UAAU,MAAM,EAAE,YAAY;AACrD,QAAM,OAAO,OAAO,KAAK,UAAU,MAAM,EAAE,YAAY;AACvD,QAAM,cAAc,OAAO,YAAY,UAAU,MAAM,EAAE,YAAY;AACrE,QAAM,WAAW,OAAO,SAAS,UAAU,MAAM,EAAE,YAAY;AAC/D,QAAM,eAAe,oBAAoB,UAAU,MAAM,EAAE,YAAY;AACvE,QAAM,aAAa,OAAO,aAAa,IAAI,UAAU,MAAM,EAAE,YAAY;AACzE,QAAM,SAAS,KAAK,UAAU,OAAO,eAAe,CAAC,CAAC,EAAE,UAAU,MAAM,EAAE,YAAY;AACtF,QAAM,YAAY;AAAA,IAChB,KAAK,IAAI,IAAI,eAAe,GAAG,CAAC;AAAA,IAChC,MAAM,IAAI,IAAI,eAAe,IAAI,CAAC;AAAA,IAClC,aAAa,IAAI,IAAI,eAAe,WAAW,CAAC;AAAA,IAChD,UAAU,IAAI,IAAI,eAAe,QAAQ,CAAC;AAAA,IAC1C,cAAc,IAAI,IAAI,eAAe,YAAY,CAAC;AAAA,IAClD,WAAW,IAAI,IAAI,eAAe,SAAS,CAAC;AAAA,IAC5C,QAAQ,IAAI,IAAI,eAAe,MAAM,CAAC;AAAA,EACxC;AACA,QAAM,SAAS,OAAO,OAAO,SAAS;AACtC,MAAI,QAAQ;AACZ,MAAI,QAAQ,gBAAiB,UAAS;AACtC,MAAI,SAAS,gBAAiB,UAAS;AACvC,MAAI,IAAI,WAAW,eAAe,EAAG,UAAS;AAAA,WACrC,IAAI,SAAS,eAAe,EAAG,UAAS;AACjD,MAAI,YAAY,SAAS,eAAe,EAAG,UAAS;AACpD,MAAI,aAAa,SAAS,eAAe,EAAG,UAAS;AACrD,MAAI,OAAO,SAAS,eAAe,EAAG,UAAS;AAC/C,MAAI,eAAe;AACnB,aAAW,QAAQ,YAAY;AAC7B,UAAM,UAAU,OAAO,KAAK,CAAC,UAAU,MAAM,IAAI,IAAI,CAAC;AACtD,QAAI,CAAC,QAAS;AACd,oBAAgB;AAChB,QAAI,UAAU,IAAI,IAAI,IAAI,KAAK,UAAU,KAAK,IAAI,IAAI,EAAG,UAAS;AAClE,QAAI,UAAU,SAAS,IAAI,IAAI,EAAG,UAAS;AAC3C,QAAI,UAAU,YAAY,IAAI,IAAI,EAAG,UAAS;AAC9C,QAAI,UAAU,aAAa,IAAI,IAAI,EAAG,UAAS;AAC/C,QAAI,UAAU,UAAU,IAAI,IAAI,EAAG,UAAS;AAC5C,QAAI,UAAU,OAAO,IAAI,IAAI,EAAG,UAAS;AAAA,EAC3C;AACA,MAAI,WAAW,SAAS,KAAK,iBAAiB,WAAW,OAAQ,UAAS;AAC1E,SAAO;AACT;AAEA,IAAM,kBAAkB,CACtB,MACA,UACgF;AAChF,SAAO;AAAA,IACL,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AAAA,IACjE,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;AAAA,EACrE,EAAE,CAAC;AACL;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAW1B,YAAqB,iBAA+C;AAA/C;AACnB,SAAK,kBAAkB,UAAU,MAAM,KAAK,cAAc,QAAQ,CAAC;AAAA,EACrE;AAAA,EAZS,YAAY,IAAI,gBAAgB;AAAA,EAChC,SAAS,oBAAI,QAA6H;AAAA,EACnJ;AAAA,EACS,oBAAoB,IAAI,uBAAuB;AAAA,EAC/C,iBAAiB,oBAAI,IAAyD;AAAA,EAC9E,eAAe,oBAAI,IAAoB;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,eACE,SACA,aACM;AACN,SAAK,eAAe;AACpB,SAAK,0BAA0B;AAAA,EACjC;AAAA,EAEA,mBAAmB,QAAuC;AACxD,UAAM,YAAY,OAAO,SAAS,UAAU,OAAO,QAAQ,SAAS;AAIpE,UAAM,UAAU,OAAO,aAAa,SAAS,OAAO,SAAS,aAC3D,OAAO,aAAa,oBAAoB,QAAQ,OAAO,aAAa,iBAAiB;AACvF,YAAQ,aAAa,YAAY,KAAK,0BAA0B,gBAAgB,MAAM,CAAC,MAAM;AAAA,EAC/F;AAAA,EAEA,SAAS,UAA0B,UAAmC,CAAC,GAAS;AAC9E,SAAK,MAAM,UAAU,OAAO;AAAA,EAC9B;AAAA,EAEA,MACE,UACA,UAAqD,CAAC,GACxB;AAC9B,QAAI,KAAK,UAAU,OAAO,QAAS,OAAM,IAAI,MAAM,2BAA2B;AAC9E,QAAI,CAAC,oBAAoB,KAAK,SAAS,IAAI,GAAG;AAC5C,YAAM,IAAI,MAAM,iCAAiC,SAAS,IAAI,EAAE;AAAA,IAClE;AACA,UAAM,QAAQ,KAAK,kBAAkB,MAAM,UAAU,OAAO;AAC5D,SAAK,aAAa,OAAO,SAAS,IAAI;AACtC,WAAO;AAAA,EACT;AAAA,EAEA,yBAAyB,YAAyC;AAChE,WAAO,KAAK,kBAAkB,SAAS,UAAU;AAAA,EACnD;AAAA,EAEA,yBACE,UACY;AACZ,WAAO,KAAK,kBAAkB,UAAU,QAAQ;AAAA,EAClD;AAAA,EAEA,qBAAqB,UAAwB;AAC3C,SAAK,kBAAkB,qBAAqB,QAAQ;AAAA,EACtD;AAAA,EAEA,IAAI,MAAuB;AACzB,WAAO,KAAK,kBAAkB,IAAI,IAAI;AAAA,EACxC;AAAA,EAEA,uBAAuB,SAAqD;AAC1E,SAAK,uBAAuB;AAAA,EAC9B;AAAA,EAEA,gBAAgB,MAAc,QAAsB;AAClD,QAAI,CAAC,oBAAoB,KAAK,IAAI,GAAG;AACnC,YAAM,IAAI,MAAM,iCAAiC,IAAI,EAAE;AAAA,IACzD;AACA,QAAI,KAAK,kBAAkB,IAAI,IAAI,GAAG;AACpC,YAAM,IAAI,MAAM,yDAAyD,IAAI,EAAE;AAAA,IACjF;AACA,SAAK,aAAa,IAAI,MAAM,MAAM;AAAA,EACpC;AAAA,EAEA,uBAAgE;AAC9D,WAAO,CAAC,GAAG,KAAK,aAAa,QAAQ,CAAC,EACnC,IAAI,CAAC,CAAC,MAAM,MAAM,OAAO,EAAE,MAAM,OAAO,EAAE,EAC1C,KAAK,CAAC,MAAM,UAAU,KAAK,KAAK,cAAc,MAAM,IAAI,CAAC;AAAA,EAC9D;AAAA,EAEA,WACE,MACA,SAC4B;AAC5B,WAAO,KAAK,kBAAkB,WAAW,MAAM,OAAO;AAAA,EACxD;AAAA,EAEA,UAAU,SAAiF;AACzF,QAAI,QAAS,MAAK,cAAc,OAAO;AACvC,UAAM,UAAU,SAAS,iBACrB,CAAC,GAAG,IAAI,IAAI,KAAK,eAAe,QAAQ,cAAc,EAAE,SAAS,EAAE,IAAI,WAAS,KAAK,kBAAkB,QAAQ,MAAM,iBAAiB,GAAG,QAAQ,EAAE,OAAO,CAAC,aAAyC,QAAQ,QAAQ,CAAC,CAAC,CAAC,IACvN,KAAK,kBAAkB,UAAU;AACrC,WAAO,QACJ,IAAI,CAAC,cAAc,EAAE,MAAM,SAAS,MAAM,aAAa,SAAS,YAAY,EAAE,EAC9E,KAAK,CAAC,MAAM,UAAU,KAAK,KAAK,cAAc,MAAM,IAAI,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,oBACJ,cACA,SACqC;AACrC,WAAO,KAAK,qBAAqB,cAAc,SAAS,KAAK;AAAA,EAC/D;AAAA,EAEA,MAAM,sBACJ,cACA,SACoC;AACpC,WAAO,KAAK,qBAAqB,cAAc,SAAS,IAAI;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,iBAAiB,SAAmE;AACxF,cAAU,KAAK,cAAc,OAAO;AACpC,UAAM,UAAkC,CAAC;AACzC,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,UAAU,MAAM,KAAK,KAAK,EAAE,OAAO,IAAM,GAAG,OAAO;AACzD,YAAM,WAAW,oBAAI,IAA2C;AAChE,iBAAW,UAAU,QAAQ,OAAO,CAAC,cAAc,UAAU,aAAa,KAAK,GAAG;AAChF,cAAM,SAAS,OAAO;AACtB,YAAI,CAAC,UAAU,WAAW,gBAAgB,OAAO,KAAK,WAAW,GAAG,EAAG;AACvE,cAAM,SAAS,GAAG,MAAM;AACxB,cAAM,OAAO,OAAO,KAAK,WAAW,MAAM,IACtC,OAAO,KAAK,MAAM,OAAO,MAAM,IAC/B,OAAO;AACX,cAAM,QAAQ,SAAS,IAAI,MAAM,KAAK,CAAC;AACvC,cAAM,KAAK,EAAE,MAAM,aAAa,OAAO,YAAY,CAAC;AACpD,iBAAS,IAAI,QAAQ,KAAK;AAAA,MAC5B;AACA,UAAI,SAAS,OAAO,GAAG;AACrB,gBAAQ,aAAa,CAAC,GAAG,SAAS,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;AAAA,UACrE;AAAA,UACA;AAAA,QACF,EAAE;AAAA,MACJ;AACA,YAAM,iBAAiB,QACpB,OAAO,CAAC,WAAW,OAAO,aAAa,YAAY,EACnD,IAAI,CAAC,YAAY,EAAE,MAAM,OAAO,MAAM,aAAa,OAAO,YAAY,EAAE;AAC3E,UAAI,eAAe,SAAS,EAAG,SAAQ,iBAAiB;AACxD,aAAO;AAAA,IACT;AACA,UAAM,MAAM,KAAK,kBAAkB,QAAQ,KAAK,GAAG;AAGnD,UAAM,iBAAiB,KAAK,mBAAmB;AAC/C,QAAI,kBAAkB,eAAe,SAAS,GAAG;AAC/C,YAAM,WAAW,oBAAI,IAAsD;AAC3E,iBAAW,cAAc,gBAAgB;AACvC,cAAM,SAAS,WAAW;AAC1B,YAAI,CAAC,UAAU,WAAW,gBAAgB,WAAW,KAAK,WAAW,GAAG,EAAG;AAC3E,cAAM,SAAS,GAAG,MAAM;AACxB,cAAM,WAAW,WAAW,KAAK,WAAW,MAAM,IAC9C,WAAW,KAAK,MAAM,OAAO,MAAM,IACnC,WAAW;AACf,YAAI,QAAQ,SAAS,IAAI,MAAM;AAC/B,YAAI,CAAC,OAAO;AACV,kBAAQ,oBAAI,IAAI;AAChB,mBAAS,IAAI,QAAQ,KAAK;AAAA,QAC5B;AAIA,cAAM,IAAI,UAAU;AAAA,UAClB,MAAM;AAAA,UACN,aAAa;AAAA,YACX,OAAO,WAAW,IAAI;AAAA,YACtB,WAAW;AAAA,UACb;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,SAAS,OAAO,GAAG;AACrB,gBAAQ,aAAa,CAAC,GAAG,SAAS,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;AAAA,UACrE;AAAA,UACA,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC;AAAA,QAC3B,EAAE;AAAA,MACJ;AAAA,IACF;AACA,UAAM,aAAa,KAAK,kBAAkB,QAAQ,YAAY,GAAG;AACjE,QAAI,YAAY;AACd,UAAI;AACF,cAAM,cAAc,MAAM,WAAW,KAAK,CAAC,GAAG,OAAO;AACrD,YAAI,YAAY,SAAS,GAAG;AAC1B,kBAAQ,iBAAiB,YAAY,IAAI,CAAC,gBAAgB;AAAA,YACxD,MAAM,WAAW;AAAA,YACjB,aAAa;AAAA,cACX,cAAc,WAAW,IAAI;AAAA,cAC7B,WAAW;AAAA,YACb;AAAA,UACF,EAAE;AAAA,QACJ;AAAA,MACF,QAAQ;AAAA,MAGR;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,aACJ,SACA,SACiF;AACjF,cAAU,KAAK,cAAc,OAAO;AACpC,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,OAAO,KAAK,eAAe,QAAQ,cAAc,EAAE,SAAS,EAAE,IAAI,aAAW,QAAQ,GAAG,EAC3F,OAAO,CAAC,QAAQ,CAAC,QAAQ,YAAY,IAAI,WAAW,GAAG,QAAQ,QAAQ,GAAG,CAAC,EAC3E,OAAO,CAAC,QAAQ,QAAQ,YAAY,CAAC,0BAA0B,EAAE,IAAI,GAAG,CAAC,EACzE,KAAK;AACR,YAAM,UAAU,MAAM,QAAQ,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,SAAS,KAAK,OAAO,CAAC,CAAC;AAChF,YAAM,QAAQ,QAAQ,OAAO,UAAU,MAAM,EAAE,KAAK,EAAE,YAAY;AAClE,YAAM,WAAW,QACd,OAAO,CAAC,WAAW,CAAC,QAAQ,aAAa,OAAO,cAAc,QAAQ,SAAS,EAC/E;AAAA,QAAO,CAAC,WACP,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,OAAO,WAAW,GAAG,YAAY,EAAE,SAAS,KAAK;AAAA,MAC9E;AACF,YAAMC,QAAO,SAAS,MAAM,GAAG,sBAAsB,QAAQ,KAAK,CAAC;AACnE,aAAO,EAAE,SAASA,OAAM,OAAO,SAAS,QAAQ,WAAW,SAAS,SAASA,MAAK,OAAO;AAAA,IAC3F;AACA,UAAM,YAAY,QAAQ,WACtB,CAAC,KAAK,iBAAiB,QAAQ,QAAQ,CAAC,IACxC,KAAK,kBAAkB,UAAU;AACrC,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,UAAU,IAAI,OAAO,aAAa;AAChC,cAAM,cAAc,MAAM,aAAa,QAAQ,QAAQ,MAAM,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,KAAK,SAAS,OAAO,CAAC,CAAC;AAClJ,eAAO,YACJ;AAAA,UACC,CAAC,eACC,QAAQ,YACR,CAAC,0BAA0B,EAAE,IAAI,GAAG,SAAS,IAAI,IAAI,WAAW,IAAI,EAAE;AAAA,QAC1E,EACC,IAAI,CAAC,eAAe;AACnB,gBAAM,SAAS,kBAAkB,UAAU,UAAU;AAGrD,iBAAO,QAAQ,WACX,SACA;AAAA,YACE,GAAG;AAAA,YACH,aAAa;AAAA,cACX,OAAO;AAAA,cACP,OAAO;AAAA,YACT;AAAA,UACF;AAAA,QACN,CAAC;AAAA,MACL,CAAC;AAAA,IACH;AACA,UAAM,MAAM,MAAM,KAAK;AACvB,UAAM,OAAO,IAAI,MAAM,GAAG,sBAAsB,QAAQ,KAAK,CAAC;AAC9D,WAAO,EAAE,SAAS,MAAM,OAAO,IAAI,QAAQ,WAAW,IAAI,SAAS,KAAK,OAAO;AAAA,EACjF;AAAA,EACA,MAAM,KACJ,SACA,SACiC;AACjC,UAAM,EAAE,QAAQ,IAAI,MAAM,KAAK,aAAa,SAAS,OAAO;AAC5D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,QACJ,SACA,UAII,CAAC,GAC6B;AAClC,cAAU,KAAK,cAAc,OAAO;AACpC,UAAM,aAAa,QAAQ,iBACvB,CAAC,GAAG,IAAI;AAAA,MACN,KAAK,eAAe,QAAQ,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,WAAW;AACzE,cAAM,UAAU,KAAK,kBAAkB,QAAQ,OAAO,iBAAiB;AACvE,eAAO,UAAU,CAAC,CAAC,QAAQ,MAAM,QAAQ,QAAQ,CAAU,IAAI,CAAC;AAAA,MAClE,CAAC;AAAA,IACH,EAAE,OAAO,CAAC,IACV,QAAQ,WACN,CAAC,KAAK,iBAAiB,QAAQ,QAAQ,CAAC,IACxC,KAAK,kBAAkB,UAAU,GACpC,OAAO,CAAC,aAAa,CAAC,QAAQ,YAAY,SAAS,SAAS,QAAQ,QAAQ,EAC5E,OAAO,CAAC,aAAa,QAAQ,kBAAkB,SAAS,IAAI,KAAK,IAAI,EACrE,KAAK,CAAC,MAAM,UAAU,KAAK,KAAK,cAAc,MAAM,IAAI,CAAC;AAC5D,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,UAAU,IAAI,OAAO,cAAc;AAAA,QACjC;AAAA,QACA,SAAS,QAAQ,iBACb,MAAM,KAAK,KAAK,EAAE,UAAU,SAAS,MAAM,OAAO,IAAM,GAAG,OAAO,KACjE,MAAM,aAAa,QAAQ,QAAQ,MAAM,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,GACvH;AAAA,UACC,CAAC,eACC,CAAC,0BAA0B,EAAE,IAAI,GAAG,SAAS,IAAI,IAAI,WAAW,IAAI,EAAE;AAAA,QAC1E,EACC,IAAI,CAAC,eAAe,kBAAkB,UAAU,UAAU,CAAC;AAAA,MACpE,EAAE;AAAA,IACJ;AACA,UAAM,aAAa,MAAM,QAAQ,CAAC,EAAE,QAAQ,MAAM,OAAO,EACtD,KAAK,CAAC,MAAM,UAAU,KAAK,IAAI,cAAc,MAAM,GAAG,CAAC;AAC1D,UAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,MAAM,QAAQ,SAAS,GAAK,GAAG,GAAK,CAAC;AAC7E,UAAM,eAAe,IAAI,IAAI,WAAW,MAAM,GAAG,KAAK,EAAE,IAAI,CAAC,WAAW,OAAO,GAAG,CAAC;AACnF,UAAM,gBAAgB,MAAM,IAAI,CAAC,EAAE,UAAU,QAAQ,MAAM;AACzD,YAAM,cAAc,QACjB,OAAO,CAAC,WAAW,aAAa,IAAI,OAAO,GAAG,CAAC,EAC/C,KAAK,CAAC,MAAM,UAAU,KAAK,IAAI,cAAc,MAAM,GAAG,CAAC,EACvD,IAAI,CAAC,YAAY;AAAA,QAChB,KAAK,UAAU,OAAO,GAAG;AAAA,QACzB,WAAW,YAAY,SAAS,IAAI;AAAA,QACpC,KAAK,OAAO;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,aAAa,OAAO;AAAA,QACpB,gBAAgB,qBAAqB,MAAM;AAAA,QAC3C,MAAM,OAAO;AAAA,QACb,GAAI,OAAO,cAAc,SAAY,CAAC,IAAI,EAAE,WAAW,OAAO,UAAU;AAAA,QACxE,GAAI,OAAO,WAAW,SAAY,CAAC,IAAI,EAAE,QAAQ,OAAO,OAAO;AAAA,MACjE,EAAE;AACJ,aAAO;AAAA,QACL,KAAK,YAAY,SAAS,IAAI;AAAA,QAC9B,WAAW;AAAA,QACX,MAAM,SAAS;AAAA,QACf,aAAa,SAAS;AAAA,QACtB,gBAAgB,eAAe;AAAA,UAC7B,MAAM,SAAS;AAAA,UACf,aAAa,SAAS;AAAA,UACtB,SAAS,YAAY,IAAI,CAAC,WAAW,OAAO,cAAc;AAAA,QAC5D,CAAC;AAAA,QACD,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AACD,UAAM,iBAAiB,cAAc,OAAO,CAAC,OAAO,aAAa,QAAQ,SAAS,QAAQ,QAAQ,CAAC;AACnG,UAAM,WAAW,eAAe,cAAc,IAAI,CAAC,aAAa,SAAS,cAAc,CAAC;AACxF,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa,QAAQ,iBACjB,gGACA;AAAA,QACJ,gBAAgB;AAAA,MAClB;AAAA,MACA,WAAW;AAAA,MACX,cAAc,WAAW;AAAA,MACzB;AAAA,MACA,UAAU,mBAAmB,WAAW;AAAA,MACxC,SAAS,mBAAmB,WAAW,SAAS,CAAC,IAAI,CAAC,cAAc;AAAA,IACtE;AAAA,EACF;AAAA,EAEA,MAAM,OACJ,OACA,SACA,QAAQ,IACyB;AACjC,UAAM,kBAAkB,MAAM,UAAU,MAAM,EAAE,KAAK,EAAE,YAAY;AACnE,QAAI,CAAC,gBAAiB,QAAO,CAAC;AAC9B,UAAM,SAAS,MAAM,KAAK,KAAK,EAAE,OAAO,IAAM,GAAG,OAAO;AACxD,WAAO,OACJ,IAAI,CAAC,YAAY;AAAA,MAChB;AAAA,MACA,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,KAAK,kBAAkB,QAAQ,OAAO,QAAQ,GAAG,SAAS,eAAe;AAAA,MAC3E;AAAA,IACF,EAAE,EACD,OAAO,CAAC,UAAU,MAAM,QAAQ,CAAC,EACjC;AAAA,MACC,CAAC,MAAM,UACL,MAAM,QAAQ,KAAK,SAAS,KAAK,OAAO,IAAI,cAAc,MAAM,OAAO,GAAG;AAAA,IAC9E,EACC,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,EAC1C,IAAI,CAAC,UAAU,MAAM,MAAM;AAAA,EAChC;AAAA,EAEA,MAAM,SAAS,KAAa,SAAiE;AAC3F,cAAU,KAAK,cAAc,OAAO;AACpC,QAAI,IAAI,SAAS,GAAG,GAAG;AACrB,YAAM,EAAE,UAAU,YAAY,uBAAuB,IAAI,KAAK;AAAA,QAC5D;AAAA,QACA,QAAQ;AAAA,MACV;AACA,YAAM,WAAW,MAAM,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,mBAAmB;AAAA,MAC7B;AACA,UAAI,CAAC,SAAS,QAAQ;AACpB,cAAM,IAAI,sBAAsB,2BAA2B,KAAK,SAAS,WAAW,CAAC;AAAA,MACvF;AACA,YAAM,SAAS,SAAS;AACxB,UAAI,0BAA0B,qBAAqB,MAAM,MAAM,wBAAwB;AACrF,cAAM,IAAI,sBAAsB,yCAAyC,GAAG,EAAE;AAAA,MAChF;AACA,aAAO;AAAA,IACT;AACA,QAAI,QAAQ,gBAAgB;AAC1B,YAAM,SAAS,MAAM,QAAQ;AAAA,QAC3B,KAAK,eAAe,QAAQ,cAAc,EAAE,SAAS,EAAE,IAAI,aAAW,QAAQ,GAAG,EAAE;AAAA,UAAI,CAAC,cACtF,KAAK,SAAS,WAAW,OAAO;AAAA,QAClC;AAAA,MACF;AACA,YAAMC,WAAU,OAAO,OAAO,CAAC,WAAW,OAAO,SAAS,GAAG;AAC7D,UAAIA,SAAQ,WAAW,EAAG,QAAOA,SAAQ,CAAC;AAC1C,UAAIA,SAAQ,SAAS,GAAG;AACtB,cAAM,IAAI;AAAA,UACR,IAAI,GAAG,aAAaA,SAAQ,MAAM,8DAChCA,SAAQ,IAAI,CAAC,UAAU,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,QACtD;AAAA,MACF;AACA,YAAM,IAAI,sBAAsB,4CAA4C,GAAG,EAAE;AAAA,IACnF;AAGA,UAAM,UAAkC,CAAC;AACzC,UAAM,gBAA0B,CAAC;AACjC,eAAW,YAAY,KAAK,kBAAkB,UAAU,GAAG;AACzD,UAAI;AACJ,UAAI;AACF,sBAAc,MAAM,aAAa,QAAQ,QAAQ,MAAM,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;AAAA,MACzI,QAAQ;AACN;AAAA,MACF;AACA,iBAAW,cAAc,aAAa;AACpC,sBAAc,KAAK,WAAW,IAAI;AAClC,YAAI,WAAW,SAAS,IAAK,SAAQ,KAAK,kBAAkB,UAAU,UAAU,CAAC;AAAA,MACnF;AAAA,IACF;AACA,QAAI,QAAQ,WAAW,EAAG,QAAO,QAAQ,CAAC;AAC1C,QAAI,QAAQ,SAAS,GAAG;AACtB,YAAM,IAAI;AAAA,QACR,IAAI,GAAG,aAAa,QAAQ,MAAM,oDAChC,QAAQ,IAAI,CAAC,UAAU,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,MACtD;AAAA,IACF;AACA,UAAM,SAAS,iBAAiB,eAAe,GAAG;AAClD,UAAM,IAAI,sBAAsB,2BAA2B,KAAK,OAAO,WAAW,CAAC;AAAA,EACrF;AAAA,EAEA,MAAM,cACJ,KACA,MACA,SACA,OACqC;AACrC,cAAU,KAAK,cAAc,OAAO;AACpC,WAAO,kBAAkB,IAAI;AAC7B,UAAM,EAAE,SAAS,UAAU,YAAY,uBAAuB,IAAI,KAAK;AAAA,MACrE;AAAA,MACA,QAAQ;AAAA,IACV;AACA,cAAU,KAAK,gBAAgB,SAAS,OAAO;AAC/C,UAAM,gBAAgB,KAAK,kBAAkB,gBAAgB,QAAQ,EAAE;AACvE,UAAM,iBAAiB,KAAK,kBAAkB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACjE,QAAI;AACF,YAAM,WAAW,MAAM,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,mBAAmB;AAAA,MAC7B;AACA,UAAI,CAAC,SAAS,QAAQ;AACpB,cAAM,IAAI,sBAAsB,2BAA2B,KAAK,SAAS,WAAW,CAAC;AAAA,MACvF;AACA,YAAM,SAAS,SAAS;AACxB,YAAM,qBAAqB,SAAS,iBAAiB,SAAY,aAAa,OAAO;AACrF,YAAM,YAAY,EAAE,KAAK,OAAO,KAAK,YAAY,qBAAqB,MAAM,EAAE;AAC9E,UAAI,0BAA0B,qBAAqB,MAAM,MAAM,wBAAwB;AACrF,cAAM,IAAI,sBAAsB,yCAAyC,GAAG,EAAE;AAAA,MAChF;AACA,UAAI,OAAO,QAAQ,SAAS,UAAU;AACpC,cAAM,IAAI,MAAM,8CAA8C,GAAG,EAAE;AAAA,MACrE;AACA,UAAI,CAAC,SAAS,SAAS;AACrB,cAAM,IAAI,MAAM,0DAA0D,SAAS,IAAI,EAAE;AAAA,MAC3F;AAGA,UAAI,QAAQ,WAAW;AACrB,cAAM,aAAa,QAAQ,QAAQ,MAAM,QAAQ,UAAW,gBAAgB,MAAM,CAAC,CAAC;AAAA,MACtF;AACA,YAAM,kBAAkB;AAAA,QACtB,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AACA,YAAM,eAAe,mBAAmB,OAAO,KAAK,iBAAiB,IAAI;AACzE,YAAM,eAAe,SAAS,mBAC1B,MAAM;AAAA,QAAa,QAAQ;AAAA,QAAQ,MACjC,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,iBAAkB,oBAAoB,aAAa,MAAM,OAAO,CAAC;AAAA,MACjI,IACA,aAAa;AACjB,UAAI,OAAO,iBAAiB,YAAY,iBAAiB,QAAQ,MAAM,QAAQ,YAAY,GAAG;AAC5F,cAAM,IAAI,MAAM,4BAA4B,GAAG,2BAA2B;AAAA,MAC5E;AACA,YAAM,UAAU;AAAA,QACd,OAAO;AAAA,QACP;AAAA;AAAA;AAAA,QAGA,kBAAkB,YAAY;AAAA,QAC9B,aAAa;AAAA,MACf;AACA,UAAI,QAAQ,QAAS,OAAM,IAAI,MAAM,yBAAyB,GAAG,KAAK,QAAQ,OAAO,EAAE;AACvF,UAAI,QAAQ,SAAS;AACnB,cAAM,aAAa,QAAQ,QAAQ,MAAM,QAAQ,QAAS,gBAAgB,MAAM,GAAG,kBAAkB,QAAQ,IAAI,CAAC,CAAC;AAAA,MACrH;AACA,YAAM,WAAW,MAAM;AAAA,QAAa,QAAQ;AAAA,QAAQ,MAClD,KAAK,YAAY,SAAS,oBAAoB,WAAW,WAAW,QAAQ,MAAM,SAAS,QAAW,KAAK;AAAA,MAC7G;AACA,qBAAe,QAAQ,MAAM;AAC7B,UAAI,CAAC,YAAY,OAAO,SAAS,YAAY,YAAY;AACvD,cAAM,IAAI,MAAM,sBAAsB,GAAG,4BAA4B;AAAA,MACvE;AACA,aAAO,EAAE,OAAO,SAAS,OAAO,SAAS,SAAS,QAAQ;AAAA,IAC5D,UAAE;AACA,WAAK,cAAc,EAAE,MAAM,MAAM,MAAS;AAG1C,WAAK,eAAe,EAAE,MAAM,MAAM,MAAS;AAAA,IAC7C;AAAA,EACF;AAAA,EAEA,MAAM,OACJ,KACA,MACA,SACkB;AAClB,cAAU,KAAK,cAAc,OAAO;AACpC,WAAO,kBAAkB,IAAI;AAC7B,UAAM,iBAAiB,QAAQ,kBAAkB,QAAQ,OAAO,UAAU,KAAK,kBAAkB,IAAI,CAAC;AACtG,QAAI,eAAoF;AACxF,QAAI;AACJ,QAAI,mBAAmB;AACvB,QAAI;AACJ,QAAI;AACF,YAAM,EAAE,SAAS,UAAU,YAAY,uBAAuB,IAAI,KAAK;AAAA,QACrE;AAAA,QACA,QAAQ;AAAA,MACV;AACA,gBAAU,KAAK,gBAAgB,SAAS,OAAO;AAC/C,6BAAuB,KAAK,kBAAkB,gBAAgB,QAAQ,EAAE;AACxE,YAAM,WAAW,MAAM,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,mBAAmB;AAAA,MAC7B;AACA,UAAI,CAAC,SAAS,QAAQ;AACpB,cAAM,IAAI,sBAAsB,2BAA2B,KAAK,SAAS,WAAW,CAAC;AAAA,MACvF;AACA,YAAM,SAAS,SAAS;AACxB,YAAM,qBAAqB,SAAS,iBAAiB,SAAY,aAAa,OAAO;AACrF,YAAM,YAAY,EAAE,KAAK,OAAO,KAAK,YAAY,qBAAqB,MAAM,EAAE;AAC9E,UAAI,0BAA0B,qBAAqB,MAAM,MAAM,wBAAwB;AACrF,cAAM,IAAI,sBAAsB,yCAAyC,GAAG,EAAE;AAAA,MAChF;AACA,sBAAgB,SAAS,OAAO,UAAU,OAAO,IAAI;AAErD,qBAAe;AACf,UAAI,OAAO,QAAQ,SAAS,UAAU;AACpC,cAAM,IAAI;AAAA,UACR,wBAAwB,GAAG;AAAA,QAC7B;AAAA,MACF;AACA,UAAI,QAAQ,WAAW;AACrB,cAAM,aAAa,QAAQ,QAAQ,MAAM,QAAQ,UAAW,gBAAgB,MAAM,CAAC,CAAC;AAAA,MACtF;AAEA,qBAAe;AACf,YAAM,kBAAkB;AAAA,QACtB,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AACA,YAAM,eAAe,mBAAmB,OAAO,KAAK,iBAAiB,IAAI;AACzE,YAAM,eAAe,SAAS,mBAC1B,MAAM;AAAA,QAAa,QAAQ;AAAA,QAAQ,MACjC,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,iBAAkB,oBAAoB,aAAa,MAAM,OAAO,CAAC;AAAA,MACjI,IACA,aAAa;AACjB,UAAI,OAAO,iBAAiB,YAAY,iBAAiB,QAAQ,MAAM,QAAQ,YAAY,GAAG;AAC5F,cAAM,IAAI,qBAAqB,4BAA4B,GAAG,2BAA2B;AAAA,MAC3F;AAEA,qBAAe;AACf,YAAM,UAAU;AAAA,QACd,OAAO;AAAA,QACP;AAAA;AAAA;AAAA,QAGA,kBAAkB,YAAY;AAAA,QAC9B,aAAa;AAAA,MACf;AACA,sBAAgB,SAAS,kBAAkB,QAAQ,IAAI,CAAC;AACxD,UAAI,QAAQ,cAAe,iBAAgB,WAAW,gBAAgB,QAAQ,aAAa,CAAC;AAG5F,UAAI,QAAQ,SAAS;AAUnB,cAAM,iBAAiB,OAAO;AAC9B,cAAM,qBACJ,OAAO,mBAAmB,YAC1B,mBAAmB,QACnB,CAAC,MAAM,QAAQ,cAAc,KAC7B,OAAQ,eAA2C,eAAe,YACjE,eAA2C,eAAe,OACrD,eAA2C,aAC7C;AACN,cAAM,cAAuC,CAAC;AAC9C,mBAAW,CAAC,KAAKC,MAAK,KAAK,OAAO,QAAQ,QAAQ,IAAI,GAAG;AACvD,gBAAM,WAAW,qBAAqB,mBAAmB,GAAG,IAAI;AAChE,gBAAM,eACJ,OAAO,aAAa,YAAY,aAAa,OACxC,SAAqC,OACtC;AACN,cAAI,CAAC,MAAM,QAAQ,YAAY,EAAG;AAClC,cACE,OAAOA,WAAU,YACjB,OAAOA,WAAU,YACjB,OAAOA,WAAU,WACjB;AACA;AAAA,UACF;AACA,cAAI,OAAOA,MAAK,EAAE,SAAS,sBAAuB;AAClD,cAAI,CAAC,aAAa,SAASA,MAAK,EAAG;AACnC,sBAAY,GAAG,IAAIA;AAAA,QACrB;AACA,YAAI,OAAO,KAAK,WAAW,EAAE,SAAS,GAAG;AACvC,gBAAM,UAA2B;AAAA,YAC/B;AAAA,YACA,kBAAkB,GAAG,0BAA0B,GAAGC,YAAW,CAAC;AAAA,YAC9D,WAAW,KAAK,IAAI;AAAA,YACpB,MAAM,OAAO;AAAA,YACb,UAAU,OAAO;AAAA,YACjB,MAAM;AAAA,YACN,SAAS;AAAA,YACT,OAAO,yBAAyB,GAAG,KAAK,QAAQ,OAAO;AAAA,YACvD,SAAS,KAAK,IAAI;AAAA,YAClB,GAAI,SAAS,iBAAiB,SAC1B,EAAE,cAAc,SAAS,aAAa,IACtC,CAAC;AAAA,UACP;AACA,kBAAQ,OAAO,KAAK,OAAO;AAAA,QAC7B;AACA,cAAM,IAAI,qBAAqB,yBAAyB,GAAG,KAAK,QAAQ,OAAO,EAAE;AAAA,MACnF;AAEA,qBAAe;AACf,YAAM,aAAa,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,gBAAgB,MAAM,GAAG,kBAAkB,QAAQ,IAAI,CAAC,CAAC;AAElH,qBAAe;AACf,YAAM,mBAAmB,GAAG,0BAA0B,GAAGA,YAAW,CAAC;AACrE,YAAM,SAAS,OAAO;AACtB,YAAM,kBAAkB,CAAC,GAAG,KAAK,eAAe,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW;AAC5E,cAAM,WAAW,gBAAgB,QAAQ,OAAO,MAAM;AACtD,eAAO,WAAW,CAAC,EAAE,SAAS,OAAO,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;AAAA,MAC9D,CAAC,EAAE,MAAM,GAAG,EAAE;AACd,UAAI,gBAAgB,SAAS,KAAK,QAAQ,iBAAiB,UAAU;AACnE,uBAAe;AACf,cAAM,IAAI;AAAA,UACR,8BAA8B,GAAG,KAAK,gBACnC,IAAI,CAAC,aAAa;AAAA,YACjB,SAAS;AAAA,YACT,SAAS;AAAA,YACT,SAAS;AAAA,UACX,CAAC,EACA,KAAK,IAAI,CAAC;AAAA,QACf;AAAA,MACF;AACA,YAAM,cAAc,YAAY,KAAK,QAAQ,IAAI;AACjD,YAAM,cAA+B;AAAA,QACnC;AAAA,QACA;AAAA,QACA,WAAW,KAAK,IAAI;AAAA,QACpB,MAAM,OAAO;AAAA,QACb,UAAU,OAAO;AAAA,QACjB,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,QACA,GAAI,gBAAgB,SAAS,IAAI,EAAE,gBAAgB,IAAI,CAAC;AAAA,QACxD,GAAI,SAAS,iBAAiB,SAC1B,EAAE,cAAc,SAAS,aAAa,IACtC,CAAC;AAAA,MACP;AACA,cAAQ;AACR,yBAAmB;AACnB,cAAQ,OAAO,KAAK,WAAW;AAC/B,cAAQ,oBAAoB;AAAA,QAC1B,MAAM;AAAA,QACN,QAAQ;AAAA,QACR;AAAA,QACA,MAAM;AAAA,MACR,CAAC;AACD,cAAQ,OAAO,WAAW,GAAG,EAAE;AAC/B,WAAK,eAAe,IAAI,kBAAkB,EAAE,KAAK,OAAO,CAAC;AACzD,UAAI,wBAAwB;AAC5B,UAAI;AACJ,UAAI,kBAAkB;AACtB,UAAI;AACJ,YAAI,KAAK,gBAAgB,KAAK,mBAAmB,MAAM,GAAG;AACxD,gBAAM,SAAS,MAAM,aAAa,QAAQ,QAAQ,MAChD,KAAK,aAAc,SAAS,QAAQ,kBAAkB,KAAK,kBAAkB,QAAQ,IAAI,GAAG,KAAK,UAAU,CAAC,QAAQ,IAAI,UAAU,YAAY,QAAQ,gBAAgB,MAAM,MAAM,QAAQ,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC;AACpN,cAAI,OAAO,KAAK;AACd,4BAAgB,MAAM,aAAa,QAAQ,QAAQ,MAAM,KAAK,YAAY,SAAS,oBAAoB,WAAW,UAAU,QAAQ,MAAM,SAAS,OAAO,KAAK,CAAC;AAChK,oCAAwB;AACxB,wBAAY,aAAa;AACzB,gBAAI,OAAO,OAAO,gBAAgB,QAAW;AAC3C,oBAAM,kBAAkB,YAAY,KAAK,OAAO,OAAO,WAAW;AAClE,0BAAY,OAAO;AAAA,gBACjB;AAAA,gBACA;AAAA,cACF;AACA,8BAAgB,SAAS,kBAAkB,OAAO,OAAO,WAAW,CAAC;AACrE,sBAAQ,oBAAoB;AAAA,gBAC1B,MAAM;AAAA,gBACN,QAAQ;AAAA,gBACR,MAAM;AAAA,cACR,CAAC;AAAA,YACH;AACA,gBAAI,OAAO,OAAO,OAAO,QAAQ;AAC/B,0BAAY,QAAQ,CAAC,GAAI,YAAY,SAAS,CAAC,GAAI,GAAG,OAAO,OAAO,KAAK;AACzE,kBAAI,OAAO,OAAO,UAAW,aAAY,YAAY,OAAO,OAAO;AAAA,YACrE;AACA,gBAAI,OAAO,OAAO,YAAY,OAAW,aAAY,UAAU,OAAO,OAAO;AAAA,UAC/E;AAAA,QACF;AACE,YAAI,CAAC,uBAAuB;AAC5B,4BAAkB;AAClB,0BAAgB,MAAM;AAAA,YAAa,QAAQ;AAAA,YAAQ,MACjD,KAAK,YAAY,SAAS,oBAAoB,WAAW,UAAU,QAAQ,MAAM;AAAA,cACjF,GAAG;AAAA,cACH;AAAA,cACA,OAAO,SAAS;AACd,oBAAI,CAAC,iBAAkB;AACvB,wBAAQ,OAAO,OAAO;AACtB,wBAAQ,oBAAoB;AAAA,kBAC1B,MAAM;AAAA,kBACN,QAAQ;AAAA,kBACR,QAAQ,EAAE,MAAM,YAAY,QAAQ;AAAA,gBACtC,CAAC;AAAA,cACH;AAAA,cACA,SAAS,QAAQ;AACf,oBAAI,CAAC,iBAAkB;AACvB,wBAAQ,WAAW,MAAM;AACzB,wBAAQ,oBAAoB;AAAA,kBAC1B,MAAM;AAAA,kBACN,QAAQ;AAAA,kBACR;AAAA,gBACF,CAAC;AAAA,cACH;AAAA,cACA,YAAY,QAAQ,MAAM;AACxB,oBAAI,CAAC,iBAAkB;AACvB,oBAAI,CAAC,YAAY,MAAO,aAAY,QAAQ,CAAC;AAC7C,2BAAW,SAAS,OAAQ,aAAY,MAAM,KAAK,KAAK;AACxD,oBAAI,KAAM,aAAY,YAAY;AAAA,cACpC;AAAA,cACA,gBAAgB,aAAa;AAC3B,oBAAI,CAAC,iBAAkB;AACvB,sBAAM,iBAAiB,YAAY,KAAK,WAAW;AACnD,4BAAY,OAAO;AAAA,kBACjB;AAAA,kBACA;AAAA,gBACF;AACA,gCAAgB,SAAS,kBAAkB,WAAW,CAAC;AACvD,wBAAQ,oBAAoB;AAAA,kBAC1B,MAAM;AAAA,kBACN,QAAQ;AAAA,kBACR,MAAM;AAAA,gBACR,CAAC;AAAA,cACH;AAAA,cACA,cAAc,SAAS;AACrB,oBAAI,CAAC,iBAAkB;AACvB,4BAAY,UAAU;AAAA,cACxB;AAAA,YACA,CAAC,EAAE,QAAQ,MAAM;AACf,kBAAI,OAAO,SAAS,OAAQ,MAAK,cAAc,UAAU;AACzD,mBAAK,eAAe,OAAO,gBAAgB;AAAA,YAC7C,CAAC;AAAA,UACH;AAAA,QACA;AAAA,MACF,UAAE;AACA,YAAI,CAAC,gBAAiB,MAAK,eAAe,OAAO,gBAAgB;AAAA,MACnE;AACA,YAAM,QAAQ,KAAK,kBACf,MAAM,aAAa,QAAQ,QAAQ,MAAM,KAAK,gBAAiB,MAAM;AAAA,QACnE;AAAA,QACA,MAAM,kBAAkB,QAAQ,IAAI;AAAA,QACpC,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,MACrD,CAAC,CAAC,IACF;AACJ,YAAM,UAAU,cAAc,OAAO,QAAQ,cAAc;AAC3D,YAAM,cAAc,kBAAkB,KAAK;AAC3C,kBAAY,UAAU,gBAAgB;AACtC,UAAI,YAAa,aAAY,QAAQ;AACrC,kBAAY,cAAc,QAAQ;AAClC,kBAAY,kBAAkB,QAAQ;AACtC,YAAM,gBAAgB,cAAc,QAAQ,KAAK;AACjD,kBAAY,SAAS,oBAAoB,eAAe,qBAAqB;AAC7E,kBAAY,UAAU,KAAK,IAAI;AAC/B,cAAQ,oBAAoB;AAAA,QAC1B,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS,gBAAgB;AAAA,QACzB,QAAQ;AAAA,QACR,GAAI,YAAY,YAAY,SAAY,EAAE,SAAS,YAAY,QAAQ,IAAI,CAAC;AAAA,QAC5E,GAAI,cAAc,EAAE,OAAO,YAAY,IAAI,CAAC;AAAA,MAC9C,CAAC;AACD,UAAI,aAAa;AACf,wBAAgB,KAAK,UAAU,aAAa,oBAAoB,KAAK,GAAG,QAAQ,OAAO;AAAA,UACrF,iBAAiB,QAAQ;AAAA,QAC3B,CAAC;AAAA,MACH,OAAO;AACL,wBAAgB,QAAQ,QAAQ,OAAO,EAAE,iBAAiB,QAAQ,UAAU,CAAC;AAAA,MAC/E;AACA,qBAAe,QAAQ,MAAM;AAC7B,aAAO,QAAQ;AAAA,IACjB,SAAS,OAAO;AACd,YAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,sBAAgB,KAAK,cAAc,OAAO,0BAA0B,OAAO,QAAQ,MAAM,CAAC;AAC1F,UAAI,OAAO;AACT,cAAM,UAAU;AAChB,cAAM,QAAQ;AACd,cAAM,UAAU,KAAK,IAAI;AACzB,gBAAQ,oBAAoB;AAAA,UAC1B,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,UACd,SAAS;AAAA,UACT,OAAO,MAAM;AAAA,QACf,CAAC;AAAA,MACH;AACA,YAAM;AAAA,IACR,UAAE;AACA,yBAAmB;AACnB,UAAI,MAAO,OAAM,YAAY,KAAK,IAAI;AACtC,WAAK,uBAAuB,EAAE,MAAM,MAAM,MAAS;AAAA,IACrD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,UACJ,KACA,MACA,SACA,QAQA;AACA,QAAI,CAAC,KAAK,wBAAyB,QAAO;AAC1C,QAAI;AACF,gBAAU,KAAK,cAAc,OAAO;AACpC,aAAO,kBAAkB,IAAI;AAC7B,YAAM,EAAE,SAAS,UAAU,YAAY,uBAAuB,IAAI,KAAK;AAAA,QACrE;AAAA,QACA,QAAQ;AAAA,MACV;AACA,gBAAU,KAAK,gBAAgB,SAAS,OAAO;AAC/C,YAAM,aAAa,MAAM,aAAa,QAAQ,QAAQ,MACpD,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,SAAS,YAAY,OAAO,CAAC,CAAC;AAC9F,UAAI,CAAC,WAAY,QAAO;AACxB,YAAM,SAAS,kBAAkB,UAAU,UAAU;AACrD,UAAI,0BAA0B,qBAAqB,MAAM,MAAM,wBAAwB;AACrF,eAAO;AAAA,MACT;AACA,UAAI,mBAAmB,SAAS,MAAM,YAAY,WAAW,WAAW,GAAG;AACzE,eAAO;AAAA,MACT;AACA,YAAM,YAAY,EAAE,KAAK,OAAO,KAAK,YAAY,qBAAqB,MAAM,EAAE;AAC9E,UAAI,CAAC,KAAK,mBAAmB,MAAM,EAAG,QAAO;AAC7C,YAAM,kBAAkB;AAAA,QACtB,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AACA,YAAM,eAAe,sBAAsB,OAAO,KAAK,MAAM,eAAe;AAC5E,YAAM,eAAe,SAAS,mBAC1B,MAAM,aAAa,QAAQ,QAAQ,MACjC,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,iBAAkB,OAAO,MAAM,cAAc,OAAO,CAAC,CAAC,IACtH;AACJ,UACE,OAAO,iBAAiB,YACxB,iBAAiB,QACjB,MAAM,QAAQ,YAAY,GAC1B;AACA,eAAO;AAAA,MACT;AACA,YAAM,eAAe;AAAA,QAAyB,OAAO;AAAA,QAAK;AAAA,QACxD,sBAAsB,OAAO,KAAK,kBAAkB,YAAY,GAAG,eAAe;AAAA,MACpF,EAAE;AACF,UAAI,kBAAkB,iBAAiB,YAAY,EAAG,QAAO;AAC7D,YAAM,mBAAmB,GAAG,0BAA0B,QAAQA,YAAW,CAAC;AAC1E,YAAM,UAAU,MAAM,KAAK,gBAAgB,SAAS,OAAO,MAAM,WAAW,aAAa,cAAc,KAAK,gBAAgB,SAAS;AAAA,QACnI,GAAG;AAAA,QAAS;AAAA,QAAkB,SAAS;AAAA,QAAC;AAAA,QAAG,WAAW;AAAA,QAAC;AAAA,QACvD,YAAY,QAAQ,MAAM;AAAE,iBAAO,QAAQ,CAAC,GAAI,OAAO,SAAS,CAAC,GAAI,GAAG,MAAM;AAAG,cAAI,KAAM,QAAO,YAAY;AAAA,QAAM;AAAA,QACpH,gBAAgB,aAAa;AAAE,iBAAO,cAAc;AAAA,QAAa;AAAA,QACjE,cAAc,SAAS;AAAE,iBAAO,UAAU;AAAA,QAAS;AAAA,MACrD,CAAC,CAAC;AACF,aAAO;AAAA,QACL,IAAI,eAAe;AAAE,iBAAO,kBAAkB,YAAY;AAAA,QAAG;AAAA,QAC7D,cAAc,KAAK,UAAU,CAAC,QAAQ,IAAI,UAAU,YAAY,QAAQ,gBAAgB,MAAM,MAAM,QAAQ,OAAO,UAAU,IAAI,CAAC;AAAA,QAClI,SAAS,OAAM,WAAU;AACvB,gBAAM,WAAW,YAAY,IAAI,CAAC,QAAQ,QAAS,GAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAE,CAAC;AAC/E,gBAAM,SAAS,QAAQ,QAAQ;AAC/B,eAAK,OAAO,MAAM,MAAM,MAAS;AACjC,iBAAO,aAAa,UAAU,MAAM,MAAM;AAAA,QAC5C;AAAA,MACF;AAAA,IACF,QAAQ;AAEN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,kBAA0B,YAAY,KAAsB;AAC9E,SAAK,cAAc,kBAAkB,gBAAgB;AACrD,UAAM,YAAY,IAAI;AAAA,MACpB,KAAK,kBAAkB,QAAQ,EAAE,IAAI,CAAC,YAAY,QAAQ,QAAQ;AAAA,IACpE;AACA,UAAM,aAAa,CAAC,GAAG,SAAS,EAAE;AAAA,MAAQ,CAAC,aACzC,SAAS,kBACL,CAAC,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,gBAAiB,gBAAgB,GAAG,IAAI,CAAC,IACxG,CAAC;AAAA,IACP;AACA,UAAM,aAAa,YAAY,SAAS;AAAA,EAC1C;AAAA;AAAA;AAAA,EAIA,eAAe,MAAoB;AACjC,UAAM,UAAU,KAAK,kBAAkB,QAAQ,IAAI;AACnD,QAAI,QAAS,MAAK,kBAAkB,OAAO,QAAQ,EAAE;AAAA,EACvD;AAAA,EAEA,iBAAiI;AAC/H,WAAO,KAAK,kBAAkB,QAAQ,EAAE,IAAI,cAAY;AAAA,MAAE,MAAM,QAAQ;AAAA,MAAM,YAAY,QAAQ;AAAA,MAAY,OAAO,QAAQ;AAAA,MAC3H,UAAU,QAAQ;AAAA,MAAU,SAAS,KAAK,kBAAkB,OAAO,QAAQ,EAAE,EAAE;AAAA,MAC/E,GAAI,QAAQ,aAAa,EAAE,OAAO,QAAQ,WAAW,IAAI,CAAC;AAAA,IAAG,EAAE;AAAA,EACnE;AAAA,EAEA,MAAM,MAAM,wBAAqC,oBAAI,IAAI,GAAkB;AACzE,SAAK,UAAU,MAAM,IAAI,MAAM,wBAAwB,CAAC;AACxD,QAAI;AACF,UAAI,KAAK,YAAa,QAAO,MAAM,KAAK,aAAa,MAAM;AAAA,IAC7D,UAAE;AACA,YAAM,KAAK,kBAAkB,MAAM,qBAAqB;AAAA,IAC1D;AAAA,EACF;AAAA,EAGA,MAAM,qBACJ,cACA,SACA,QACoC;AACpC,cAAU,KAAK,cAAc,OAAO;AACpC,UAAM,aAAa,oBAAI,IAAqB;AAC5C,eAAW,eAAe,cAAc;AACtC,YAAM,OAAO,OAAO,gBAAgB,WAAW,cAAc,YAAY,KAAK,KAAK;AACnF,UAAI,CAAC,OAAO,IAAI,SAAS,OAAO,CAAC,IAAI,SAAS,GAAG,GAAG;AAClD,cAAM,IAAI,MAAM,4DAA4D,OAAO,SAAS,EAAE;AAAA,MAChG;AACA,YAAM,WAAW,OAAO,gBAAgB,WAAW,QAAQ,YAAY,aAAa;AACpF,iBAAW,IAAI,MAAM,WAAW,IAAI,GAAG,KAAK,SAAS,QAAQ;AAAA,IAC/D;AAEA,UAAM,UAAoB,CAAC;AAC3B,UAAM,kBAA4B,CAAC;AACnC,UAAM,WAAW,oBAAI,IAAyC;AAC9D,UAAM,oBAAgD,CAAC;AACvD,QAAI;AACJ,QAAI;AACF,iBAAW,CAAC,KAAK,QAAQ,KAAK,CAAC,GAAG,UAAU,EAAE;AAAA,QAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,MAChE,KAAK,cAAc,KAAK;AAAA,MAC1B,GAAG;AACD,YAAI;AACF,gBAAM,EAAE,SAAS,UAAU,YAAY,uBAAuB,IAAI,KAAK,UAAU,KAAK,QAAQ,cAAc;AAC5G,gBAAM,UAAU,KAAK,kBAAkB,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC1D,4BAAkB,KAAK,OAAO;AAC9B,gBAAM,aAAa,MAAM;AAAA,YAAa,QAAQ;AAAA,YAAQ,MACpD,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,SAAS,YAAY,OAAO,CAAC;AAAA,UAC7F;AACA,cAAI,CAAC,WAAY,OAAM,IAAI,sBAAsB,0BAA0B,GAAG,EAAE;AAChF,gBAAM,SAAS,kBAAkB,UAAU,UAAU;AACrD,cAAI,0BAA0B,qBAAqB,MAAM,MAAM,uBAAwB,OAAM,IAAI,sBAAsB,iCAAiC,GAAG,EAAE;AAC7J,mBAAS,IAAI,KAAK;AAAA,YAChB;AAAA,YACA,UAAU,SAAS;AAAA,YACnB,mBAAmB,QAAQ;AAAA,YAC3B,YAAY,QAAQ;AAAA,YACpB,gBAAgB,qBAAqB,MAAM;AAAA,UAC7C,CAAC;AAAA,QACH,SAAS,OAAO;AACd,cAAI,EAAE,iBAAiB,uBAAwB,OAAM;AACrD,WAAC,WAAW,kBAAkB,SAAS,KAAK,GAAG;AAAA,QACjD;AAAA,MACF;AAEA,UAAI;AACJ,UAAI,QAAQ,WAAW,GAAG;AAIxB,uBAAe,QAAQ,MAAM;AAC7B,cAAM,SAAS,CAAC,GAAG,SAAS,OAAO,CAAC;AACpC,cAAM,YAAY,QAAQ,iBACtB,KAAK,eAAe,QAAQ,cAAc,EAAE,OAAO,MAAM,IACzD,oBAAoB,MAAM,MAAM;AACpC,YAAI,CAAC,UAAU,OAAQ,OAAM,IAAI,sBAAsB,0DAA0D;AACjH,cAAM,WAAW,OAAO,YAAY,UAAU,SAAS,EAAE,IAAI,WAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AACzF,YAAI,OAAQ,oBAAmB,KAAK,kBAAkB;AAAA,UACpD,OAAO,IAAI,CAAC,YAAY,QAAQ,iBAAiB;AAAA,QACnD;AACA,mBAAW,SAAS,OAAO,OAAO,QAAQ,EAAG,QAAO,OAAO,KAAK;AAChE,eAAO,OAAO,OAAO;AAAA,UACnB,IAAIA,YAAW;AAAA,UACf,QAAQ,eAAe,MAAM;AAAA,UAC7B,gBAAgB;AAAA,YACd,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,gBAAgB,KAAK,OAAO;AAAA,cACvD;AAAA,cACA;AAAA,cACA,gBAAgB;AAAA,YAClB,EAAE;AAAA,UACJ;AAAA,UACA,UAAU,OAAO,OAAO,QAAQ;AAAA,QAClC,CAAC;AACD,cAAM,aAAa,IAAI,gBAAgB;AACvC,cAAM,SAAS,QAAQ,iBAAiB,KAAK,aAAa,QAAQ,cAAc,IAAI;AACpF,cAAM,SAAS,YAAY,IAAI,CAAC,KAAK,UAAU,QAAQ,WAAW,QAAQ,GAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAE,CAAC;AACtG,aAAK,OAAO,IAAI,MAAM,EAAE,YAAY,QAAQ,UAAU,CAAC;AACvD,cAAM,UAAU,MAAM;AACpB,oBAAU,QAAQ;AAClB,gBAAM,UAAU;AAChB,6BAAmB;AACnB,eAAK,UAAU,EAAE,MAAM,MAAM,MAAS;AAAA,QACxC;AACA,eAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACxD,YAAI,OAAO,QAAS,SAAQ;AAAA,MAC9B;AACA,aAAO;AAAA,QACL,WAAW,QAAQ,WAAW;AAAA,QAC9B;AAAA,QACA;AAAA,QACA,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;AAAA,QACvB,SAAS,YAAY;AACnB,gBAAM,UAAU;AAChB,6BAAmB;AACnB,cAAI,KAAM,MAAK,OAAO,IAAI,IAAI,GAAG,WAAW,MAAM,IAAI,MAAM,iCAAiC,CAAC;AAC9F,gBAAM,UAAU;AAAA,QAClB;AAAA,MACF;AAAA,IACF,UAAE;AACA,YAAM,QAAQ,WAAW,kBAAkB,IAAI,CAAC,YAAY,QAAQ,CAAC,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EAEA,MAAM,qBACJ,UACA,SACmB;AACnB,QAAI;AACF,YAAM,cAAc,MAAM,aAAa,QAAQ,QAAQ,MAAM,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC;AAC7I,aAAO,YAAY,IAAI,CAAC,eAAe,WAAW,IAAI;AAAA,IACxD,QAAQ;AACN,aAAO,CAAC;AAAA,IACV;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,yBACJ,UACA,YACA,SACA,aAC0F;AAC1F,UAAM,aAAa,MAAM;AAAA,MAAa,QAAQ;AAAA,MAAQ,MACpD,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,SAAS,YAAY,OAAO,CAAC;AAAA,IAC7F;AAIA,QAAI,cAAc,CAAC,mBAAmB,SAAS,MAAM,YAAY,WAAW,WAAW,GAAG;AACxF,aAAO;AAAA,QACL,QAAQ,kBAAkB,UAAU,UAAU;AAAA,QAC9C,aAAa,CAAC;AAAA,QACd,GAAI,WAAW,SAAS,aAAa,EAAE,cAAc,WAAW,IAAI,CAAC;AAAA,MACvE;AAAA,IACF;AACA,QAAI,CAAC,YAAa,QAAO,EAAE,aAAa,CAAC,EAAE;AAC3C,UAAM,YAAY,MAAM,KAAK,qBAAqB,UAAU,OAAO,GAAG;AAAA,MACpE,CAAC,SAAS,CAAC,0BAA0B,EAAE,IAAI,GAAG,SAAS,IAAI,IAAI,IAAI,EAAE;AAAA,IACvE;AACA,UAAM,cAAc,sBAAsB,SAAS,MAAM,YAAY,QAAQ;AAC7E,QAAI,gBAAgB,YAAY;AAC9B,YAAM,oBAAoB,MAAM;AAAA,QAAa,QAAQ;AAAA,QAAQ,MAC3D,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,SAAS,aAAa,OAAO,CAAC;AAAA,MAC9F;AACA,UAAI,mBAAmB;AACrB,eAAO;AAAA,UACL,QAAQ,kBAAkB,UAAU,iBAAiB;AAAA,UACrD,aAAa,CAAC;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAAS,iBAAiB,UAAU,UAAU;AACpD,UAAM,WAAW,wBAAwB;AACzC,QAAI,OAAO,aAAa,QAAW;AACjC,gBAAU,qBAAqB,SAAS,MAAM,YAAY,UAAU;AAAA,QAClE,YAAY;AAAA,MACd,CAAC;AACD,YAAM,qBAAqB,MAAM;AAAA,QAAa,QAAQ;AAAA,QAAQ,MAC5D,KAAK,kBAAkB,cAAc,UAAU,MAAM,SAAS,SAAS,OAAO,UAAW,OAAO,CAAC;AAAA,MACnG;AACA,UAAI,oBAAoB;AACtB,eAAO;AAAA,UACL,QAAQ,kBAAkB,UAAU,kBAAkB;AAAA,UACtD,aAAa,CAAC;AAAA,UACd,cAAc;AAAA,QAChB;AAAA,MACF;AACA,gBAAU,sBAAsB;AAAA,IAClC,OAAO;AACL,gBAAU,qBAAqB,SAAS,MAAM,YAAY,QAAQ;AAAA,IACpE;AACA,WAAO;AAAA,MACL,aAAa,OAAO,YAAY,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,IAAI,EAAE;AAAA,IAC1E;AAAA,EACF;AAAA,EAEA,UACE,KACA,MAMA;AACA,QAAI,KAAM,MAAK,aAAa,IAAI;AAChC,UAAM,YAAY,IAAI,QAAQ,GAAG;AACjC,QAAI,aAAa,KAAK,cAAc,IAAI,SAAS,GAAG;AAClD,YAAM,IAAI,MAAM,sDAAsD,GAAG,EAAE;AAAA,IAC7E;AACA,UAAM,eAAe,IAAI,MAAM,GAAG,SAAS;AAC3C,UAAM,SAAS,OAAO,KAAK,eAAe,IAAI,EAAE,QAAQ,GAAG,IAAI;AAC/D,QAAI,QAAQ,CAAC,QAAQ;AACnB,YAAM,IAAI,sBAAsB,oDAAoD,GAAG,EAAE;AAAA,IAC3F;AACA,UAAM,UAAU,SACZ,KAAK,kBAAkB,QAAQ,OAAO,iBAAiB,IACvD,KAAK,kBAAkB,QAAQ,YAAY;AAC/C,QAAI,CAAC,WAAW,QAAQ,SAAS,gBAAiB,WAAW,OAAO,eAAe,QAAQ,cAAc,OAAO,aAAa,gBAAgB,OAAO,QAAQ,MAAO;AACjK,UAAI,QAAQ;AACV,cAAM,IAAI;AAAA,UACR,qDAAqD,GAAG,KAAK,OAAO,iBAAiB;AAAA,QACvF;AAAA,MACF;AACA,WAAK,iBAAiB,YAAY;AAClC,YAAM,IAAI,sBAAsB,4BAA4B,YAAY,EAAE;AAAA,IAC5E;AACA,WAAO;AAAA,MACL;AAAA,MACA,UAAU,QAAQ;AAAA,MAClB,YAAY,IAAI,MAAM,YAAY,CAAC;AAAA,MACnC,GAAI,SAAS,EAAE,wBAAwB,OAAO,eAAe,IAAI,CAAC;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,aAAa,MAAkD;AAC7D,UAAM,QAAQ,KAAK,OAAO,IAAI,IAAI;AAClC,QAAI,CAAC,SAAS,MAAM,OAAO,WAAW,CAAC,MAAM,UAAU,OAAQ,OAAM,IAAI,sBAAsB,0DAA0D;AACzJ,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,eAAe,MAA0D;AACvE,SAAK,aAAa,IAAI;AACtB,WAAO,KAAK,OAAO,IAAI,IAAI,EAAG;AAAA,EAChC;AAAA,EAEA,cAAiD,SAAe;AAC9D,UAAM,OAAO,QAAQ,iBAAiB,KAAK,aAAa,QAAQ,cAAc,IAAI;AAClF,mBAAe,QAAQ,MAAM;AAC7B,QAAI,KAAK,UAAU,OAAO,QAAS,OAAM,IAAI,sBAAsB,2BAA2B;AAE9F,UAAM,SAAU,WAAmF,YAAY;AAC/G,QAAI,QAAQ,MAAO,OAAM,IAAI,sBAAsB,6DAA6D,OAAO,KAAK,EAAE;AAC9H,UAAM,SAAS,EAAE,GAAG,SAAS,QAAQ,YAAY,IAAI,CAAC,KAAK,UAAU,QAAQ,GAAI,QAAQ,SAAS,CAAC,QAAQ,MAAM,IAAI,CAAC,GAAI,GAAI,OAAO,CAAC,IAAI,IAAI,CAAC,CAAE,CAAC,EAAE;AACpJ,QAAI,QAAQ,MAAO,QAAO,QAAQ,OAAO;AAAA,QACpC,QAAO,OAAO;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,gBAAmD,SAAgC,SAAe;AAChG,WAAO,EAAE,GAAG,SAAS,QAAQ,YAAY,IAAI,CAAC,KAAK,kBAAkB,OAAO,QAAQ,EAAE,GAAG,GAAI,QAAQ,SAAS,CAAC,QAAQ,MAAM,IAAI,CAAC,CAAE,CAAC,EAAE;AAAA,EACzI;AAAA,EAEA,MAAM,gBAAgB,SAAgC,YAAoB,WAAgD,MAAiC,MAA+B,SAAkC,aAAuB,OAAyF;AAC1U,UAAM,UAAU,kBAAkB,IAAI;AACtC,SAAK,gBAAgB,OAAO,gCAA0B,EAAE,KAAK,CAAC,EAAE,mBAAmB,MAAM,IAAI,mBAAmB,KAAK,iBAAiB,CAAC;AACvI,YAAQ,MAAM,KAAK,aAAa,QAAQ;AAAA,MAAE;AAAA,MAAS,QAAQ;AAAA,MAAY,GAAG;AAAA,MAAW;AAAA,MAAM,MAAM;AAAA,MAAS;AAAA,MAAS;AAAA,MAAa,GAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;AAAA,MACvJ,SAAS,OAAM,oBAAmB;AAChC,cAAM,aAAa,MAAM,QAAQ,SAAS,SAAS,YAAY,eAAe;AAC9E,YAAI,CAAC,WAAY,QAAO,EAAE,KAAK,IAAI,YAAY,GAAG;AAClD,cAAM,SAAS,kBAAkB,QAAQ,UAAU,UAAU;AAC7D,eAAO,EAAE,KAAK,OAAO,KAAK,YAAY,qBAAqB,MAAM,EAAE;AAAA,MACrE;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,YAAY,SAAgC,YAAoB,WAAgD,MAAiC,MAA+B,SAAkC,aAAuB,OAAsD;AAC7R,WAAO,KAAK,kBAAkB,MAAM,QAAQ,IAAI,YAAY;AAC1D,YAAM,UAAU,MAAM,KAAK,gBAAgB,SAAS,YAAY,WAAW,MAAM,MAAM,SAAS,aAAa,KAAK;AAClH,aAAO,QAAQ;AAAA,IACjB,CAAC;AAAA,EACH;AAAA,EAEA,iBAAiB,MAA8B;AAC7C,UAAM,WAAW,KAAK,kBAAkB,QAAQ,IAAI,GAAG;AACvD,QAAI,SAAU,QAAO;AACrB,UAAM,oBAAoB,KAAK,aAAa,IAAI,IAAI,KAAK,KAAK,uBAAuB,IAAI;AACzF,QAAI,mBAAmB;AACrB,YAAM,IAAI;AAAA,QACR,oBAAoB,IAAI,qBAAqB,iBAAiB;AAAA,MAChE;AAAA,IACF;AACA,UAAM,aAAa,KAAK,kBAAkB,UAAU,EACjD,IAAI,CAACC,cAAaA,UAAS,IAAI,EAC/B,KAAK,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC;AAClD,UAAM,IAAI;AAAA,MACR,4BAA4B,IAAI,MAC7B,WAAW,SAAS,IAAI,2BAA2B,WAAW,KAAK,IAAI,CAAC,MAAM;AAAA,IACnF;AAAA,EACF;AACF;",
|
|
6
|
+
"names": ["a", "u", "$", "k", "randomUUID", "j", "snapshot", "d", "l", "y", "p", "f", "c", "s", "R", "w", "g", "O", "L", "x", "h", "C", "D", "m", "S", "b", "b", "binding", "snapshot", "page", "matches", "value", "randomUUID", "provider"]
|
|
7
|
+
}
|
|
@@ -96,7 +96,7 @@ export declare class ActionRegistry {
|
|
|
96
96
|
constructor(toolResultProxy?: FabricNestedToolResultProxy | undefined);
|
|
97
97
|
/**
|
|
98
98
|
* Attach the speculative-PTC runtime. Eligibility is re-checked against the
|
|
99
|
-
* resolved descriptor
|
|
99
|
+
* resolved descriptor at launch and replay, so a config/captured-tool change
|
|
100
100
|
* cannot sneak a side-effecting ref into the store after the fact.
|
|
101
101
|
*/
|
|
102
102
|
setSpeculation(runtime: FabricSpeculationRuntime | undefined, eligibility?: (action: ResolvedFabricAction) => boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../src/core/action-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../src/core/action-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
NESTED_TOOL_CALL_ID_PREFIX,
|
|
4
4
|
fabricActionListLimit,
|
|
5
5
|
scoreActionSearch
|
|
6
|
-
} from "../chunks/chunk-
|
|
6
|
+
} from "../chunks/chunk-5QMCSJ42.js";
|
|
7
7
|
import "../chunks/chunk-LMAVZN7J.js";
|
|
8
8
|
import "../chunks/chunk-YRDCJZZW.js";
|
|
9
9
|
import "../chunks/chunk-UKMQK5VP.js";
|