@homeflare/alchemy 0.34.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/grafana/alert-rule-group-drop-warning.d.ts +25 -0
- package/dist/grafana/alert-rule-group-drop-warning.d.ts.map +1 -0
- package/dist/grafana/alert-rule-group-fixtures.d.ts +73 -0
- package/dist/grafana/alert-rule-group-fixtures.d.ts.map +1 -0
- package/dist/grafana/alert-rule-group-model.d.ts +28 -0
- package/dist/grafana/alert-rule-group-model.d.ts.map +1 -0
- package/dist/grafana/alert-rule-group.d.ts +60 -0
- package/dist/grafana/alert-rule-group.d.ts.map +1 -0
- package/dist/grafana/index.d.ts +5 -4
- package/dist/grafana/index.d.ts.map +1 -1
- package/dist/grafana/index.js +241 -139
- package/dist/grafana/index.js.map +11 -8
- package/dist/grafana/providers.d.ts +1 -1
- package/dist/grafana/providers.d.ts.map +1 -1
- package/dist/proxmox/index.js +349 -287
- package/dist/proxmox/index.js.map +8 -7
- package/dist/proxmox/network-apply-read.d.ts +12 -0
- package/dist/proxmox/network-apply-read.d.ts.map +1 -1
- package/dist/proxmox/network-apply.d.ts +2 -0
- package/dist/proxmox/network-apply.d.ts.map +1 -1
- package/dist/proxmox/node-network-form.d.ts +86 -54
- package/dist/proxmox/node-network-form.d.ts.map +1 -1
- package/dist/proxmox/node-network-wire.d.ts +100 -0
- package/dist/proxmox/node-network-wire.d.ts.map +1 -0
- package/dist/proxmox/node-network.d.ts +21 -106
- package/dist/proxmox/node-network.d.ts.map +1 -1
- package/docs/grafana-alerting-rules.md +143 -0
- package/docs/grafana-alerting.md +5 -3
- package/docs/grafana.md +4 -2
- package/docs/upstream-conformance.md +16 -4
- package/package.json +1 -1
- package/src/grafana/alert-rule-group-drop-warning.test.ts +107 -0
- package/src/grafana/alert-rule-group-drop-warning.ts +41 -0
- package/src/grafana/alert-rule-group-fixtures.ts +46 -0
- package/src/grafana/alert-rule-group-model.test.ts +75 -0
- package/src/grafana/alert-rule-group-model.ts +66 -0
- package/src/grafana/alert-rule-group-provenance.test.ts +116 -0
- package/src/grafana/alert-rule-group.test.ts +164 -0
- package/src/grafana/alert-rule-group.ts +231 -0
- package/src/grafana/index.ts +11 -4
- package/src/grafana/providers.ts +2 -0
- package/src/proxmox/constraints-host-forms.test.ts +2 -2
- package/src/proxmox/network-apply-read.ts +12 -0
- package/src/proxmox/network-apply.ts +2 -0
- package/src/proxmox/node-network-form.ts +93 -99
- package/src/proxmox/node-network-read-failure.test.ts +206 -0
- package/src/proxmox/node-network-wire.ts +239 -0
- package/src/proxmox/node-network.ts +155 -167
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/proxmox/acl.ts", "../src/proxmox/constraint-guard.ts", "../src/proxmox/constraints.ts", "../src/proxmox/generated/constraints/pve-access.ts", "../src/proxmox/generated/constraints/pve-cluster-backup.ts", "../src/proxmox/generated/constraints/pve-cluster-ceph.ts", "../src/proxmox/generated/constraints/pve-cluster-firewall.ts", "../src/proxmox/generated/constraints/pve-cluster-ha.ts", "../src/proxmox/generated/constraints/pve-cluster-metrics.ts", "../src/proxmox/generated/constraints/pve-cluster-notifications.ts", "../src/proxmox/generated/constraints/pve-cluster-replication.ts", "../src/proxmox/generated/constraints/pve-cluster-sdn.ts", "../src/proxmox/generated/constraints/pve-nodes-ceph.ts", "../src/proxmox/generated/constraints/pve-nodes-disks.ts", "../src/proxmox/generated/constraints/pve-nodes-lxc.ts", "../src/proxmox/generated/constraints/pve-nodes-network.ts", "../src/proxmox/generated/constraints/pve-nodes-qemu.ts", "../src/proxmox/generated/constraints/pve-pools.ts", "../src/proxmox/generated/constraints/pve-storage.ts", "../src/proxmox/generated/constraints/pbs-config.ts", "../src/proxmox/generated/constraints/index.ts", "../src/proxmox/acl-wire.ts", "../src/proxmox/distilled-pve.ts", "../src/proxmox/lease-cache.ts", "../src/proxmox/mint.ts", "../src/proxmox/credential-errors.ts", "../src/proxmox/members.ts", "../src/proxmox/unreadable-read.ts", "../src/proxmox/alertmanager-body.ts", "../src/proxmox/api-token.ts", "../src/proxmox/values.ts", "../src/proxmox/api-token-form.ts", "../src/proxmox/distilled-guard.ts", "../src/proxmox/backup-job.ts", "../src/proxmox/resource.ts", "../src/proxmox/client.ts", "../src/proxmox/resource-guard.ts", "../src/proxmox/update-guard.ts", "../src/proxmox/ceph-daemon.ts", "../src/proxmox/ceph-daemon-form.ts", "../src/proxmox/ceph-flag.ts", "../src/proxmox/ceph-fs.ts", "../src/proxmox/ceph-fs-wire.ts", "../src/proxmox/ceph-osd.ts", "../src/proxmox/ceph-osd-tree.ts", "../src/proxmox/ceph-osd-write.ts", "../src/proxmox/ceph-pool.ts", "../src/proxmox/ceph-pool-form.ts", "../src/proxmox/ceph-pool-settle.ts", "../src/proxmox/firewall-alias.ts", "../src/proxmox/firewall-alias-form.ts", "../src/proxmox/group.ts", "../src/proxmox/group-wire.ts", "../src/proxmox/ha-resource.ts", "../src/proxmox/ha-rule.ts", "../src/proxmox/ha-rule-form.ts", "../src/proxmox/lxc.ts", "../src/ownership/adopt.ts", "../src/ownership/resume.ts", "../src/ownership/rows.ts", "../src/ownership/whole.ts", "../src/ownership/probe.ts", "../src/proxmox/lxc-wire.ts", "../src/proxmox/lxc-props.ts", "../src/proxmox/lxc-volume.ts", "../src/proxmox/lxc-judge.ts", "../src/proxmox/lxc-create-form.ts", "../src/proxmox/lxc-identity.ts", "../src/proxmox/lxc-adoption.ts", "../src/ownership/adopting.ts", "../src/proxmox/lxc-lifecycle.ts", "../src/proxmox/network-apply-read.ts", "../src/proxmox/metric-server.ts", "../src/proxmox/metric-server-form.ts", "../src/proxmox/metric-server-otel.ts", "../src/proxmox/network-apply.ts", "../src/proxmox/apply-endpoints.ts", "../src/proxmox/node-network.ts", "../src/proxmox/node-network-form.ts", "../src/proxmox/notification-matcher.ts", "../src/proxmox/notification-matcher-form.ts", "../src/proxmox/notification-target.ts", "../src/proxmox/notification-target-endpoint.ts", "../src/proxmox/notification-target-form.ts", "../src/proxmox/pbs-datastore.ts", "../src/proxmox/pbs-datastore-form.ts", "../src/proxmox/pbs-datastore-guard.ts", "../src/proxmox/pbs-datastore-endpoint.ts", "../src/proxmox/pbs-notification-matcher.ts", "../src/proxmox/pbs-notification-target.ts", "../src/proxmox/pbs-notification-target-lifecycle.ts", "../src/proxmox/pbs-notification-target-endpoint.ts", "../src/proxmox/credential-literals.ts", "../src/proxmox/pbs-notification-target-wire.ts", "../src/secrets/write-only.ts", "../src/proxmox/pbs-notification-target-form.ts", "../src/proxmox/pbs-prune-job.ts", "../src/proxmox/pbs-prune-job-form.ts", "../src/proxmox/pbs-sync-job.ts", "../src/proxmox/pbs-sync-job-form.ts", "../src/proxmox/pbs-verify-job.ts", "../src/proxmox/pbs-verify-job-form.ts", "../src/proxmox/pool.ts", "../src/proxmox/provision-baseline.ts", "../src/proxmox/provision-bootstrap.ts", "../src/proxmox/provision-declare.ts", "../src/proxmox/role.ts", "../src/proxmox/role-wire.ts", "../src/proxmox/user.ts", "../src/proxmox/user-wire.ts", "../src/proxmox/qemu.ts", "../src/proxmox/replication-job.ts", "../src/proxmox/replication-job-form.ts", "../src/proxmox/sdn-apply.ts", "../src/proxmox/sdn-apply-read.ts", "../src/proxmox/sdn-subnet.ts", "../src/proxmox/sdn-subnet-form.ts", "../src/proxmox/sdn-vnet.ts", "../src/proxmox/sdn-zone.ts", "../src/proxmox/storage.ts", "../src/proxmox/storage-form.ts", "../src/proxmox/storage-wire.ts", "../src/proxmox/zfs-pool.ts", "../src/proxmox/zfs-pool-wire.ts", "../src/proxmox/zfs-pool-form.ts"],
|
|
3
|
+
"sources": ["../src/proxmox/acl.ts", "../src/proxmox/constraint-guard.ts", "../src/proxmox/constraints.ts", "../src/proxmox/generated/constraints/pve-access.ts", "../src/proxmox/generated/constraints/pve-cluster-backup.ts", "../src/proxmox/generated/constraints/pve-cluster-ceph.ts", "../src/proxmox/generated/constraints/pve-cluster-firewall.ts", "../src/proxmox/generated/constraints/pve-cluster-ha.ts", "../src/proxmox/generated/constraints/pve-cluster-metrics.ts", "../src/proxmox/generated/constraints/pve-cluster-notifications.ts", "../src/proxmox/generated/constraints/pve-cluster-replication.ts", "../src/proxmox/generated/constraints/pve-cluster-sdn.ts", "../src/proxmox/generated/constraints/pve-nodes-ceph.ts", "../src/proxmox/generated/constraints/pve-nodes-disks.ts", "../src/proxmox/generated/constraints/pve-nodes-lxc.ts", "../src/proxmox/generated/constraints/pve-nodes-network.ts", "../src/proxmox/generated/constraints/pve-nodes-qemu.ts", "../src/proxmox/generated/constraints/pve-pools.ts", "../src/proxmox/generated/constraints/pve-storage.ts", "../src/proxmox/generated/constraints/pbs-config.ts", "../src/proxmox/generated/constraints/index.ts", "../src/proxmox/acl-wire.ts", "../src/proxmox/distilled-pve.ts", "../src/proxmox/lease-cache.ts", "../src/proxmox/mint.ts", "../src/proxmox/credential-errors.ts", "../src/proxmox/members.ts", "../src/proxmox/unreadable-read.ts", "../src/proxmox/alertmanager-body.ts", "../src/proxmox/api-token.ts", "../src/proxmox/values.ts", "../src/proxmox/api-token-form.ts", "../src/proxmox/distilled-guard.ts", "../src/proxmox/backup-job.ts", "../src/proxmox/resource.ts", "../src/proxmox/client.ts", "../src/proxmox/resource-guard.ts", "../src/proxmox/update-guard.ts", "../src/proxmox/ceph-daemon.ts", "../src/proxmox/ceph-daemon-form.ts", "../src/proxmox/ceph-flag.ts", "../src/proxmox/ceph-fs.ts", "../src/proxmox/ceph-fs-wire.ts", "../src/proxmox/ceph-osd.ts", "../src/proxmox/ceph-osd-tree.ts", "../src/proxmox/ceph-osd-write.ts", "../src/proxmox/ceph-pool.ts", "../src/proxmox/ceph-pool-form.ts", "../src/proxmox/ceph-pool-settle.ts", "../src/proxmox/firewall-alias.ts", "../src/proxmox/firewall-alias-form.ts", "../src/proxmox/group.ts", "../src/proxmox/group-wire.ts", "../src/proxmox/ha-resource.ts", "../src/proxmox/ha-rule.ts", "../src/proxmox/ha-rule-form.ts", "../src/proxmox/lxc.ts", "../src/ownership/adopt.ts", "../src/ownership/resume.ts", "../src/ownership/rows.ts", "../src/ownership/whole.ts", "../src/ownership/probe.ts", "../src/proxmox/lxc-wire.ts", "../src/proxmox/lxc-props.ts", "../src/proxmox/lxc-volume.ts", "../src/proxmox/lxc-judge.ts", "../src/proxmox/lxc-create-form.ts", "../src/proxmox/lxc-identity.ts", "../src/proxmox/lxc-adoption.ts", "../src/ownership/adopting.ts", "../src/proxmox/lxc-lifecycle.ts", "../src/proxmox/network-apply-read.ts", "../src/proxmox/metric-server.ts", "../src/proxmox/metric-server-form.ts", "../src/proxmox/metric-server-otel.ts", "../src/proxmox/network-apply.ts", "../src/proxmox/apply-endpoints.ts", "../src/proxmox/node-network.ts", "../src/proxmox/node-network-form.ts", "../src/proxmox/node-network-wire.ts", "../src/proxmox/notification-matcher.ts", "../src/proxmox/notification-matcher-form.ts", "../src/proxmox/notification-target.ts", "../src/proxmox/notification-target-endpoint.ts", "../src/proxmox/notification-target-form.ts", "../src/proxmox/pbs-datastore.ts", "../src/proxmox/pbs-datastore-form.ts", "../src/proxmox/pbs-datastore-guard.ts", "../src/proxmox/pbs-datastore-endpoint.ts", "../src/proxmox/pbs-notification-matcher.ts", "../src/proxmox/pbs-notification-target.ts", "../src/proxmox/pbs-notification-target-lifecycle.ts", "../src/proxmox/pbs-notification-target-endpoint.ts", "../src/proxmox/credential-literals.ts", "../src/proxmox/pbs-notification-target-wire.ts", "../src/secrets/write-only.ts", "../src/proxmox/pbs-notification-target-form.ts", "../src/proxmox/pbs-prune-job.ts", "../src/proxmox/pbs-prune-job-form.ts", "../src/proxmox/pbs-sync-job.ts", "../src/proxmox/pbs-sync-job-form.ts", "../src/proxmox/pbs-verify-job.ts", "../src/proxmox/pbs-verify-job-form.ts", "../src/proxmox/pool.ts", "../src/proxmox/provision-baseline.ts", "../src/proxmox/provision-bootstrap.ts", "../src/proxmox/provision-declare.ts", "../src/proxmox/role.ts", "../src/proxmox/role-wire.ts", "../src/proxmox/user.ts", "../src/proxmox/user-wire.ts", "../src/proxmox/qemu.ts", "../src/proxmox/replication-job.ts", "../src/proxmox/replication-job-form.ts", "../src/proxmox/sdn-apply.ts", "../src/proxmox/sdn-apply-read.ts", "../src/proxmox/sdn-subnet.ts", "../src/proxmox/sdn-subnet-form.ts", "../src/proxmox/sdn-vnet.ts", "../src/proxmox/sdn-zone.ts", "../src/proxmox/storage.ts", "../src/proxmox/storage-form.ts", "../src/proxmox/storage-wire.ts", "../src/proxmox/zfs-pool.ts", "../src/proxmox/zfs-pool-wire.ts", "../src/proxmox/zfs-pool-form.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * `Proxmox.Acl` — one grant: a role bound to a subject at a path. The line that makes a role real.\n *\n * ★ USERS, GROUPS, ROLES AND TOKENS ARE ALL INERT UNTIL AN ACL BINDS THEM. A role is a named list\n * of privileges that grants nothing by itself; a user can do nothing until\n * {path, user|group|token, role} exists. That is what makes those four families worth declaring,\n * and why the grants that let OpenBao mint a PVE token today are only clicks somebody made once.\n *\n * ⛔ THE ONE FAMILY THAT DOES NOT FIT A GENERIC PATH+FORM SHAPE, AND THE MISFIT IS MEASURED. The\n * cluster's own schema — `/pve-docs/api-viewer/apidoc.js`, read unauthenticated 2026-09-13 —\n * lists exactly TWO methods on `/access/acl`: GET and PUT. There is no DELETE (it answers\n * \"Method 'DELETE /access/acl' not implemented\") and, less famously, NO POST either — which is\n * why `@distilled.cloud/proxmox`'s generator, reading the same schema, emits `listAccessAcl` and\n * `putAccessAcl` and NOTHING ELSE for this path. So create and update are the SAME call, `PUT\n * /access/acl`, and removal is that PUT with `delete=1` — there is no `destroyAccessAcl` to call.\n *\n * ⛔ A SINGLE GRANT HAS NO URL OF ITS OWN. `GET /access/acl` answers ONE FLAT LIST for the whole\n * cluster, so identity is the tuple (path, type, ugid, roleid), matched client-side in `find`\n * below. Two resources declaring the SAME tuple are the SAME grant — Alchemy sees two resource\n * ids, not one collision — and deleting either takes the access away from both, the same hazard\n * as two guests declaring one vmid.\n *\n * ⛔ AND THAT LIST IS FILTERED BY WHO IS ASKING. The schema's own words for GET: \"The returned list\n * is restricted to objects where you have rights to modify permissions.\" A credential that can\n * read the cluster but not modify permissions is answered `[]` — not a 403, not an error — so\n * the mount's `read` role needs permission-modify rights on the declared path exactly as\n * `provision` does (below, `listAcl` reads with the `provision` role for this reason). Work\n * reported on a grant that is plainly there means that role is too narrow.\n *\n * ★ MIGRATED OFF `client.ts`'s generic `pve()` ONTO `@distilled.cloud/proxmox`'s typed\n * `access.listAccessAcl`/`access.putAccessAcl` (2026-09-23, decision 43's proxmox walk-down,\n * the sub-area's first resource — ACL was already the misfit `pveOperations` could not cover\n * cleanly, which is exactly why it goes first). `distilled-pve.ts`'s `runPve` replaces `pve()`:\n * same lease reuse (lease-cache.ts), same cluster-member failover (members.ts), now handing the\n * request itself to the SDK instead of a hand-assembled `HttpClientRequest`.\n * ⛔ ONE DEAD BRANCH REMOVED, NOT PRESERVED: the old code's generic factory POSTed on a \"live\n * undefined\" read, which its own header called unreachable on a healthy cluster and\n * documented as MISLEADING — PVE has no POST here, so that 501 said nothing about the real\n * failure. `@distilled.cloud/proxmox` has no `createAccessAcl` at all (the vendor schema has\n * no POST to generate one from), so there is nothing to call that way. `reconcile` below\n * always PUTs instead — the only write PVE actually implements for this path — so a read that\n * genuinely failed now surfaces its REAL cause (a typed error, or `PveClusterExhausted`)\n * rather than a confusing 501 from a verb that was never there.\n */\nimport { Resource } from 'alchemy';\nimport { isResolved } from 'alchemy/Diff';\nimport * as Provider from 'alchemy/Provider';\nimport * as access from '@distilled.cloud/proxmox/access';\nimport * as Effect from 'effect/Effect';\nimport { attributesOf, bind, guardWrite, identity, matches, tuple } from './acl-wire.ts';\nimport type { PveRequirements, WithTarget } from './resource-spec.ts';\nimport { runPve } from './distilled-pve.ts';\nimport {\n UNREADABLE,\n type Unreadable,\n readOrUnreadable,\n unreadableWarning,\n} from './unreadable-read.ts';\n\n/** PVE's three kinds of subject. The read answers this word; the write wants its plural. */\nexport type AclSubjectType = 'user' | 'group' | 'token';\n\nexport interface AclProps extends WithTarget {\n /**\n * The PVE object path the grant is ON — `/`, `/pool/lab`, `/vms/101`, `/storage/local-zfs`.\n * ⚠️ NOT THE API PATH — the endpoint is fixed (`access/acl`). PVE's API overloads the word,\n * so this file does too rather than renaming a field the cluster calls `path`.\n */\n path: string;\n /** Which kind of subject `ugid` names. Identity: changing it is a different grant. */\n type: AclSubjectType;\n /** `alice@pve`, `admins`, `hf-provision@pve!hf-provision-…`. Identity. */\n ugid: string;\n /** The role bound here, e.g. `PVEAuditor`. ⚠️ It must exist — PVE refuses an unknown roleid. */\n roleid: string;\n /** Inherit down the path. PVE's default is ON, and this is the grant's ONLY mutable field. */\n propagate?: boolean;\n}\n\nexport interface AclAttributes {\n path: string;\n type: AclSubjectType;\n ugid: string;\n roleid: string;\n propagate: boolean;\n /** Presence, so a PUT-only family can tell \"matches\" from \"does not exist yet\" — see below. */\n bound: boolean;\n}\n\nexport interface ProxmoxAcl extends Resource<\n 'Proxmox.Acl',\n AclProps,\n AclAttributes,\n never,\n PveRequirements\n> {}\n\nexport const ProxmoxAcl = Resource<ProxmoxAcl>('Proxmox.Acl');\n\n/**\n * ⛔ `readRole: 'provision'`, WITHOUT WHICH EVERY GRANT READS BACK AS ABSENT — see the header's\n * ⛔ on filtering.\n * ★ `readOrUnreadable` (unreadable-read.ts) runs first: a REFUSED mint of `provision` — the\n * \"cries wolf\" bug — comes back `UNREADABLE` instead of the `undefined` a genuine, SUCCESSFUL\n * read (the row simply not being in the list) produces, so `diff` below can tell them apart.\n * ⛔ NO `orElseSucceed` HERE ANY MORE — found on 2026-09-24, the SAME bug class as the credential\n * denial: it used to fold EVERY OTHER failure (a transport error, `PveClusterExhausted`, a\n * decode failure) into `undefined` too, which then read exactly like a genuine absence and\n * forced the same false `update`. Only a read that actually SUCCEEDS (and the grant is not in\n * the list it returns) may mean absent now; every other failure propagates and fails the whole\n * plan loudly — the engine's own contract for a failed `read`/`diff` (verify.ts's `readWithState`\n * already expects and reports it as `'failed'`).\n */\nconst readAttributes = (props: AclProps) =>\n readOrUnreadable(runPve(props.target, 'provision', false, access.listAccessAcl({}))).pipe(\n Effect.map((rows) => (rows === UNREADABLE ? UNREADABLE : attributesOf(rows, props))),\n );\n\n/** `read`/`reconcile` return `Attributes | undefined`; only `diff` tells `UNREADABLE` apart. */\nconst dropUnreadable = (live: AclAttributes | Unreadable | undefined) =>\n live === UNREADABLE ? undefined : live;\n\nexport const ProxmoxAclProvider = () =>\n Provider.effect(\n ProxmoxAcl,\n Effect.succeed(\n ProxmoxAcl.Provider.of({\n /** ⛔ EMPTY LIKE EVERY OTHER PVE RESOURCE. Adopting every grant a human ever clicked is not adoption. */\n list: () => Effect.succeed([]),\n read: Effect.fn(function* ({ olds }) {\n return dropUnreadable(yield* readAttributes(olds));\n }),\n /**\n * ⛔ AN IDENTITY CHANGE IS A REPLACE. Editing `roleid` (or the subject, or the path) would\n * PUT the NEW grant and LEAVE THE OLD ONE BOUND; replace makes Alchemy `delete` the old\n * props first, the only thing that removes it. Create-first (Alchemy's default) is\n * deliberate: delete-first could remove the very grant the provision credential mints\n * against.\n */\n diff: Effect.fn(function* ({ news, output }) {\n if (output !== undefined && isResolved(news) && identity(news) !== identity(output)) {\n return { action: 'replace' } as const;\n }\n if (!isResolved(news)) return undefined;\n yield* guardWrite(news);\n if (output === undefined) return undefined;\n const live = yield* readAttributes(news);\n // ⛔ THE CRIES-WOLF FIX: a refused read used to fall into `undefined` below and\n // force `update` on a grant that was plainly there — see unreadable-read.ts.\n if (live === UNREADABLE) {\n yield* unreadableWarning('Proxmox.Acl', identity(news));\n return { action: 'noop' } as const;\n }\n return live !== undefined && matches(live, news)\n ? ({ action: 'noop' } as const)\n : ({ action: 'update' } as const);\n }),\n /**\n * ⚠️ THE READ-BACK GUARD, FOR A FAMILY WHOSE \"ABSENT\" IS `bound: false`, NOT `undefined`.\n * PVE answers 200 with `{\"data\":null}` on calls that did nothing: without this, a PUT\n * that silently no-oped is recorded as a landed grant and the next plan reads noop over\n * the gap.\n */\n reconcile: Effect.fn(function* ({ news }) {\n // ⚠️ `dropUnreadable`: reconcile only runs once `provision` already minted for the\n // write below, so `UNREADABLE` here is a near-impossible race, not the routine case\n // `diff` handles — treating it as \"not yet bound\" costs at most one redundant PUT.\n const before = dropUnreadable(yield* readAttributes(news));\n yield* guardWrite(news);\n if (before === undefined || !matches(before, news)) {\n yield* runPve(news.target, 'provision', true, access.putAccessAcl(bind(news)));\n }\n const after = dropUnreadable(yield* readAttributes(news));\n if (after === undefined || !after.bound) {\n return yield* Effect.die(\n new Error(\n `access/acl: the write returned no error but ${identity(news)} is still not ` +\n 'bound. Either the PUT did nothing, or the read credential cannot see the ' +\n 'grant -- GET /access/acl is filtered to paths you may MODIFY permissions on, ' +\n 'so a read-only role is answered [] rather than 403.',\n ),\n );\n }\n return after;\n }),\n /**\n * ⛔ NOT A DESTROY CALL — THERE IS NONE. `DELETE /access/acl` is not implemented; removal\n * is the same PUT with `delete=1` and the identity tuple, no `propagate`, because\n * removal is keyed on the tuple and nothing else.\n * ⚠️ IDEMPOTENT, AND CLUSTER-WIDE: removing a grant that is already gone is a no-op, but\n * the tuple is shared — re-read the header's second ⛔ before assuming this only takes\n * away what this stack declared.\n */\n delete: Effect.fn(function* ({ olds }) {\n const removal: access.PutAccessAclRequest = { ...tuple(olds), delete: '1' };\n yield* runPve(olds.target, 'provision', true, access.putAccessAcl(removal));\n }),\n }),\n ),\n );\n",
|
|
6
6
|
"/**\n * The generated tables, looked up by endpoint, and the refusal that stops a plan.\n *\n * ★ ONE FILE BETWEEN THE PROVIDERS AND THE GENERATED DATA, so `resource.ts` gains three lines\n * rather than an import of two generated modules and a merge, and so a family that writes its\n * own handlers (CephPool, PbsDatastore) reaches the same check by the same name.\n *\n * ⛔ AN UNKNOWN KEY IS A DEFECT, NOT A REASON TO SKIP THE CHECK. Silently passing would put us back\n * where this started: a declaration nothing checked, and a plan that says so in no way at all.\n * The generator resolves every key in its source scan against the vendor schema, so a key that\n * is absent here means the tables were not regenerated — which the message says.\n */\nimport * as Effect from 'effect/Effect';\nimport type { PveForm } from './client.ts';\nimport { type EndpointConstraints, type EndpointKey, refusal, violations } from './constraints.ts';\nimport { PROXMOX_CONSTRAINTS } from './generated/constraints/index.ts';\n\nexport { PROXMOX_CONSTRAINTS };\n\nexport const constraintsFor = (key: EndpointKey): EndpointConstraints => {\n const table = PROXMOX_CONSTRAINTS[key];\n if (table === undefined) {\n throw new Error(\n `no vendor constraint table for '${key}'. It is named in this package but not generated: ` +\n 'run `bun codegen/constraints.ts` (see codegen/README.md).',\n );\n }\n return table;\n};\n\n/** Every vendor rule this form breaks. Pure — a test calls it with a literal form. */\nexport const formViolations = (\n key: EndpointKey,\n form: PveForm,\n presence: boolean,\n): readonly string[] => violations(constraintsFor(key), form, { presence });\n\n/**\n * ⛔ `Effect.die`, NOT `Effect.fail`. A declaration the vendor would reject is a DEFECT in the\n * stack file, not a recoverable condition: there is no retry and no fallback that makes a\n * 129-character comment legal. The same call that refuses a write-back with no read-back\n * (resource.ts) dies for the same reason.\n */\nexport const guardForm = (\n key: EndpointKey | undefined,\n form: PveForm,\n presence: boolean,\n): Effect.Effect<void> =>\n Effect.suspend(() => {\n if (key === undefined) return Effect.void;\n const found = formViolations(key, form, presence);\n return found.length === 0 ? Effect.void : Effect.die(new Error(refusal(key, found)));\n });\n",
|
|
@@ -73,14 +73,15 @@
|
|
|
73
73
|
"/**\n * The strict adoption gate for `Proxmox.Lxc`: AN ADOPTION NEVER CHANGES A GUEST (decided\n * 2026-09-21). A guest this stack adopts — no recorded instance, or one the plan only kept because\n * `--adopt` said so (ownership/adopting.ts) — is taken over exactly as it runs, or not at all.\n *\n * ⛔ ANY DIFFERENCE FAILS, AT PLAN AND AGAIN AT APPLY. Before this, a cold adoption planned `adopted`\n * whatever it would write (alchemy beta.79 prints no property diff for it) and only LOGGED the\n * keys; `deploy --adopt --yes` then wrote them. A `net0` pasted without the live `tag=` moved the\n * guest off its VLAN on the deploy that was meant to change nothing. Now the plan fails naming\n * the keys, and reconcile re-asks against a fresh read, so a hand edit between plan and deploy\n * is refused too rather than written back.\n * ⛔ KEYS ONLY, NEVER VALUES. The refusal names what differs and nothing it differs by: a live\n * config can carry anything (`description` is where people paste credentials), and plan output\n * lands in CI logs.\n * ★ ASKED BEFORE `judge`'s OWN REFUSALS. Those name a declared value (the `pct set` to run), and\n * for an adoption the fix is the other direction: declare what is live.\n * ★ THE STORE IS READ ONLY WHEN SOMETHING DIFFERS. A clean adoption — the only kind that proceeds\n * — costs nothing here.\n */\nimport * as Effect from 'effect/Effect';\nimport type { Owner } from '../ownership/adopt.ts';\nimport { adopting } from '../ownership/adopting.ts';\nimport { type LxcChange, judge } from './lxc-judge.ts';\nimport { LxcRefusedError } from './lxc-lifecycle.ts';\nimport type { LxcProps } from './lxc-props.ts';\n\n/** The refusal: keys, where, and what to do — never a value. */\nexport const adoptionRefusal = (props: LxcProps, drift: readonly string[]): string =>\n `CT ${String(props.vmid)} on ${props.node}: adopting it would change ${drift.join(', ')}. An ` +\n 'adoption never changes a guest, so nothing is written. Declare what is live for these keys ' +\n '(the plan names keys, never values) and plan again; change them after the adoption, as an ' +\n 'update.';\n\n/**\n * Fails with `adoptionRefusal` when `change` would write to a guest `owner`'s call adopts.\n * `settled` for a recovered create is the same judge, of the recording row's props against `live`.\n */\nexport const refuseAdoptedDrift = (\n owner: Owner,\n props: LxcProps,\n live: Record<string, unknown>,\n change: LxcChange,\n): Effect.Effect<void, LxcRefusedError> =>\n Effect.gen(function* () {\n if (change.drift.length === 0) return;\n const settled = (recorded: unknown) =>\n Effect.sync(() => judge(recorded as LxcProps, live).drift.length === 0);\n if (!(yield* adopting(owner, settled))) return;\n return yield* Effect.fail(new LxcRefusedError(adoptionRefusal(props, change.drift)));\n });\n",
|
|
74
74
|
"/**\n * Whether a `diff` or `reconcile` that holds attributes is looking at an ADOPTION — a live object\n * that reached this stack's state by being FOUND, not by this resource's own create — so a family\n * whose adoption must never change what it takes over (`Proxmox.Lxc`) can refuse any difference\n * instead of writing it. adopt.ts and probe.ts decide WHETHER an object may be claimed; this says,\n * once it is claimed, whether the claim is an adoption.\n *\n * ★ STATE ALREADY SAYS WHICH, AT BOTH HALVES OF A DEPLOY (alchemy 2.0.0-beta.79):\n * · PLAN, A COLD ADOPTION. The probe mints an instance id no row can hold (Plan.ts\n * `generateInstanceId()`), and `diff` then runs with that id and the attributes the probe\n * read. So no row holds the id.\n * · APPLY, THE SAME ADOPTION. Apply commits an `updating` row with `adopting: true` under that id\n * BEFORE it calls reconcile, and the flag stays until the update commits (Apply.ts). An\n * adoption whose apply was interrupted keeps it, so the next plan's `diff` sees it too.\n * · A RECOVERED CREATE. A `creating` row with no attributes, whose live object the recovery read\n * found. It is this resource's own create when the row proves it (probe.ts `provenOurs`, the\n * same proof the read asked). Otherwise the plan went on only because `--adopt` said so — an\n * adoption like any other.\n * · Any other row with attributes is state vouching for the object: not an adoption.\n * ⚠️ OUTSIDE A STACK — no Stack or State in context, or a store that errors (rows.ts) — no row\n * holds anything, so every call is an adoption: the strict answer, never the permissive one. A\n * family then refuses an ordinary update's write as if it were an adoption's. `alchemy deploy`\n * and the Alchemist session provide both services.\n */\nimport * as Effect from 'effect/Effect';\nimport type { Owner } from './adopt.ts';\nimport { provenOurs } from './probe.ts';\nimport { recordedGeneration } from './rows.ts';\n\n/**\n * Whether `owner`'s call is an adoption (header). `settled` is the family's \"live matches these\n * props\", asked only for a recovered create, with the props of the row that recorded it.\n * ⛔ A CREATE IS NEVER ONE HERE. `output` undefined is reconcile's create path, which has its own\n * rule for a live object it finds (adopt.ts `refuseTakeover`).\n */\nexport const adopting = <E, R>(\n owner: Owner,\n settled: (recorded: unknown) => Effect.Effect<boolean, E, R>,\n): Effect.Effect<boolean, never, R> =>\n Effect.gen(function* () {\n if (owner.output === undefined) return false;\n const generation = yield* recordedGeneration(owner.fqn, owner.instanceId);\n if (generation === undefined || generation.adopting === true) return true;\n if (generation.attr !== undefined && generation.attr !== null) return false;\n return !(yield* provenOurs(owner, settled(generation.props)));\n });\n",
|
|
75
75
|
"/**\n * The calls a `Proxmox.Lxc` makes: read one config, create, update in place, grow, delete.\n *\n * ⛔ A READ FAILURE IS A FAILURE HERE, NOT \"ABSENT\" — THE ONE PLACE THIS PACKAGE DEPARTS FROM\n * resource.ts. `pveOperations.read` folds every error into `undefined`, which for a guest means a\n * 403 or a node that did not answer plans a CREATE over a running container. PVE answers a\n * missing guest with HTTP 500, `Configuration file 'nodes/<node>/lxc/<vmid>.conf' does not\n * exist` (pve-guest-common `AbstractConfig::load_config`), so only a 500 may mean absent — and\n * even then only after the cluster says so, below. Anything else fails the plan.\n *\n * ⛔ \"ABSENT\" IS DECIDED BY THE WHOLE CLUSTER, NOT BY THE ERROR TEXT. A config lives under its\n * node, so a guest migrated to another node — or a QEMU VM holding the same cluster-wide vmid —\n * also reads as missing at the declared path. `GET /cluster/resources?type=vm` settles it: the\n * vmid nowhere is absent; the vmid anywhere else FAILS the read with where it is; the vmid on\n * the declared node fails with PVE's own error. ★ Keyed on the cluster rather than on matching\n * the message, so a PVE that words it differently still cannot turn into a create.\n *\n * ⚠️ CREATE, RESIZE AND DELETE ARE ASYNCHRONOUS; A CONFIG PUT IS NOT. The first three answer a\n * UPID the moment PVE forks the worker (`NodesNodeLxcPostReturn`, `…ResizePutReturn`,\n * `…VmidDeleteReturn` are all `string`), so each waits for its task's exitstatus. `PUT …/config`\n * answers `null` after writing (`…ConfigPutReturn`), so it needs no wait.\n * ⛔ EACH TASK IS POLLED WITH THE CREDENTIAL THAT STARTED IT — see `awaitTask`: only the owner\n * skips `Sys.Audit`. A fresh `provision` mint per write gives the full 300s lease a create needs;\n * a cached lease can be handed out with 60s left (lease-cache.ts).\n */\nimport * as Effect from 'effect/Effect';\nimport { PveError, pve, pveWith } from './client.ts';\nimport { guardForm } from './constraint-guard.ts';\nimport type { EndpointKey } from './constraints.ts';\nimport type { PveTarget } from './credentials.ts';\nimport { mint } from './mint.ts';\nimport { createForm } from './lxc-create-form.ts';\nimport { type LxcChange, judge } from './lxc-judge.ts';\nimport type { LxcAttributes, LxcProps } from './lxc-props.ts';\nimport { rawKeysOf, storedConfig } from './lxc-props.ts';\nimport { awaitTask } from './network-apply-read.ts';\nimport { text, withClears } from './values.ts';\n\n/** A plan-time or apply-time refusal. Nothing was written when one of these is raised. */\nexport class LxcRefusedError extends Error {\n override readonly name = 'LxcRefusedError';\n}\n\n/** Where one guest lives. Its identity, and nothing else. */\nexport type LxcWhere = { readonly target: PveTarget; readonly node: string; readonly vmid: number };\n\nexport const guestPath = (where: LxcWhere) => `nodes/${where.node}/lxc/${String(where.vmid)}`;\n\n/**\n * The three vendor endpoints a guest is written through, as the generated tables key them.\n *\n * ⛔ DECLARED HERE RATHER THAN ON A SPEC BECAUSE `Proxmox.Lxc` HAS NO SPEC — lxc.ts writes all\n * five handlers by hand (a guest reads failures as failures, waits on tasks and grows disks\n * through a second endpoint), so it cannot inherit the shared guard from resource.ts. Without\n * these three it would be the largest write surface in the package with nothing checking the\n * body: `POST /nodes/{node}/lxc` alone carries 26 constrained parameters.\n * ⚠️ THREE, NOT TWO. `resize` is a separate PVE endpoint with its own schema — `disk` against an\n * enum of `rootfs` and `mp0..mp255`, `size` against PVE's `+<n>` / `<n>` pattern — and it is\n * the one lxc-volume.ts drives.\n * ⛔ `{vmid}` AND `{node}` ARE PATH SEGMENTS, NOT FORM KEYS, on the two PUTs. On the POST `vmid`\n * IS a form key and is required, which is why `createForm` sends it.\n */\nconst LXC_ENDPOINTS = {\n create: 'pve:POST /nodes/{node}/lxc' as EndpointKey,\n resize: 'pve:PUT /nodes/{node}/lxc/{vmid}/resize' as EndpointKey,\n update: 'pve:PUT /nodes/{node}/lxc/{vmid}/config' as EndpointKey,\n};\n\n/** How long each task may run, in one-second polls. ⚠️ A cap, not an estimate. */\nconst CREATE_POLLS = 180;\nconst TASK_POLLS = 60;\n\nconst isServerError = (error: unknown): error is PveError =>\n error instanceof PveError && error.status === 500;\n\n/** One `GET /cluster/resources?type=vm` row. */\ntype GuestRow = { readonly vmid?: unknown; readonly node?: unknown; readonly type?: unknown };\n\n/** The live config, or undefined when no guest holds this vmid anywhere in the cluster. */\nexport const readLive = (where: LxcWhere) =>\n Effect.gen(function* () {\n const answer = yield* pve<Record<string, unknown> | null>(\n where.target,\n 'read',\n 'GET',\n `${guestPath(where)}/config`,\n ).pipe(\n Effect.map((data) => ({ data, error: undefined })),\n Effect.catchIf(isServerError, (error) => Effect.succeed({ data: undefined, error })),\n );\n if (answer.data !== undefined && answer.data !== null) return answer.data;\n const rows = yield* pve<readonly GuestRow[]>(\n where.target,\n 'read',\n 'GET',\n 'cluster/resources?type=vm',\n );\n // ⚠️ `Number()`, NOT `===` ON THE RAW VALUE: a vmid that came back as `\"900\"` would otherwise\n // match nothing, and \"listed nowhere\" is the one answer that turns into a create.\n const found = (rows ?? []).find((row) => Number(row.vmid) === where.vmid);\n if (found !== undefined && found.node === where.node && found.type === 'lxc') {\n return yield* Effect.fail(\n answer.error ??\n new LxcRefusedError(`CT ${String(where.vmid)} is listed but its config read empty.`),\n );\n }\n if (found !== undefined) {\n return yield* Effect.fail(\n new LxcRefusedError(\n `vmid ${String(where.vmid)} is a ${text(found.type, 'guest')} on ` +\n `${text(found.node, '?')}, not a container on ${where.node}. A migration is not an ` +\n 'update and vmids are cluster-wide: declare the node it is on, or pick a free vmid.',\n ),\n );\n }\n return undefined;\n });\n\nexport const attributesOf = (where: LxcWhere, live: Record<string, unknown>): LxcAttributes => ({\n config: storedConfig(live),\n node: where.node,\n rawKeys: rawKeysOf(live),\n vmid: where.vmid,\n});\n\n/** Run one task-starting call and wait for it on the same credential. Fails unless `OK`. */\nconst task = (\n where: LxcWhere,\n method: 'POST' | 'PUT' | 'DELETE',\n path: string,\n what: string,\n polls: number,\n form?: Record<string, string>,\n) =>\n Effect.gen(function* () {\n const credential = yield* mint(where.target, 'provision');\n const upid = text(yield* pveWith<string>(where.target, credential, method, path, form));\n if (upid === '') {\n return yield* Effect.fail(\n new LxcRefusedError(\n `${what}: PVE returned no task id, so the write cannot be confirmed and is not claimed.`,\n ),\n );\n }\n const exit = yield* awaitTask(where.target, credential, where.node, upid, polls);\n if (exit !== 'OK') {\n return yield* Effect.fail(\n new LxcRefusedError(\n `${what}: task ${upid} ended \"${exit}\". Read \\`pvesh get /nodes/${where.node}/tasks/` +\n `${upid}/log\\` before running the deploy again.`,\n ),\n );\n }\n });\n\n/** POST the create and wait for the template to unpack. ⛔ Refusals are the caller's to check. */\nexport const createGuest = (props: LxcProps) =>\n Effect.gen(function* () {\n const form = createForm(props);\n /**\n * ⛔ BEFORE THE POST, AND WITH PRESENCE, BECAUSE THIS IS UNCONDITIONALLY A CREATE. Reached\n * only when the guest is absent (lxc.ts's reconcile), so the vendor's required parameters\n * really are about to go on the wire — `ostemplate` and `vmid`, both of which\n * `createRefusals` already insists on, plus every bound the schema carries and nothing here\n * knew: `cores` 1..8192, `memory` ≥ 16, `hostname` as a dns-name, `tags`, `startup`.\n */\n yield* guardForm(LXC_ENDPOINTS.create, form, true);\n return yield* task(\n props,\n 'POST',\n `nodes/${props.node}/lxc`,\n `create CT ${String(props.vmid)}`,\n CREATE_POLLS,\n form,\n );\n });\n\n/**\n * Apply a judged change: the config PUT first, then each resize.\n * ⚠️ IN THAT ORDER BECAUSE A MOUNT POINT'S PUT CARRIES ITS LIVE `size=`, and the resize rewrites it.\n * ⛔ THE PUT CARRIES THE `digest` OF THE CONFIG IT WAS JUDGED AGAINST. PVE refuses the write if the\n * file changed since (`assert_if_modified`), so an edit landing between reconcile's own read and\n * its PUT fails the deploy instead of being overwritten by a change computed from the older file.\n * ⚠️ THE DIGEST IS THE DEPLOY'S READ, NOT THE PLAN'S. A hand edit between `plan` and `deploy` is\n * seen by reconcile's fresh judge instead: a declared key edited meanwhile is written back to the\n * declaration (even after a plan that warned of nothing), an undeclared one is left alone.\n */\nexport const updateGuest = (props: LxcProps, change: LxcChange, digest: string) =>\n Effect.gen(function* () {\n if (Object.keys(change.put).length > 0 || change.clear.length > 0) {\n const form = withClears(\n { ...change.put, ...(digest === '' ? {} : { digest }) },\n change.clear,\n );\n /** ⚠️ NO PRESENCE: this form is partial by construction — it is `judge`'s answer. */\n yield* guardForm(LXC_ENDPOINTS.update, form, false);\n yield* pve(props.target, 'provision', 'PUT', `${guestPath(props)}/config`, form);\n }\n for (const grow of change.resize) {\n const grown = { disk: grow.disk, size: grow.size };\n // ⛔ WITH PRESENCE: `disk` and `size` are both required and both always sent, so this is a\n // value check over PVE's own `+<n>` size pattern and its `rootfs|mp0..mp255` enum.\n yield* guardForm(LXC_ENDPOINTS.resize, grown, true);\n yield* task(\n props,\n 'PUT',\n `${guestPath(props)}/resize`,\n `grow ${grow.disk} of CT ${String(props.vmid)} to ${grow.size}`,\n TASK_POLLS,\n grown,\n );\n }\n });\n\n/**\n * ⛔ NO `force`, NO `purge`, NO STOP FIRST. PVE refuses to destroy a running or protected guest,\n * and that refusal is kept: stopping a guest so a delete can proceed is an operator's decision.\n * Reached only under `RemovalPolicy.destroy()` — this resource retains by default.\n * ⛔ AND ONLY THE GUEST THIS STACK DECLARED. State holds a vmid, and a vmid is reusable: after a\n * hand `pct destroy` and a new `pct create` at the same id, \"delete CT 150\" is somebody else's\n * container and all its volumes. So the live guest is judged against the last declaration\n * first; one that no longer matches is refused with the keys that differ, and deleting it (or\n * declaring it again) is the operator's call.\n */\nexport const destroyGuest = (where: LxcWhere, declared: LxcProps) =>\n Effect.gen(function* () {\n const live = yield* readLive(where);\n if (live === undefined) return;\n const drift = judge(declared, live).drift;\n if (drift.length > 0) {\n return yield* Effect.fail(\n new LxcRefusedError(\n `destroy CT ${String(where.vmid)}: the guest on ${where.node} no longer matches its last ` +\n `declaration (${drift.join(', ')}), so it may not be the guest this stack made. ` +\n 'Nothing was deleted. Delete it by hand if it should go, or declare it again.',\n ),\n );\n }\n yield* task(where, 'DELETE', guestPath(where), `destroy CT ${String(where.vmid)}`, TASK_POLLS);\n });\n",
|
|
76
|
-
"/**\n * How this package finds out what a node has STAGED, and whether the cluster survived an apply.\n *\n * ★ SPLIT OUT OF network-apply.ts TO KEEP BOTH FILES UNDER THE 250-LINE CAP, and the seam is a real\n * one rather than a convenient line number: this file answers \"what is true on the cluster right\n * now\", network-apply.ts answers \"what does the resource do about it\". Nothing here decides a\n * diff, and the only write in either file is the apply itself.\n *\n * ⛔ THE PENDING STATE IS NOT IN `data`, WHICH IS WHY THIS FILE DOES ITS OWN FETCH. MEASURED in the\n * cluster's own source on node-b, 2026-09-13 — not inferred from documentation:\n * PVE/API2/Network.pm my $tmp = PVE::INotify::read_file('interfaces', 1);\n * $rpcenv->set_result_attrib('changes', $changes) if $changes;\n * PVE/HTTPServer.pm if (my $diff = $rpcenv->get_result_attrib('changes')) {\n * $resp->{changes} = $diff;\n * }\n * So the answer is `{\"data\":[…interfaces…],\"changes\":\"<unified diff>\"}`: `changes` is a SIBLING\n * of `data`, set only when the diff is non-empty. `client.ts`'s `pve()` returns `body.data` and\n * drops the envelope, so the one readable pending signal is invisible to every other resource in\n * this package. Without the fetch below, `Proxmox.NetworkApply` could not diff honestly at all.\n * ★ `pveEnvelopeWith` in client.ts now carries the same member failover as every other call.\n *\n * ⛔ AND THE INTERFACE ROWS CANNOT TELL YOU EITHER. MEASURED in PVE/INotify.pm `read_file`: when\n * `/etc/network/interfaces.new` exists, THAT is the file that gets parsed, so\n * `GET /nodes/{node}/network` answers with the STAGED config and a node about to be reconfigured\n * looks identical to one already running it. Same trap `sdn-apply.ts` documents for `?running=1`.\n *\n * ⚠️ `active` IS NOT A PENDING SIGNAL, AND THE OBVIOUS SHORTCUT IS MEASURABLY WRONG. On node-b and node-c,\n * with nothing staged anywhere (VERIFIED 2026-09-13: `/etc/network/interfaces.new` absent on node-b,\n * node-c and node-d), `wlan0` already comes back with no `active` key at all. Counting interfaces that\n * are not up as \"pending\" would report an update on two of the three nodes forever.\n *\n * ⚠️ ONE THING GENUINELY CANNOT BE SEEN FROM HERE, AND IT IS SMALL. The diff is computed as\n * `diff -b -N -u`, so a staged file differing from the live one ONLY in whitespace produces no\n * `changes` at all. This module reports that node as settled while `interfaces.new` still sits\n * there waiting for the next reload anybody triggers. The file's existence is not exposed by the\n * API in any other form, so the alternative is not a better read — it is SSH.\n */\nimport * as Effect from 'effect/Effect';\nimport { pve, pveEnvelopeWith, pveWith } from './client.ts';\nimport { type PveCredential, type PveTarget } from './credentials.ts';\nimport { leased } from './lease-cache.ts';\nimport { bool, text } from './values.ts';\n\n/** The `GET /nodes/{node}/network` envelope. ⛔ `changes` is beside `data`, never inside it. */\ntype NetworkEnvelope = { changes?: string };\n\n/** One row of `GET /cluster/status` — a `cluster` row, or one `node` row per member. */\ntype StatusRow = { type?: string; name?: string; quorate?: unknown; online?: unknown };\n\n/** One `GET /nodes/{node}/tasks/{upid}/status` answer. `status` is `running` or `stopped`. */\ntype TaskStatus = { status?: string; exitstatus?: string };\n\n/** What the cluster looked like the moment it was asked. Never persisted — see network-apply.ts. */\nexport type ClusterHealth = { quorate: boolean; offline: readonly string[] };\n\n/**\n * The unified diff between a node's applied interfaces file and its staged one, or `''`.\n *\n * ⛔ THIS STRING NEVER LEAVES THIS MODULE, AND THAT IS A SECRET RULE, NOT A STYLE ONE. Alchemy\n * persists attributes UNENCRYPTED (credentials.ts spells out why), and `/etc/network/interfaces`\n * is a file that can legally contain `wpa-psk` — node-b and node-c both carry a `wlan0`, MEASURED — as\n * well as any `pre-up` command somebody wrote. A diff of that file in a state store is a secret\n * in a state store. Only the COUNT below ever escapes.\n */\nconst stagedDiff = (target: PveTarget, node: string) =>\n Effect.gen(function* () {\n const path = `nodes/${node}/network`;\n // ⚠️ THE `read` ROLE IS ENOUGH, AND DELIBERATELY SO. The schema's permission for this GET is\n // `\"user\": \"all\"` — no privilege check at all — so the pending read never needs the\n // provisioning lease, and a plan stays a plan even if the write role is missing entirely.\n // ⛔ THROUGH THE LEASE CACHE, NOT `mint`. This read needs no particular identity — only the\n // apply and its task poll do, and network-apply.ts mints for those itself. Minting here left\n // SIX extra `hf-read@pve` tokens on node-b per C1 plan (one per node, for read and for diff),\n // MEASURED 2026-09-14 while the cache itself made one read mint for the whole run.\n const credential = yield* leased(target, 'read');\n const envelope = (yield* pveEnvelopeWith(target, credential, 'GET', path)) as NetworkEnvelope;\n return text(envelope.changes);\n });\n\n/**\n * Changed lines in a unified diff.\n *\n * ⚠️ A NON-EMPTY DIFF IS NEVER REPORTED AS ZERO, WHICH IS WHAT `Math.max` IS FOR. The `+++`/`---`\n * headers have to be skipped, and a removed line whose own text starts with `---` is skipped with\n * them; a staged change consisting of nothing else would otherwise count 0 and be reported as\n * \"settled\", which is the exact lie this resource exists to prevent. The count is informational —\n * the resource only ever compares it to zero — so an occasional undercount of 1 is harmless while\n * an undercount to zero is not.\n */\nexport const pendingLines = (diff: string) => {\n if (diff === '') return 0;\n const changed = diff\n .split('\\n')\n .filter(\n (line) =>\n (line.startsWith('+') || line.startsWith('-')) &&\n !line.startsWith('+++') &&\n !line.startsWith('---'),\n ).length;\n return Math.max(changed, 1);\n};\n\n/** How many staged lines this node is carrying. Zero is the only settled value. */\nexport const pendingCount = (target: PveTarget, node: string) =>\n stagedDiff(target, node).pipe(Effect.map(pendingLines));\n\n/**\n * Quorum, and every member that is not online.\n *\n * ⛔ QUORUM ALONE IS NOT THE CHECK, AND ON A THREE-NODE CLUSTER IT WOULD MISS THE ACCIDENT THIS\n * RESOURCE IS AFRAID OF. Losing ONE of three leaves `quorate: 1` — MEASURED shape on C1:\n * `{\"id\":\"cluster\",\"name\":\"HF-C1\",\"nodes\":3,\"quorate\":1,…}` plus one row per node with\n * `online: 1`. So a reload that drops node-b off the network is invisible to `quorate` and visible\n * only as `online: 0` on that row. Both are checked, and the node names come back so the failure\n * message can say WHICH member went away.\n *\n * ⚠️ AN UNCLUSTERED NODE IS QUORATE BY DEFINITION. A standalone PVE answers with node rows and no\n * `cluster` row; reading that absence as \"not quorate\" would make this resource undeclarable on\n * every single-node install.\n *\n * ⚠️ THIS ONE NEEDS `Sys.Audit` ON `/` — the only privilege in this family beyond the apply itself.\n * It is asked of the `read` role, which is auditor-shaped, rather than of `provision`.\n */\nconst clusterHealth = (target: PveTarget) =>\n pve<StatusRow[]>(target, 'read', 'GET', 'cluster/status').pipe(\n Effect.map((rows) => {\n const all = rows ?? [];\n const cluster = all.find((row) => row.type === 'cluster');\n return {\n offline: all\n .filter((row) => row.type === 'node' && !bool(row.online))\n .map((row) => text(row.name, '<unnamed>')),\n quorate: cluster === undefined ? true : bool(cluster.quorate),\n } satisfies ClusterHealth;\n }),\n );\n\n/**\n * Why the cluster is not healthy, or `undefined` when it is.\n *\n * ★ A REASON RATHER THAN A BOOLEAN, BECAUSE THE CALLER'S ONLY USE FOR IT IS A REFUSAL MESSAGE.\n * \"The deploy stopped because the cluster was degraded\" is not actionable at three in the\n * morning; \"quorate=true offline=[node-c]\" is. The two callers in network-apply.ts ask this before\n * the reload and again after it, and the second answer is the one that stops the chain from\n * reaching the next node.\n *\n * ⚠️ A MEMBER OFFLINE FOR AN UNRELATED REASON BLOCKS EVERY APPLY, AND THAT IS THE INTENDED\n * BEHAVIOUR RATHER THAN AN OVERSIGHT. A node down for maintenance is one failure away from the\n * pools losing min_size; reloading another node's networking while it is out is the move that\n * completes the outage. Bring it back, or apply by hand with the cluster in front of you.\n */\nexport const degradedReason = (target: PveTarget) =>\n clusterHealth(target).pipe(\n Effect.map((health) =>\n health.quorate && health.offline.length === 0\n ? undefined\n : `quorate=${String(health.quorate)} offline=[${health.offline.join(', ')}]`,\n ),\n );\n\n/**\n * ⛔ NOT AN EXITSTATUS PVE CAN RETURN, AND THAT IS THE POINT. The caller compares against `'OK'`;\n * these two say WHY the answer is not OK without needing a second branch for \"we do not know\".\n */\nexport const UNREACHABLE =\n 'the task could not be read -- the node stopped answering, or this lease cannot see it';\nconst STILL_RUNNING = 'still running when this provider stopped waiting';\n\n/**\n * How long to wait on `ifreload`, in one-second polls.\n *\n * ⚠️ THIRTY SECONDS IS A CEILING, NOT AN EXPECTATION. A reload of a handful of interfaces finishes\n * in a second or two; past thirty, something is wrong in a way a deploy cannot fix by waiting,\n * and the honest move is to stop and name the task rather than park the stack on it.\n */\nconst ATTEMPTS = 30;\n\n/**\n * Wait for one `srvreload` task and answer its exitstatus.\n *\n * ⛔ THE APPLY IS ASYNCHRONOUS AND ITS 200 MEANS NOTHING. MEASURED: `reload_network_config` ends\n * `return $rpcenv->fork_worker('srvreload', 'networking', $authuser, $worker)`, so the PUT\n * returns a UPID the instant the worker is forked — before `ifreload -a` has run, let alone\n * succeeded. Waiting for the task is the only way to learn the outcome.\n *\n * ⛔ AND IT MUST BE POLLED WITH THE CREDENTIAL THAT STARTED IT. The task-status schema says\n * `\"user\": \"all\"` with the note \"needs 'Sys.Audit' on '/nodes/<node>' if they are not the owner\n * of the task\". Every mint returns a NEW token id, so a second mint is a different identity and\n * is not the owner — which is why this takes a `PveCredential` and the caller keeps one lease\n * across both calls, instead of widening the provisioning role to read its own tasks.\n */\nexport const awaitTask = (\n target: PveTarget,\n credential: PveCredential,\n node: string,\n upid: string,\n // ★ A CALLER WHOSE TASK IS SLOWER THAN A RELOAD SAYS SO: an LXC create unpacks a template.\n attempts: number = ATTEMPTS,\n) =>\n Effect.gen(function* () {\n /**\n * ⚠️ THE UPID GOES IN RAW, NOT PERCENT-ENCODED, AND THE CHOICE IS DELIBERATE. A UPID is\n * `UPID:<node>:<hex>:<hex>:<hex>:<type>:<id>:<user>:` — its only punctuation is `:`, `@`, `!`\n * and `-`, every one of which is a legal path character, so raw needs nothing from the\n * router. Encoding them instead RELIES on PVE unescaping each path segment, which is\n * plausible and was NOT measured here (measuring it means starting a task, i.e. writing). If\n * that assumption were wrong the poll would 404, this would report the outcome as unknown,\n * and a perfectly good reload would stop the deploy. Raw removes the assumption.\n */\n const path = `nodes/${node}/tasks/${upid}/status`;\n for (let attempt = 0; attempt < attempts; attempt += 1) {\n /**\n * ⛔ A FAILED POLL IS NOT A FAILED RELOAD, AND CALLING IT ONE WOULD BE THE WORST KIND OF\n * WRONG. If the member serving the poll is the node being reloaded, `ifreload -a` can drop\n * the very connection this poll rides on — see network-apply.ts.\n * The reload may well have succeeded. So the call is collapsed to \"we cannot see the task\"\n * and the caller reports the outcome as UNKNOWN, with the UPID, rather than guessing.\n * ⚠️ A 403 LANDS HERE TOO, AND IT READS THE SAME. If the polling identity is somehow not the\n * task's owner, the endpoint wants `Sys.Audit` on the node and this sees only \"no answer\" —\n * which is why `UNREACHABLE` names both possibilities rather than blaming the network.\n */\n const status = yield* pveWith<TaskStatus>(target, credential, 'GET', path).pipe(\n Effect.orElseSucceed(() => undefined),\n );\n if (status === undefined) return UNREACHABLE;\n if (status.status === 'stopped') return text(status.exitstatus, 'stopped with no exitstatus');\n yield* Effect.sleep('1 second');\n }\n return STILL_RUNNING;\n });\n",
|
|
76
|
+
"/**\n * How this package finds out what a node has STAGED, and whether the cluster survived an apply.\n *\n * ★ SPLIT OUT OF network-apply.ts TO KEEP BOTH FILES UNDER THE 250-LINE CAP, and the seam is a real\n * one rather than a convenient line number: this file answers \"what is true on the cluster right\n * now\", network-apply.ts answers \"what does the resource do about it\". Nothing here decides a\n * diff, and the only write in either file is the apply itself.\n *\n * ⛔ THE PENDING STATE IS NOT IN `data`, WHICH IS WHY THIS FILE DOES ITS OWN FETCH. MEASURED in the\n * cluster's own source on node-b, 2026-09-13 — not inferred from documentation:\n * PVE/API2/Network.pm my $tmp = PVE::INotify::read_file('interfaces', 1);\n * $rpcenv->set_result_attrib('changes', $changes) if $changes;\n * PVE/HTTPServer.pm if (my $diff = $rpcenv->get_result_attrib('changes')) {\n * $resp->{changes} = $diff;\n * }\n * So the answer is `{\"data\":[…interfaces…],\"changes\":\"<unified diff>\"}`: `changes` is a SIBLING\n * of `data`, set only when the diff is non-empty. `client.ts`'s `pve()` returns `body.data` and\n * drops the envelope, so the one readable pending signal is invisible to every other resource in\n * this package. Without the fetch below, `Proxmox.NetworkApply` could not diff honestly at all.\n * ★ `pveEnvelopeWith` in client.ts now carries the same member failover as every other call.\n * ⛔ WHY THIS FAMILY DID NOT MOVE TO DISTILLED WITH `Proxmox.NodeNetwork` (2026-09-24, decision\n * 43's walk-down): CONFIRMED against `@distilled.cloud/proxmox`'s own `protocol.ts` that its\n * `transformResponse` unconditionally returns `body.data ?? {}` for every operation, before a\n * generated call's typed output is even built — no typed call, current or future, could see\n * `changes` without a protocol-level change upstream. `pveEnvelopeWith` stays because nothing\n * else preserves the sibling this function needs.\n *\n * ⛔ AND THE INTERFACE ROWS CANNOT TELL YOU EITHER. MEASURED in PVE/INotify.pm `read_file`: when\n * `/etc/network/interfaces.new` exists, THAT is the file that gets parsed, so\n * `GET /nodes/{node}/network` answers with the STAGED config and a node about to be reconfigured\n * looks identical to one already running it. Same trap `sdn-apply.ts` documents for `?running=1`.\n *\n * ⚠️ `active` IS NOT A PENDING SIGNAL, AND THE OBVIOUS SHORTCUT IS MEASURABLY WRONG. On node-b and node-c,\n * with nothing staged anywhere (VERIFIED 2026-09-13: `/etc/network/interfaces.new` absent on node-b,\n * node-c and node-d), `wlan0` already comes back with no `active` key at all. Counting interfaces that\n * are not up as \"pending\" would report an update on two of the three nodes forever.\n *\n * ⚠️ ONE THING GENUINELY CANNOT BE SEEN FROM HERE, AND IT IS SMALL. The diff is computed as\n * `diff -b -N -u`, so a staged file differing from the live one ONLY in whitespace produces no\n * `changes` at all. This module reports that node as settled while `interfaces.new` still sits\n * there waiting for the next reload anybody triggers. The file's existence is not exposed by the\n * API in any other form, so the alternative is not a better read — it is SSH.\n */\nimport * as Effect from 'effect/Effect';\nimport { pve, pveEnvelopeWith, pveWith } from './client.ts';\nimport { type PveCredential, type PveTarget } from './credentials.ts';\nimport { leased } from './lease-cache.ts';\nimport { bool, text } from './values.ts';\n\n/** The `GET /nodes/{node}/network` envelope. ⛔ `changes` is beside `data`, never inside it. */\ntype NetworkEnvelope = { changes?: string };\n\n/** One row of `GET /cluster/status` — a `cluster` row, or one `node` row per member. */\ntype StatusRow = { type?: string; name?: string; quorate?: unknown; online?: unknown };\n\n/** One `GET /nodes/{node}/tasks/{upid}/status` answer. `status` is `running` or `stopped`. */\ntype TaskStatus = { status?: string; exitstatus?: string };\n\n/** What the cluster looked like the moment it was asked. Never persisted — see network-apply.ts. */\nexport type ClusterHealth = { quorate: boolean; offline: readonly string[] };\n\n/**\n * The unified diff between a node's applied interfaces file and its staged one, or `''`.\n *\n * ⛔ THIS STRING NEVER LEAVES THIS MODULE, AND THAT IS A SECRET RULE, NOT A STYLE ONE. Alchemy\n * persists attributes UNENCRYPTED (credentials.ts spells out why), and `/etc/network/interfaces`\n * is a file that can legally contain `wpa-psk` — node-b and node-c both carry a `wlan0`, MEASURED — as\n * well as any `pre-up` command somebody wrote. A diff of that file in a state store is a secret\n * in a state store. Only the COUNT below ever escapes.\n */\nconst stagedDiff = (target: PveTarget, node: string) =>\n Effect.gen(function* () {\n const path = `nodes/${node}/network`;\n // ⚠️ THE `read` ROLE IS ENOUGH, AND DELIBERATELY SO. The schema's permission for this GET is\n // `\"user\": \"all\"` — no privilege check at all — so the pending read never needs the\n // provisioning lease, and a plan stays a plan even if the write role is missing entirely.\n // ⛔ THROUGH THE LEASE CACHE, NOT `mint`. This read needs no particular identity — only the\n // apply and its task poll do, and network-apply.ts mints for those itself. Minting here left\n // SIX extra `hf-read@pve` tokens on node-b per C1 plan (one per node, for read and for diff),\n // MEASURED 2026-09-14 while the cache itself made one read mint for the whole run.\n const credential = yield* leased(target, 'read');\n const envelope = (yield* pveEnvelopeWith(target, credential, 'GET', path)) as NetworkEnvelope;\n return text(envelope.changes);\n });\n\n/**\n * Changed lines in a unified diff.\n *\n * ⚠️ A NON-EMPTY DIFF IS NEVER REPORTED AS ZERO, WHICH IS WHAT `Math.max` IS FOR. The `+++`/`---`\n * headers have to be skipped, and a removed line whose own text starts with `---` is skipped with\n * them; a staged change consisting of nothing else would otherwise count 0 and be reported as\n * \"settled\", which is the exact lie this resource exists to prevent. The count is informational —\n * the resource only ever compares it to zero — so an occasional undercount of 1 is harmless while\n * an undercount to zero is not.\n */\nexport const pendingLines = (diff: string) => {\n if (diff === '') return 0;\n const changed = diff\n .split('\\n')\n .filter(\n (line) =>\n (line.startsWith('+') || line.startsWith('-')) &&\n !line.startsWith('+++') &&\n !line.startsWith('---'),\n ).length;\n return Math.max(changed, 1);\n};\n\n/** How many staged lines this node is carrying. Zero is the only settled value. */\nexport const pendingCount = (target: PveTarget, node: string) =>\n stagedDiff(target, node).pipe(Effect.map(pendingLines));\n\n/**\n * Quorum, and every member that is not online.\n *\n * ⛔ QUORUM ALONE IS NOT THE CHECK, AND ON A THREE-NODE CLUSTER IT WOULD MISS THE ACCIDENT THIS\n * RESOURCE IS AFRAID OF. Losing ONE of three leaves `quorate: 1` — MEASURED shape on C1:\n * `{\"id\":\"cluster\",\"name\":\"HF-C1\",\"nodes\":3,\"quorate\":1,…}` plus one row per node with\n * `online: 1`. So a reload that drops node-b off the network is invisible to `quorate` and visible\n * only as `online: 0` on that row. Both are checked, and the node names come back so the failure\n * message can say WHICH member went away.\n *\n * ⚠️ AN UNCLUSTERED NODE IS QUORATE BY DEFINITION. A standalone PVE answers with node rows and no\n * `cluster` row; reading that absence as \"not quorate\" would make this resource undeclarable on\n * every single-node install.\n *\n * ⚠️ THIS ONE NEEDS `Sys.Audit` ON `/` — the only privilege in this family beyond the apply itself.\n * It is asked of the `read` role, which is auditor-shaped, rather than of `provision`.\n */\nconst clusterHealth = (target: PveTarget) =>\n pve<StatusRow[]>(target, 'read', 'GET', 'cluster/status').pipe(\n Effect.map((rows) => {\n const all = rows ?? [];\n const cluster = all.find((row) => row.type === 'cluster');\n return {\n offline: all\n .filter((row) => row.type === 'node' && !bool(row.online))\n .map((row) => text(row.name, '<unnamed>')),\n quorate: cluster === undefined ? true : bool(cluster.quorate),\n } satisfies ClusterHealth;\n }),\n );\n\n/**\n * Why the cluster is not healthy, or `undefined` when it is.\n *\n * ★ A REASON RATHER THAN A BOOLEAN, BECAUSE THE CALLER'S ONLY USE FOR IT IS A REFUSAL MESSAGE.\n * \"The deploy stopped because the cluster was degraded\" is not actionable at three in the\n * morning; \"quorate=true offline=[node-c]\" is. The two callers in network-apply.ts ask this before\n * the reload and again after it, and the second answer is the one that stops the chain from\n * reaching the next node.\n *\n * ⚠️ A MEMBER OFFLINE FOR AN UNRELATED REASON BLOCKS EVERY APPLY, AND THAT IS THE INTENDED\n * BEHAVIOUR RATHER THAN AN OVERSIGHT. A node down for maintenance is one failure away from the\n * pools losing min_size; reloading another node's networking while it is out is the move that\n * completes the outage. Bring it back, or apply by hand with the cluster in front of you.\n */\nexport const degradedReason = (target: PveTarget) =>\n clusterHealth(target).pipe(\n Effect.map((health) =>\n health.quorate && health.offline.length === 0\n ? undefined\n : `quorate=${String(health.quorate)} offline=[${health.offline.join(', ')}]`,\n ),\n );\n\n/**\n * ⛔ NOT AN EXITSTATUS PVE CAN RETURN, AND THAT IS THE POINT. The caller compares against `'OK'`;\n * these two say WHY the answer is not OK without needing a second branch for \"we do not know\".\n */\nexport const UNREACHABLE =\n 'the task could not be read -- the node stopped answering, or this lease cannot see it';\nconst STILL_RUNNING = 'still running when this provider stopped waiting';\n\n/**\n * How long to wait on `ifreload`, in one-second polls.\n *\n * ⚠️ THIRTY SECONDS IS A CEILING, NOT AN EXPECTATION. A reload of a handful of interfaces finishes\n * in a second or two; past thirty, something is wrong in a way a deploy cannot fix by waiting,\n * and the honest move is to stop and name the task rather than park the stack on it.\n */\nconst ATTEMPTS = 30;\n\n/**\n * Wait for one `srvreload` task and answer its exitstatus.\n *\n * ⛔ THE APPLY IS ASYNCHRONOUS AND ITS 200 MEANS NOTHING. MEASURED: `reload_network_config` ends\n * `return $rpcenv->fork_worker('srvreload', 'networking', $authuser, $worker)`, so the PUT\n * returns a UPID the instant the worker is forked — before `ifreload -a` has run, let alone\n * succeeded. Waiting for the task is the only way to learn the outcome.\n *\n * ⛔ AND IT MUST BE POLLED WITH THE CREDENTIAL THAT STARTED IT. The task-status schema says\n * `\"user\": \"all\"` with the note \"needs 'Sys.Audit' on '/nodes/<node>' if they are not the owner\n * of the task\". Every mint returns a NEW token id, so a second mint is a different identity and\n * is not the owner — which is why this takes a `PveCredential` and the caller keeps one lease\n * across both calls, instead of widening the provisioning role to read its own tasks.\n *\n * ⛔ THE OTHER REASON THIS FAMILY DID NOT MOVE TO DISTILLED (2026-09-24): CHECKED against\n * `@distilled.cloud/proxmox`'s own `Task.awaitTask` (`src/task.ts`) before deciding — it\n * propagates a poll failure as a genuine typed `GetNodeTaskStatusError` rather than collapsing\n * it to `UNREACHABLE` the way this function does, which would turn the ⛔ two paragraphs above\n * into a failed `reconcile` on exactly the poll a mid-reload connection drop is expected to hit.\n */\nexport const awaitTask = (\n target: PveTarget,\n credential: PveCredential,\n node: string,\n upid: string,\n // ★ A CALLER WHOSE TASK IS SLOWER THAN A RELOAD SAYS SO: an LXC create unpacks a template.\n attempts: number = ATTEMPTS,\n) =>\n Effect.gen(function* () {\n /**\n * ⚠️ THE UPID GOES IN RAW, NOT PERCENT-ENCODED, AND THE CHOICE IS DELIBERATE. A UPID is\n * `UPID:<node>:<hex>:<hex>:<hex>:<type>:<id>:<user>:` — its only punctuation is `:`, `@`, `!`\n * and `-`, every one of which is a legal path character, so raw needs nothing from the\n * router. Encoding them instead RELIES on PVE unescaping each path segment, which is\n * plausible and was NOT measured here (measuring it means starting a task, i.e. writing). If\n * that assumption were wrong the poll would 404, this would report the outcome as unknown,\n * and a perfectly good reload would stop the deploy. Raw removes the assumption.\n */\n const path = `nodes/${node}/tasks/${upid}/status`;\n for (let attempt = 0; attempt < attempts; attempt += 1) {\n /**\n * ⛔ A FAILED POLL IS NOT A FAILED RELOAD, AND CALLING IT ONE WOULD BE THE WORST KIND OF\n * WRONG. If the member serving the poll is the node being reloaded, `ifreload -a` can drop\n * the very connection this poll rides on — see network-apply.ts.\n * The reload may well have succeeded. So the call is collapsed to \"we cannot see the task\"\n * and the caller reports the outcome as UNKNOWN, with the UPID, rather than guessing.\n * ⚠️ A 403 LANDS HERE TOO, AND IT READS THE SAME. If the polling identity is somehow not the\n * task's owner, the endpoint wants `Sys.Audit` on the node and this sees only \"no answer\" —\n * which is why `UNREACHABLE` names both possibilities rather than blaming the network.\n */\n const status = yield* pveWith<TaskStatus>(target, credential, 'GET', path).pipe(\n Effect.orElseSucceed(() => undefined),\n );\n if (status === undefined) return UNREACHABLE;\n if (status.status === 'stopped') return text(status.exitstatus, 'stopped with no exitstatus');\n yield* Effect.sleep('1 second');\n }\n return STILL_RUNNING;\n });\n",
|
|
77
77
|
"/**\n * `Proxmox.MetricServer` — where the cluster ships its metrics, declared.\n *\n * ★ THE FAILURE THIS PREVENTS IS A SILENT ONE, WHICH IS THE WHOLE ARGUMENT FOR DECLARING IT.\n * Undeclared, the target exists only as a section of `/etc/pve/status.cfg`: rebuild a node,\n * re-add one to the cluster, or restore a config from before it was configured, and the cluster\n * stops shipping. Nothing fails, no task errors, no alert fires — the graphs go flat, and the\n * first to find out is whoever went looking for a number that was not there.\n *\n * ⛔ CREATE IS `POST cluster/metrics/server/{id}` — THE OBJECT'S OWN PATH — SO `collection()`\n * RETURNS THE SAME STRING AS `path()`, AND THAT IS NOT A TYPO. MEASURED: a POST to the\n * collection answers \"Method 'POST /cluster/metrics/server' not implemented\", while the id path\n * gets as far as a permission check (`/`, Sys.Modify); the published schema agrees, giving the\n * collection a GET and nothing else. `createForm` omits `id` for the same reason — it is already\n * the last segment of the path being POSTed to, and a second copy can only disagree with it.\n *\n * ⛔ THE `token` IS WRITE-ONLY AND MUST NEVER BECOME AN ATTRIBUTE. Alchemy persists attributes\n * UNENCRYPTED, so one that reached state would outlive the change that set it, in the state\n * store and in every backup of it. It is `never` in the props below — declaring one is a COMPILE\n * ERROR rather than a leak found months later — and absent from `optional`, for the reason\n * given there. Set it out of band; PVE never returns it on a read anyway. `otel-headers`, where an\n * opentelemetry server's bearer token lives, gets the same treatment in metric-server-otel.ts.\n *\n * ⚠️ PRIVILEGES, AND THIS IS A BIGGER ASK THAN IT LOOKS. Read and diff are fine under an auditor\n * lease — the single-object GET checks `Sys.Audit` on `/` — while create, update and delete all\n * check `Sys.Modify` on `/` and answer \"Permission check failed (/, Sys.Modify)\" until the role\n * is widened. Widen it knowingly: the ACL path is the ROOT and there is no `/metrics` object to\n * scope to, so `Sys.Modify` also buys datacenter options, notification targets and every other\n * cluster-wide config write. A separate role for metric writes is the narrower answer.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport { UNSET, createBody, update } from './metric-server-form.ts';\nimport {\n type MetricServerOtelAttributes,\n type MetricServerOtelProps,\n otelAttributes,\n otelMatches,\n} from './metric-server-otel.ts';\nimport { type PveRequirements, type WithTarget, pveHandlers } from './resource.ts';\nimport { bool, int, text } from './values.ts';\n\n/**\n * PVE's status plugins. Which one a server is decides which fields it will even accept.\n *\n * ★ `opentelemetry` IS OFFERED SINCE 2026-09-14, AND THE REASON IT WAS NOT STILL HOLDS FOR ANY FIELD\n * LEFT OUT. Its whole configuration is the `otel-*` family; declared without managing that family\n * it would build a target whose every meaningful setting sat outside the graph, and report `noop`\n * over it. metric-server-otel.ts manages every `otel-*` field but two, and says why for each.\n */\nexport type MetricServerType = 'graphite' | 'influxdb' | 'opentelemetry';\n\nexport interface MetricServerProps extends WithTarget, MetricServerOtelProps {\n /** ⚠️ A `pve-configid` — a letter, then letters, digits, `-` and `_`. A rejected one fails with\n * \"invalid configuration ID\", which reads as a broken request rather than as a naming rule. */\n id: string;\n /**\n * ⛔ CREATE-TIME ONLY. The PUT schema has no `type` parameter at all: a section's type is fixed\n * when it is written, so the ⛔ in `attributes` turns a changed type into a refusal rather than\n * a silent no-op over the wrong target.\n */\n type: MetricServerType;\n /** ⚠️ REQUIRED ON EVERY WRITE, UPDATE INCLUDED — see `required`. */\n server: string;\n port: number;\n /** Keep the section but stop shipping. Unset is an ENABLED target, not an absent one. */\n disable?: boolean;\n /**\n * graphite and influxdb only: UDP MTU (512-65536) and socket/HTTP timeout. Unset leaves PVE's\n * defaults, 1500 and 1. ⚠️ opentelemetry has neither; its timeout is `otel-timeout`.\n */\n mtu?: number;\n timeout?: number;\n /** graphite only: the root path metrics are published under, e.g. `proxmox.mycluster`. */\n path?: string;\n /**\n * influxdb only. `udp` is PVE's default and writes line protocol; `http`/`https` use the v2 API,\n * the only place `organization` and `bucket` mean anything. An unset `verify-certificate` means\n * VERIFY — PVE's default, and the safe one.\n * ⚠️ PVE's hyphenated names are kept rather than camelCased, so nothing between here and the form\n * body has to remember a mapping.\n */\n influxdbproto?: 'udp' | 'http' | 'https';\n organization?: string;\n bucket?: string;\n 'api-path-prefix'?: string;\n 'max-body-size'?: number;\n 'verify-certificate'?: boolean;\n /** ⛔ `never` ON PURPOSE — see the ⛔ in the header. The compile error is the feature. */\n token?: never;\n}\n\n/**\n * ⛔ NO `digest`, ON PURPOSE. PVE returns one with every read, but it is the digest of the WHOLE\n * `status.cfg` rather than of this section — declaring a SECOND metric server would rewrite this\n * one's stored attributes, and comparing it would report an update on a target nobody touched.\n * ⛔ And no `token`, for the reason the header gives at length.\n * ⚠️ `mtu`, `timeout` and `max-body-size` report `UNSET` when the section carries none, i.e. when\n * PVE's own default is what the target will use; `verify-certificate` reports that default\n * directly, because \"absent\" there means the target verifies. `port` reports 0 only for a\n * malformed section — PVE requires a port — so a plan should say so loudly. The `otel-*` half\n * follows the same rules; see metric-server-otel.ts.\n */\nexport interface MetricServerAttributes extends MetricServerOtelAttributes {\n id: string;\n type: MetricServerType;\n server: string;\n port: number;\n disable: boolean;\n mtu: number;\n timeout: number;\n path: string;\n influxdbproto: string;\n organization: string;\n bucket: string;\n 'api-path-prefix': string;\n 'max-body-size': number;\n 'verify-certificate': boolean;\n}\n\nexport interface ProxmoxMetricServer extends Resource<\n 'Proxmox.MetricServer',\n MetricServerProps,\n MetricServerAttributes,\n never,\n PveRequirements\n> {}\n\nexport const ProxmoxMetricServer = Resource<ProxmoxMetricServer>('Proxmox.MetricServer');\n\n/**\n * The type-specific half of `matches`.\n *\n * ⛔ ONLY FIELDS THIS TYPE ACTUALLY SENDS ARE COMPARED. `verify-certificate` is not in graphite's\n * option set and `path` is not in influxdb's, so neither is ever sent to the wrong plugin — and\n * diffing one anyway would report an update that the PUT it triggers cannot satisfy, forever.\n * `mtu` and `timeout` are compared for graphite and influxdb only, because the opentelemetry\n * plugin has neither and `optional` never sends them to it.\n */\nconst matchesType = (attributes: MetricServerAttributes, props: MetricServerProps): boolean => {\n if (props.type === 'opentelemetry') return otelMatches(attributes, props);\n const socket =\n attributes.mtu === (props.mtu ?? UNSET) && attributes.timeout === (props.timeout ?? UNSET);\n if (props.type === 'graphite') return socket && attributes.path === (props.path ?? '');\n return (\n socket &&\n attributes.influxdbproto === (props.influxdbproto ?? '') &&\n attributes.organization === (props.organization ?? '') &&\n attributes.bucket === (props.bucket ?? '') &&\n attributes['api-path-prefix'] === (props['api-path-prefix'] ?? '') &&\n attributes['max-body-size'] === (props['max-body-size'] ?? UNSET) &&\n attributes['verify-certificate'] === (props['verify-certificate'] !== false)\n );\n};\n\nconst handlers = pveHandlers<MetricServerProps, MetricServerAttributes>({\n attributes: (live, props) => {\n /**\n * ⛔ A SERVER OF ANOTHER TYPE IS ANOTHER OBJECT, AND \"ABSENT\" IS THE HONEST ANSWER. `type`\n * cannot be changed by a PUT, so reporting the foreign section as missing makes reconcile\n * POST instead and PVE refuses because the id is taken — a loud, accurate error rather than a\n * PUT pushing influxdb fields at a graphite section. An older PVE that omits `type` from the\n * read falls through and is trusted.\n */\n const liveType = text(live['type']);\n if (liveType !== '' && liveType !== props.type) return undefined;\n return {\n ...otelAttributes(live),\n 'api-path-prefix': text(live['api-path-prefix']),\n bucket: text(live['bucket']),\n disable: bool(live['disable'], false),\n id: props.id,\n influxdbproto: text(live['influxdbproto']),\n 'max-body-size': int(live['max-body-size'], UNSET),\n mtu: int(live['mtu'], UNSET),\n organization: text(live['organization']),\n path: text(live['path']),\n port: int(live['port'], 0),\n server: text(live['server']),\n timeout: int(live['timeout'], UNSET),\n type: props.type,\n 'verify-certificate': bool(live['verify-certificate'], true),\n };\n },\n /** ⛔ THE SAME STRING AS `path`, DELIBERATELY — see the ⛔ in the header. */\n collection: (props) => `cluster/metrics/server/${props.id}`,\n /** ⚠️ `type` IS REQUIRED ON CREATE; `id` IS NOT SENT, because the id is the path. */\n createForm: createBody,\n /**\n * The vendor rules both forms are checked against at plan time — resource-spec.ts.\n * ⚠️ POST AND PUT ARE THE SAME PATH HERE, and they are still two different tables: only the\n * POST marks `type` required, and only the PUT accepts `delete` and `digest`.\n */\n endpoint: {\n create: 'pve:POST /cluster/metrics/server/{id}',\n update: 'pve:PUT /cluster/metrics/server/{id}',\n },\n /**\n * ⛔ `id` and `type` are absent: one is the key the object was read by, the other is refused\n * rather than updated. Everything type-specific is `matchesType`'s, above.\n */\n matches: (attributes, props) =>\n attributes.server === props.server &&\n attributes.port === props.port &&\n attributes.disable === (props.disable === true) &&\n matchesType(attributes, props),\n path: (props) => `cluster/metrics/server/${props.id}`,\n /** The form and its clear-list, from the one table in metric-server-form.ts. */\n updateForm: update,\n});\n\n/**\n * ⛔ THE EMPTY `list` FROM `pveHandlers` EARNS ITS KEEP HERE. `GET cluster/metrics/server` answers\n * with every target the cluster already ships to, including the one somebody configured by hand\n * years ago; adopting that is how a later `alchemy destroy` silences a graph nobody declared.\n * ⚠️ AND NOTHING BRAKES THIS DESTROY. A pool refuses while it holds guests, a container while it\n * runs; a metric server just leaves `status.cfg`, the cluster stops shipping on the next\n * interval, and no guest or task is affected. The plan diff is the only warning anyone gets —\n * the top of this file again, this time caused by a deploy.\n */\nexport const ProxmoxMetricServerProvider = () =>\n Provider.effect(ProxmoxMetricServer, Effect.succeed(ProxmoxMetricServer.Provider.of(handlers)));\n",
|
|
78
78
|
"/**\n * A metric server's props, as the form PVE wants.\n *\n * ★ SPLIT OUT OF metric-server.ts TO KEEP BOTH FILES UNDER THE 250-LINE CAP, and the seam is a\n * real one rather than a convenient line number: this file answers \"how does a declaration\n * become a PVE form\", and metric-server.ts answers \"what is a metric server and when has it\n * changed\". Nothing here reads the cluster and nothing here decides a diff.\n *\n * ⚠️ THE `import type` BACK TO metric-server.ts IS A CYCLE ON PAPER ONLY. It is type-only, so it\n * is erased before anything runs — `MetricServerProps` stays the resource's public shape, in the\n * file that declares the resource, rather than being moved somewhere odd to dodge the arrow.\n * metric-server-otel.ts imports `UNSET` from here and this file imports nothing back from it,\n * so no runtime cycle exists either.\n */\nimport type { MetricServerProps } from './metric-server.ts';\nimport { withClears } from './values.ts';\n\n/**\n * ⚠️ \"NOT SET\" CANNOT BE 0 HERE, WHICH IS WHY IT IS -1. `timeout` has a minimum of 0 in PVE's\n * schema, so a deliberate `timeout 0` exists; a provider using 0 as its absent-marker reads that\n * zero as \"unset\" and never clears it. -1 is outside every one of these fields' ranges.\n */\nexport const UNSET = -1;\n\nconst str = (value: number | undefined) => (value === undefined ? undefined : String(value));\n\n/**\n * Every managed optional, per type: the value to send, or undefined for \"clear it\".\n *\n * ⛔ ONE TABLE FEEDS BOTH HALVES OF AN UPDATE, AND THAT IS THE POINT. A PUT THAT OMITS A FIELD DOES\n * NOT CLEAR IT — PVE merges the form into the existing section — so a managed optional needs a\n * matching `delete=` the moment its prop goes away, or `matches` reports an update on every plan\n * forever. Deriving the form and the delete list from one map makes \"managed but not clearable\"\n * impossible to write here, which a separate clear-list would not.\n * ⛔ NOTHING SET OUT OF BAND MAY BE LISTED HERE, `token` FIRST AMONG THEM: a field in this map is\n * CLEARED whenever it is undeclared, so adding the token would strip a working target's\n * credential on the next plan — metrics stop, nothing errors, the graph goes flat. `otel-headers`\n * is absent for the same reason: it is where an OTLP server's bearer token lives.\n * ⚠️ AND THE BRANCHES CANNOT BE ONE SHARED MAP. PVE validates a section against that plugin's own\n * option set, so `path` on an influxdb server is a hard 400 and `delete=path` there answers \"no\n * such option\" — neither is an ignored hint. The opentelemetry plugin has no `mtu` and no\n * `timeout` at all (its option list is `server`, `port`, `disable` and the `otel-*` family), so\n * that branch carries neither.\n * ⚠️ graphite's `proto` (udp or tcp) is deliberately absent: a transport chosen by hand stays put\n * and no plan diffs it. Managing it means adding it HERE, where it is clearable by construction.\n * `otel-resource-attributes` is absent for the reason metric-server-otel.ts gives.\n */\nexport const optional = (props: MetricServerProps): Record<string, string | undefined> => {\n switch (props.type) {\n case 'graphite':\n return { mtu: str(props.mtu), path: props.path, timeout: str(props.timeout) };\n case 'influxdb':\n return {\n 'api-path-prefix': props['api-path-prefix'],\n bucket: props.bucket,\n influxdbproto: props.influxdbproto,\n 'max-body-size': str(props['max-body-size']),\n mtu: str(props.mtu),\n organization: props.organization,\n timeout: str(props.timeout),\n };\n case 'opentelemetry':\n return {\n 'otel-compression': props['otel-compression'],\n 'otel-max-body-size': str(props['otel-max-body-size']),\n 'otel-path': props['otel-path'],\n 'otel-protocol': props['otel-protocol'],\n 'otel-timeout': str(props['otel-timeout']),\n };\n }\n};\n\n/**\n * The certificate-verification flag, for the one plugin that owns it.\n *\n * ⛔ EACH FLAG GOES ONLY TO ITS OWN PLUGIN. `verify-certificate` is influxdb's, `otel-verify-ssl` is\n * opentelemetry's, graphite has neither — and PVE refuses an option outside the section's plugin\n * rather than ignoring it, the same way it refuses `path` on influxdb.\n */\nconst verification = (props: MetricServerProps): Record<string, string> => {\n switch (props.type) {\n case 'graphite':\n return {};\n case 'influxdb':\n return { 'verify-certificate': props['verify-certificate'] === false ? '0' : '1' };\n case 'opentelemetry':\n return { 'otel-verify-ssl': props['otel-verify-ssl'] === false ? '0' : '1' };\n }\n};\n\n/**\n * The fields sent on EVERY write, create and update alike.\n *\n * ⚠️ `server` AND `port` ARE REQUIRED BY THE PUT TOO, not only by the POST: a PUT that omits either\n * fails parameter verification rather than leaving them alone. PVE also refuses to clear them —\n * \"unable to delete required option\" — which is why they are here and not in `optional`.\n * ⚠️ `disable` AND THE VERIFY FLAG ARE SENT WITH THEIR DEFAULTS rather than left out. Writing the\n * value PVE would have assumed makes the read-back match on the first plan after the create,\n * whether or not that PVE materialises defaults into the file.\n */\nconst required = (props: MetricServerProps): Record<string, string> => ({\n disable: props.disable === true ? '1' : '0',\n port: String(props.port),\n server: props.server,\n ...verification(props),\n});\n\nexport const body = (props: MetricServerProps) => {\n const fields = required(props);\n for (const [option, value] of Object.entries(optional(props))) {\n if (value !== undefined) fields[option] = value;\n }\n return fields;\n};\n\n/**\n * An update's form: everything `body` sends, plus a `delete=` naming each managed optional that is\n * no longer declared.\n *\n * ★ MOVED HERE FROM metric-server.ts UNCHANGED, so the test beside this file can reach the form an\n * update really sends instead of re-deriving it and testing its own copy.\n */\nexport const update = (props: MetricServerProps) => {\n const clear = Object.entries(optional(props))\n .filter(([, value]) => value === undefined)\n .map(([option]) => option);\n return withClears(body(props), clear);\n};\n\n/**\n * The create form: `body` plus the one field only a POST takes.\n *\n * ★ EXPORTED SO THE CONSTRAINT PROOF CAN RUN THE REAL FORM. `metric-server.ts` built this inline\n * in its spec, which meant the only way to check it against PVE's table was to retype it in a\n * test — and a retyped form proves the test, not the provider.\n * ⚠️ `type` IS REQUIRED ON CREATE AND REFUSED ON UPDATE; `id` is the path, never the body.\n */\nexport const createBody = (props: MetricServerProps) => ({ ...body(props), type: props.type });\n",
|
|
79
79
|
"/**\n * The `opentelemetry` plugin's option set: what a metric server of that type accepts, how it reads\n * back, and when it has changed.\n *\n * ★ SPLIT OUT OF metric-server.ts TO KEEP IT UNDER THE 250-LINE CAP, AND THE SEAM IS THE PLUGIN.\n * PVE validates a section against ONE plugin's option set, so these fields mean nothing to a\n * graphite or influxdb section and theirs mean nothing here. This file answers \"what is an OTLP\n * metric server\"; metric-server-form.ts still builds every form, so the clear-list keeps coming\n * from the one table that also builds the body.\n *\n * ⛔ PVE'S OTLP EXPORTER SPEAKS JSON AND NOTHING ELSE. `PVE::Status::OpenTelemetry::send` sets\n * `Content-Type: application/json` (pve-manager PVE/Status/OpenTelemetry.pm:643) and gzips by\n * default; there is no protobuf option. vector's opentelemetry source and VictoriaMetrics both\n * take protobuf only — measured 2026-09-14 — so a server pointed straight at either fails every\n * push. That is why C1's declaration points at each node's own vector bridge\n * (the estate's per-node vector config) rather than at the estate's intake.\n *\n * ⛔ `otel-headers` IS `never`, FOR THE REASON `token` IS. It is where an OTLP bearer token goes —\n * base64 of a JSON object of arbitrary HTTP headers — and Alchemy persists attributes UNENCRYPTED.\n * It is also absent from `optional` in metric-server-form.ts, so an undeclared one is never\n * cleared off a working target on the next plan.\n *\n * ⚠️ `otel-resource-attributes` IS NOT MANAGED AT ALL: not a prop, not read, not compared, not\n * cleared. It is base64 of a JSON object whose key order nothing canonicalises, so comparing it\n * means decoding both sides — work with no consumer yet, since nothing sets it and PVE already\n * stamps `service.name`, `proxmox.cluster` and `proxmox.node` on every request\n * (`_build_otlp_metrics`, lines 207-228). A hand-set one therefore survives every plan and never\n * shows as drift. The day one matters, it goes into `optional` and here together.\n */\nimport { UNSET } from './metric-server-form.ts';\nimport { bool, int, text } from './values.ts';\n\nexport interface MetricServerOtelProps {\n /**\n * ⚠️ PVE'S DEFAULT IS `https`. `http` is for a receiver on the node itself, where the plaintext\n * never leaves the host; anything further away belongs on `https`.\n */\n 'otel-protocol'?: 'http' | 'https';\n /** Unset is PVE's `/v1/metrics`. */\n 'otel-path'?: string;\n /** Unset is PVE's `gzip`, sent as `Content-Encoding: gzip`. */\n 'otel-compression'?: 'none' | 'gzip';\n /**\n * Per-request HTTP timeout, 1-10 seconds; unset is PVE's 5.\n * ⚠️ pvestatd WAITS THIS LONG, PER REQUEST, AGAINST A RECEIVER THAT HANGS — the send is inline in\n * its update loop (`send`, line 635) — so this is also how long a broken receiver can stretch\n * one status cycle.\n */\n 'otel-timeout'?: number;\n /** Minimum 1024; unset is PVE's 10000000. pvestatd splits one flush into requests under it. */\n 'otel-max-body-size'?: number;\n /** ⚠️ An unset `otel-verify-ssl` means VERIFY — PVE's default, and the safe one. */\n 'otel-verify-ssl'?: boolean;\n /** ⛔ `never` ON PURPOSE — see the ⛔ in the header. The compile error is the feature. */\n 'otel-headers'?: never;\n}\n\n/**\n * ⚠️ THE SAME RULES AS THE REST OF `MetricServerAttributes`. The strings report `''` when the\n * section carries none — PVE's default is then what the target uses — the numbers report `UNSET`\n * for the same reason, and `otel-verify-ssl` reports its default directly, because \"absent\"\n * there means the target verifies.\n */\nexport interface MetricServerOtelAttributes {\n 'otel-compression': string;\n 'otel-max-body-size': number;\n 'otel-path': string;\n 'otel-protocol': string;\n 'otel-timeout': number;\n 'otel-verify-ssl': boolean;\n}\n\n/** The `otel-*` half of a live section. Read for every type; compared only for this one. */\nexport const otelAttributes = (live: Record<string, unknown>): MetricServerOtelAttributes => ({\n 'otel-compression': text(live['otel-compression']),\n 'otel-max-body-size': int(live['otel-max-body-size'], UNSET),\n 'otel-path': text(live['otel-path']),\n 'otel-protocol': text(live['otel-protocol']),\n 'otel-timeout': int(live['otel-timeout'], UNSET),\n 'otel-verify-ssl': bool(live['otel-verify-ssl'], true),\n});\n\n/**\n * True when every managed `otel-*` field already says what the declaration says.\n *\n * ⛔ EVERY FIELD `optional` SENDS OR CLEARS IS COMPARED HERE, AND NOTHING ELSE IS. A field sent but\n * not compared is drift a plan can never show; a field compared but not sent is an update the\n * PUT it triggers can never satisfy, reported forever.\n */\nexport const otelMatches = (\n attributes: MetricServerOtelAttributes,\n props: MetricServerOtelProps,\n): boolean =>\n attributes['otel-compression'] === (props['otel-compression'] ?? '') &&\n attributes['otel-max-body-size'] === (props['otel-max-body-size'] ?? UNSET) &&\n attributes['otel-path'] === (props['otel-path'] ?? '') &&\n attributes['otel-protocol'] === (props['otel-protocol'] ?? '') &&\n attributes['otel-timeout'] === (props['otel-timeout'] ?? UNSET) &&\n attributes['otel-verify-ssl'] === (props['otel-verify-ssl'] !== false);\n",
|
|
80
|
-
"/**\n * `Proxmox.NetworkApply` — the call that makes a declared interfaces file real, ON ONE NODE.\n *\n * ⛔ WITHOUT IT EVERY NETWORK DECLARATION IS A GREEN PLAN THAT CHANGES NO NETWORK; WITH IT A GREEN\n * PLAN CAN TAKE A NODE OFF THE NETWORK. Writes under `nodes/{node}/network/{iface}` edit\n * `/etc/network/interfaces.new` and touch no interface. `PUT /nodes/{node}/network` is the apply.\n * MEASURED in the cluster's own source on node-b, 2026-09-13 — `PVE/API2/Network.pm`:\n * rename($new_config_file, $current_config_file) if -e $new_config_file;\n * PVE::Tools::run_command(['ifreload', '-a'], errfunc => $err);\n * return $rpcenv->fork_worker('srvreload', 'networking', $authuser, $worker);\n *\n * ⛔ THIS IS THE MOST DANGEROUS RESOURCE IN THE PACKAGE, AND ON C1 THE DANGER IS NOT ABSTRACT.\n * Ceph runs over `vmbr1.42` on node-b, node-c AND node-d (MEASURED 2026-09-13: four pools, size 3 /\n * min_size 2, mon+mgr+mds on all three). `ifreload -a` takes that node's OSDs, mons and MDS off\n * the cluster network for the length of the reload; two nodes at once puts every pool below\n * min_size and blocks IO for every guest with an RBD disk. The management address the API is\n * reached on, `vmbr0.41`, is reloaded by the same call.\n *\n * ⛔ AND UNLIKE `SdnApply` IT IS PER NODE, SO A HALF-RECONFIGURED CLUSTER IS THE DEFAULT FAILURE\n * MODE, NOT AN EDGE CASE. `PUT /cluster/sdn` publishes the whole cluster in one call; this\n * publishes exactly one node, so a stack holding three of these can apply node-b, fail, and leave node-c\n * and node-d on the old layout with Ceph spanning all three. Four things here exist only for that:\n * 1. `after` SERIALISES THEM — chain node-c after node-b and node-d after node-c, so at most one node is ever\n * mid-reload. Three declared in parallel is the outage, and nothing in Alchemy stops you.\n * 2. `reconcile` REFUSES TO START on a cluster that is already degraded.\n * 3. `reconcile` RE-CHECKS quorum and every member's `online` flag AFTER the reload and dies if\n * the cluster came back worse — which stops the chain before it reaches the second node.\n * 4. NOTHING IS EVER APPLIED WITH NOTHING STAGED. See the first branch of `apply`.\n *\n * ⚠️ IF THE MEMBER SERVING THE POLL IS THE NODE BEING RELOADED, the reload can drop the connection\n * carrying its own status poll — see network-apply-read.ts. Every endpoint is `proxyto =>\n * 'node'`, so any cluster member can serve any other node's paths; failover in client.ts picks\n * whichever member is up, not necessarily one you are not applying.\n *\n * ⚠️ `DELETE /nodes/{node}/network` IS THE REVERT, AND IT IS DELIBERATELY NOT WIRED TO `delete`.\n * MEASURED: the whole body of `revert_network_changes` is `unlink \"/etc/network/interfaces.new\"`.\n * It discards STAGED edits and cannot undo an APPLIED one, so pointing `delete` at it would throw\n * away whatever happened to be staged the moment somebody removed a line from a stack file — the\n * worst possible time to do it. Revert by hand, deliberately: `pvesh delete /nodes/<node>/network`.\n *\n * ⚠️ PRIVILEGES, so widening stays a deliberate act: the `read` role needs nothing for the pending\n * read (`GET /nodes/{node}/network` is `\"user\": \"all\"`) and `Sys.Audit` on `/` for the health\n * gate; the `provision` role needs `Sys.Modify` on `/nodes/{node}` for the apply, and owns the\n * task it starts so it can poll it without `Sys.Audit`. ⛔ `Sys.Modify` ON A NODE IS NOT A SMALL\n * GRANT — it also carries that node's DNS, hosts file, time and service configuration. Granting\n * it cluster-wide to run this resource widens the provisioning role well beyond networking.\n */\nimport { Resource } from 'alchemy';\nimport { isResolved } from 'alchemy/Diff';\nimport type { Input } from 'alchemy/Input';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport { guardNetworkApply } from './apply-endpoints.ts';\nimport { pveWith } from './client.ts';\nimport { mint } from './mint.ts';\nimport { awaitTask, degradedReason, pendingCount } from './network-apply-read.ts';\nimport type { PveRequirements } from './resource.ts';\nimport type { WithTarget } from './resource.ts';\n\nexport interface NetworkApplyProps extends WithTarget {\n /**\n * The node whose staged interfaces file this applies — `node-b`.\n *\n * ⚠️ ONE APPLY PER NODE, AND NEVER TWO FOR THE SAME NODE. Two would each publish the other's\n * staged half, and both would run `ifreload` on a file the other had not finished writing.\n */\n node: string;\n\n /**\n * The staged interface changes this apply publishes, and the apply that must go before it.\n *\n * ⚠️ IT IS NEVER READ, AND IT IS NOT DECORATION — the same contract as `SdnApply.after`. Alchemy\n * orders resources by DATA FLOW, so consuming an attribute is the only way to say \"after\".\n * Pass the interfaces this node declares AND the previous node's apply:\n * `after: [vmbr1.iface, n2Apply.pending]`. Leave the previous apply out and the three nodes\n * reload in parallel, which is the one thing this resource is built to prevent.\n */\n after?: readonly unknown[];\n}\n\nexport interface NetworkApplyAttributes {\n /** The node this applies. Identity, echoed so a plan line says which member it will reload. */\n node: string;\n\n /**\n * Changed lines still staged on this node.\n *\n * ⚠️ LINES OF A UNIFIED DIFF, NOT INTERFACES, and the number is reported rather than trusted —\n * `pendingLines` explains why it can undercount by one and never to zero. Zero is the only\n * settled value: anything above it means the running config and the staged config disagree,\n * whether this stack staged it or somebody edited the node in the UI and walked away.\n *\n * ⛔ THE DIFF ITSELF IS NEVER AN ATTRIBUTE. Alchemy writes attributes to its state store\n * UNENCRYPTED, and `/etc/network/interfaces` can carry a `wpa-psk` or a `pre-up` command. Only\n * the count leaves `network-apply-read.ts`.\n *\n * ⚠️ AND NOTHING OUT OF THE INTERFACE ROWS IS AN ATTRIBUTE EITHER, WHICH IS WHAT KEEPS THIS\n * FAMILY NOOP. `GET /nodes/{node}/network` returns eighteen fields it will not accept on write\n * — MEASURED by differencing the schema's GET return properties against its POST parameters:\n * `active`, `exists`, `families`, `method`, `method6`, `options`, `priority`, `link-type` and\n * ten more; `altnames` is returned and is not even in the schema. `priority` is the worst of\n * them: PVE ASSIGNS it from the order of the interfaces file, so the same logical layout\n * carries different numbers on different nodes (MEASURED: node-d's differ from node-b/node-c's by one).\n * Every one of those is a forever-diff waiting for whoever writes `Proxmox.NetworkInterface`.\n * This resource compares a single integer against zero and never looks at a row at all.\n */\n pending: number;\n}\n\nexport interface ProxmoxNetworkApply extends Resource<\n 'Proxmox.NetworkApply',\n NetworkApplyProps,\n NetworkApplyAttributes,\n never,\n PveRequirements\n> {}\n\nexport const ProxmoxNetworkApply = Resource<ProxmoxNetworkApply>('Proxmox.NetworkApply');\n\nconst read = (props: NetworkApplyProps) =>\n pendingCount(props.target, props.node).pipe(\n Effect.map((pending) => ({ node: props.node, pending })),\n );\n\n/**\n * ⚠️ THE DIFF IS ABOUT THE NODE, NOT ABOUT THE PROPS — the same reasoning as `SdnApply`. This\n * resource has no settable field (`node` is identity, `after` is an ordering edge), so comparing\n * props to props would report `noop` forever and the apply would run exactly once, ever. What\n * decides it is whether the node is carrying a staged change right now.\n *\n * ★ THIS IS ALSO WHY DECLARING THE LIVE CLUSTER PLANS AS `noop`. VERIFIED 2026-09-13:\n * `/etc/network/interfaces.new` is absent on node-b, node-c and node-d, so `changes` is absent from all three\n * answers, so `pending` is 0 on all three and every one of them plans `noop`.\n */\nconst diff = (news: Input<NetworkApplyProps>) =>\n Effect.gen(function* () {\n if (!isResolved(news)) return undefined;\n const { pending } = yield* read(news);\n return pending === 0 ? ({ action: 'noop' } as const) : ({ action: 'update' } as const);\n });\n\n/** Stop the deploy, loudly, with the node in the message. ⚠️ A die here is the SAFE outcome. */\nconst refuse = (node: string, why: string) =>\n Effect.die(new Error(`Proxmox.NetworkApply ${node}: ${why}`));\n\nconst apply = (props: NetworkApplyProps) =>\n Effect.gen(function* () {\n const node = props.node;\n const staged = yield* pendingCount(props.target, node);\n /**\n * ⛔ NOTHING STAGED MEANS NOTHING TO APPLY, AND THIS BRANCH IS A SAFETY PROPERTY RATHER THAN AN\n * OPTIMISATION. `reconcile` also runs on CREATE — the first time this resource appears in a\n * stack, before `diff` has ever been consulted — and the PVE worker runs `ifreload -a`\n * UNCONDITIONALLY, staged file or not. Without this branch, adding `Proxmox.NetworkApply` to\n * a stack describing the cluster as it already is would reload networking on every node it\n * names, for nothing. Adoption must cost nothing; that is true here in the strongest sense.\n */\n if (staged === 0) return { node, pending: 0 };\n\n const before = yield* degradedReason(props.target);\n if (before !== undefined) {\n return yield* refuse(\n node,\n `refusing to reload networking on a cluster that is already degraded (${before}). ` +\n 'Ceph spans these nodes -- fix the cluster first, then re-run the deploy.',\n );\n }\n\n /**\n * ⚠️ ONE LEASE FOR BOTH CALLS, VIA `pveWith` RATHER THAN `pve`. Each mint returns a NEW token\n * id, and the task-status endpoint only skips its `Sys.Audit` check for the task's OWNER —\n * so polling with a fresh mint is a different identity and needs a privilege this role does\n * not have. The `provision` lease is 300s and non-renewable, which is far longer than a\n * reload and is the reason no renew path is reached for.\n */\n // ⛔ BEFORE THE MINT AND THE RELOAD. The apply takes no body, so this is the lookup rather\n // than a value check: a vendor that moved this endpoint fails here, not mid-ifreload.\n yield* guardNetworkApply;\n const credential = yield* mint(props.target, 'provision');\n const upid = yield* pveWith<string>(props.target, credential, 'PUT', `nodes/${node}/network`);\n if (upid === undefined) {\n return yield* refuse(\n node,\n 'the apply returned no UPID. PVE wraps every answer in {\"data\":...} and can report success ' +\n 'on a call that did nothing -- the reload cannot be confirmed, so it is not claimed.',\n );\n }\n\n /**\n * ⛔ POLLING `pending` INSTEAD OF THE TASK WOULD REPORT SUCCESS BEFORE THE NETWORK WAS TOUCHED.\n * MEASURED in the worker above: the `rename` happens FIRST and `ifreload -a` second, so the\n * staged file — and therefore `changes`, and therefore `pending` — disappears while the\n * reload has not yet started. A provider that watched the count would call a reload that had\n * not run, and a reload that then FAILED, a success. The task's exitstatus is the only\n * honest answer.\n */\n const exitstatus = yield* awaitTask(props.target, credential, node, upid);\n if (exitstatus !== 'OK') {\n return yield* refuse(\n node,\n `the reload ended \"${exitstatus}\" (${upid}). Read it from ANOTHER node -- ` +\n `\\`pvesh get /nodes/${node}/tasks/${upid}/log\\` -- and do not apply the next node until ` +\n 'this one is understood.',\n );\n }\n\n const after = yield* degradedReason(props.target);\n if (after !== undefined) {\n return yield* refuse(\n node,\n `the reload reported OK but the cluster is now degraded (${after}). The next ` +\n 'node has NOT been applied. Restore this one before continuing -- Ceph runs over these ' +\n 'links and a second reload now would take pools below min_size.',\n );\n }\n\n const left = yield* pendingCount(props.target, node);\n if (left !== 0) {\n return yield* refuse(\n node,\n `the reload reported OK but ${String(left)} staged line(s) remain. The running config does ` +\n 'not match the declared one, and saying otherwise is the lie this resource exists to stop.',\n );\n }\n return { node, pending: left };\n });\n\n/**\n * ⛔ HAND-WRITTEN RATHER THAN `pveHandlers`, FOR THE SAME REASON `sdn-apply.ts` IS. The factory's\n * spec is create/update/delete over ONE object at ONE path, and an apply is not an object: there\n * is nothing to POST, nothing to DELETE, and `matches` would compare a declaration to itself and\n * answer `noop` forever, so the apply would run exactly once in the life of the stack. `list` is\n * empty for the reason it is everywhere in this package — adoption stays an explicit act.\n *\n * ⛔ `delete` APPLIES NOTHING AND UNDOES NOTHING, AND THAT IS CORRECT. There is no un-apply: the\n * config is already live on the node, and the way to remove an interface is to delete it and\n * apply AGAIN. See the ⚠️ about `DELETE /nodes/{node}/network` at the top of this file.\n */\nconst handlers = {\n delete: () => Effect.void,\n diff: ({ news }: { news: Input<NetworkApplyProps> }) => diff(news),\n list: () => Effect.succeed([]),\n read: ({ olds }: { olds: NetworkApplyProps }) => read(olds),\n reconcile: ({ news }: { news: NetworkApplyProps }) => apply(news),\n};\n\nexport const ProxmoxNetworkApplyProvider = () =>\n Provider.effect(ProxmoxNetworkApply, Effect.succeed(ProxmoxNetworkApply.Provider.of(handlers)));\n",
|
|
80
|
+
"/**\n * `Proxmox.NetworkApply` — the call that makes a declared interfaces file real, ON ONE NODE.\n *\n * ⛔ WITHOUT IT EVERY NETWORK DECLARATION IS A GREEN PLAN THAT CHANGES NO NETWORK; WITH IT A GREEN\n * PLAN CAN TAKE A NODE OFF THE NETWORK. Writes under `nodes/{node}/network/{iface}` edit\n * `/etc/network/interfaces.new` and touch no interface. `PUT /nodes/{node}/network` is the apply.\n * MEASURED in the cluster's own source on node-b, 2026-09-13 — `PVE/API2/Network.pm`:\n * rename($new_config_file, $current_config_file) if -e $new_config_file;\n * PVE::Tools::run_command(['ifreload', '-a'], errfunc => $err);\n * return $rpcenv->fork_worker('srvreload', 'networking', $authuser, $worker);\n *\n * ⛔ THIS IS THE MOST DANGEROUS RESOURCE IN THE PACKAGE, AND ON C1 THE DANGER IS NOT ABSTRACT.\n * Ceph runs over `vmbr1.42` on node-b, node-c AND node-d (MEASURED 2026-09-13: four pools, size 3 /\n * min_size 2, mon+mgr+mds on all three). `ifreload -a` takes that node's OSDs, mons and MDS off\n * the cluster network for the length of the reload; two nodes at once puts every pool below\n * min_size and blocks IO for every guest with an RBD disk. The management address the API is\n * reached on, `vmbr0.41`, is reloaded by the same call.\n *\n * ⛔ AND UNLIKE `SdnApply` IT IS PER NODE, SO A HALF-RECONFIGURED CLUSTER IS THE DEFAULT FAILURE\n * MODE, NOT AN EDGE CASE. `PUT /cluster/sdn` publishes the whole cluster in one call; this\n * publishes exactly one node, so a stack holding three of these can apply node-b, fail, and leave node-c\n * and node-d on the old layout with Ceph spanning all three. Four things here exist only for that:\n * 1. `after` SERIALISES THEM — chain node-c after node-b and node-d after node-c, so at most one node is ever\n * mid-reload. Three declared in parallel is the outage, and nothing in Alchemy stops you.\n * 2. `reconcile` REFUSES TO START on a cluster that is already degraded.\n * 3. `reconcile` RE-CHECKS quorum and every member's `online` flag AFTER the reload and dies if\n * the cluster came back worse — which stops the chain before it reaches the second node.\n * 4. NOTHING IS EVER APPLIED WITH NOTHING STAGED. See the first branch of `apply`.\n *\n * ⚠️ IF THE MEMBER SERVING THE POLL IS THE NODE BEING RELOADED, the reload can drop the connection\n * carrying its own status poll — see network-apply-read.ts. Every endpoint is `proxyto =>\n * 'node'`, so any cluster member can serve any other node's paths; failover in client.ts picks\n * whichever member is up, not necessarily one you are not applying.\n *\n * ⚠️ `DELETE /nodes/{node}/network` IS THE REVERT, AND IT IS DELIBERATELY NOT WIRED TO `delete`.\n * MEASURED: the whole body of `revert_network_changes` is `unlink \"/etc/network/interfaces.new\"`.\n * It discards STAGED edits and cannot undo an APPLIED one, so pointing `delete` at it would throw\n * away whatever happened to be staged the moment somebody removed a line from a stack file — the\n * worst possible time to do it. Revert by hand, deliberately: `pvesh delete /nodes/<node>/network`.\n *\n * ⚠️ PRIVILEGES, so widening stays a deliberate act: the `read` role needs nothing for the pending\n * read (`GET /nodes/{node}/network` is `\"user\": \"all\"`) and `Sys.Audit` on `/` for the health\n * gate; the `provision` role needs `Sys.Modify` on `/nodes/{node}` for the apply, and owns the\n * task it starts so it can poll it without `Sys.Audit`. ⛔ `Sys.Modify` ON A NODE IS NOT A SMALL\n * GRANT — it also carries that node's DNS, hosts file, time and service configuration. Granting\n * it cluster-wide to run this resource widens the provisioning role well beyond networking.\n *\n * ⛔ STAYS ON `client.ts` (2026-09-24) — network-apply-read.ts's header has the two MEASURED reasons.\n */\nimport { Resource } from 'alchemy';\nimport { isResolved } from 'alchemy/Diff';\nimport type { Input } from 'alchemy/Input';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport { guardNetworkApply } from './apply-endpoints.ts';\nimport { pveWith } from './client.ts';\nimport { mint } from './mint.ts';\nimport { awaitTask, degradedReason, pendingCount } from './network-apply-read.ts';\nimport type { PveRequirements } from './resource.ts';\nimport type { WithTarget } from './resource.ts';\n\nexport interface NetworkApplyProps extends WithTarget {\n /**\n * The node whose staged interfaces file this applies — `node-b`.\n *\n * ⚠️ ONE APPLY PER NODE, AND NEVER TWO FOR THE SAME NODE. Two would each publish the other's\n * staged half, and both would run `ifreload` on a file the other had not finished writing.\n */\n node: string;\n\n /**\n * The staged interface changes this apply publishes, and the apply that must go before it.\n *\n * ⚠️ IT IS NEVER READ, AND IT IS NOT DECORATION — the same contract as `SdnApply.after`. Alchemy\n * orders resources by DATA FLOW, so consuming an attribute is the only way to say \"after\".\n * Pass the interfaces this node declares AND the previous node's apply:\n * `after: [vmbr1.iface, n2Apply.pending]`. Leave the previous apply out and the three nodes\n * reload in parallel, which is the one thing this resource is built to prevent.\n */\n after?: readonly unknown[];\n}\n\nexport interface NetworkApplyAttributes {\n /** The node this applies. Identity, echoed so a plan line says which member it will reload. */\n node: string;\n\n /**\n * Changed lines still staged on this node.\n *\n * ⚠️ LINES OF A UNIFIED DIFF, NOT INTERFACES, and the number is reported rather than trusted —\n * `pendingLines` explains why it can undercount by one and never to zero. Zero is the only\n * settled value: anything above it means the running config and the staged config disagree,\n * whether this stack staged it or somebody edited the node in the UI and walked away.\n *\n * ⛔ THE DIFF ITSELF IS NEVER AN ATTRIBUTE. Alchemy writes attributes to its state store\n * UNENCRYPTED, and `/etc/network/interfaces` can carry a `wpa-psk` or a `pre-up` command. Only\n * the count leaves `network-apply-read.ts`.\n *\n * ⚠️ AND NOTHING OUT OF THE INTERFACE ROWS IS AN ATTRIBUTE EITHER, WHICH IS WHAT KEEPS THIS\n * FAMILY NOOP. `GET /nodes/{node}/network` returns eighteen fields it will not accept on write\n * — MEASURED by differencing the schema's GET return properties against its POST parameters:\n * `active`, `exists`, `families`, `method`, `method6`, `options`, `priority`, `link-type` and\n * ten more; `altnames` is returned and is not even in the schema. `priority` is the worst of\n * them: PVE ASSIGNS it from the order of the interfaces file, so the same logical layout\n * carries different numbers on different nodes (MEASURED: node-d's differ from node-b/node-c's by one).\n * Every one of those is a forever-diff waiting for whoever writes `Proxmox.NetworkInterface`.\n * This resource compares a single integer against zero and never looks at a row at all.\n */\n pending: number;\n}\n\nexport interface ProxmoxNetworkApply extends Resource<\n 'Proxmox.NetworkApply',\n NetworkApplyProps,\n NetworkApplyAttributes,\n never,\n PveRequirements\n> {}\n\nexport const ProxmoxNetworkApply = Resource<ProxmoxNetworkApply>('Proxmox.NetworkApply');\n\nconst read = (props: NetworkApplyProps) =>\n pendingCount(props.target, props.node).pipe(\n Effect.map((pending) => ({ node: props.node, pending })),\n );\n\n/**\n * ⚠️ THE DIFF IS ABOUT THE NODE, NOT ABOUT THE PROPS — the same reasoning as `SdnApply`. This\n * resource has no settable field (`node` is identity, `after` is an ordering edge), so comparing\n * props to props would report `noop` forever and the apply would run exactly once, ever. What\n * decides it is whether the node is carrying a staged change right now.\n *\n * ★ THIS IS ALSO WHY DECLARING THE LIVE CLUSTER PLANS AS `noop`. VERIFIED 2026-09-13:\n * `/etc/network/interfaces.new` is absent on node-b, node-c and node-d, so `changes` is absent from all three\n * answers, so `pending` is 0 on all three and every one of them plans `noop`.\n */\nconst diff = (news: Input<NetworkApplyProps>) =>\n Effect.gen(function* () {\n if (!isResolved(news)) return undefined;\n const { pending } = yield* read(news);\n return pending === 0 ? ({ action: 'noop' } as const) : ({ action: 'update' } as const);\n });\n\n/** Stop the deploy, loudly, with the node in the message. ⚠️ A die here is the SAFE outcome. */\nconst refuse = (node: string, why: string) =>\n Effect.die(new Error(`Proxmox.NetworkApply ${node}: ${why}`));\n\nconst apply = (props: NetworkApplyProps) =>\n Effect.gen(function* () {\n const node = props.node;\n const staged = yield* pendingCount(props.target, node);\n /**\n * ⛔ NOTHING STAGED MEANS NOTHING TO APPLY, AND THIS BRANCH IS A SAFETY PROPERTY RATHER THAN AN\n * OPTIMISATION. `reconcile` also runs on CREATE — the first time this resource appears in a\n * stack, before `diff` has ever been consulted — and the PVE worker runs `ifreload -a`\n * UNCONDITIONALLY, staged file or not. Without this branch, adding `Proxmox.NetworkApply` to\n * a stack describing the cluster as it already is would reload networking on every node it\n * names, for nothing. Adoption must cost nothing; that is true here in the strongest sense.\n */\n if (staged === 0) return { node, pending: 0 };\n\n const before = yield* degradedReason(props.target);\n if (before !== undefined) {\n return yield* refuse(\n node,\n `refusing to reload networking on a cluster that is already degraded (${before}). ` +\n 'Ceph spans these nodes -- fix the cluster first, then re-run the deploy.',\n );\n }\n\n /**\n * ⚠️ ONE LEASE FOR BOTH CALLS, VIA `pveWith` RATHER THAN `pve`. Each mint returns a NEW token\n * id, and the task-status endpoint only skips its `Sys.Audit` check for the task's OWNER —\n * so polling with a fresh mint is a different identity and needs a privilege this role does\n * not have. The `provision` lease is 300s and non-renewable, which is far longer than a\n * reload and is the reason no renew path is reached for.\n */\n // ⛔ BEFORE THE MINT AND THE RELOAD. The apply takes no body, so this is the lookup rather\n // than a value check: a vendor that moved this endpoint fails here, not mid-ifreload.\n yield* guardNetworkApply;\n const credential = yield* mint(props.target, 'provision');\n const upid = yield* pveWith<string>(props.target, credential, 'PUT', `nodes/${node}/network`);\n if (upid === undefined) {\n return yield* refuse(\n node,\n 'the apply returned no UPID. PVE wraps every answer in {\"data\":...} and can report success ' +\n 'on a call that did nothing -- the reload cannot be confirmed, so it is not claimed.',\n );\n }\n\n /**\n * ⛔ POLLING `pending` INSTEAD OF THE TASK WOULD REPORT SUCCESS BEFORE THE NETWORK WAS TOUCHED.\n * MEASURED in the worker above: the `rename` happens FIRST and `ifreload -a` second, so the\n * staged file — and therefore `changes`, and therefore `pending` — disappears while the\n * reload has not yet started. A provider that watched the count would call a reload that had\n * not run, and a reload that then FAILED, a success. The task's exitstatus is the only\n * honest answer.\n */\n const exitstatus = yield* awaitTask(props.target, credential, node, upid);\n if (exitstatus !== 'OK') {\n return yield* refuse(\n node,\n `the reload ended \"${exitstatus}\" (${upid}). Read it from ANOTHER node -- ` +\n `\\`pvesh get /nodes/${node}/tasks/${upid}/log\\` -- and do not apply the next node until ` +\n 'this one is understood.',\n );\n }\n\n const after = yield* degradedReason(props.target);\n if (after !== undefined) {\n return yield* refuse(\n node,\n `the reload reported OK but the cluster is now degraded (${after}). The next ` +\n 'node has NOT been applied. Restore this one before continuing -- Ceph runs over these ' +\n 'links and a second reload now would take pools below min_size.',\n );\n }\n\n const left = yield* pendingCount(props.target, node);\n if (left !== 0) {\n return yield* refuse(\n node,\n `the reload reported OK but ${String(left)} staged line(s) remain. The running config does ` +\n 'not match the declared one, and saying otherwise is the lie this resource exists to stop.',\n );\n }\n return { node, pending: left };\n });\n\n/**\n * ⛔ HAND-WRITTEN RATHER THAN `pveHandlers`, FOR THE SAME REASON `sdn-apply.ts` IS. The factory's\n * spec is create/update/delete over ONE object at ONE path, and an apply is not an object: there\n * is nothing to POST, nothing to DELETE, and `matches` would compare a declaration to itself and\n * answer `noop` forever, so the apply would run exactly once in the life of the stack. `list` is\n * empty for the reason it is everywhere in this package — adoption stays an explicit act.\n *\n * ⛔ `delete` APPLIES NOTHING AND UNDOES NOTHING, AND THAT IS CORRECT. There is no un-apply: the\n * config is already live on the node, and the way to remove an interface is to delete it and\n * apply AGAIN. See the ⚠️ about `DELETE /nodes/{node}/network` at the top of this file.\n */\nconst handlers = {\n delete: () => Effect.void,\n diff: ({ news }: { news: Input<NetworkApplyProps> }) => diff(news),\n list: () => Effect.succeed([]),\n read: ({ olds }: { olds: NetworkApplyProps }) => read(olds),\n reconcile: ({ news }: { news: NetworkApplyProps }) => apply(news),\n};\n\nexport const ProxmoxNetworkApplyProvider = () =>\n Provider.effect(ProxmoxNetworkApply, Effect.succeed(ProxmoxNetworkApply.Provider.of(handlers)));\n",
|
|
81
81
|
"/**\n * The two applies, and the vendor endpoints they publish through.\n *\n * ★ AN ACTION ENDPOINT IS STILL WIRED, EVEN THOUGH ITS TABLE IS EMPTY, AND THE REASON IS THE\n * GENERATOR RATHER THAN THE VALIDATOR. `PUT /nodes/{node}/network` and `PUT /cluster/sdn` take\n * no body at all — there is nothing for a length or a range to be wrong about — but\n * `codegen/constraints.ts` RESOLVES every key named in this package against the vendor's own\n * schema and STOPS when one is absent. So the key buys the thing these two families most need:\n * a PVE that moves, renames or withdraws the apply fails `bun run check` instead of failing an\n * `ifreload -a` on three nodes at once.\n * ⚠️ AND THE LOOKUP IS NOT FREE EITHER. `constraintsFor` throws when a key has no table, so a\n * checkout whose generated tables were never refreshed refuses the apply with the command to\n * run rather than quietly doing nothing — the same defect `constraint-guard.ts` names.\n *\n * ⛔ NEITHER OF THESE IS A CREATE, AND NEITHER FAMILY HAS A `PveSpec`. Both write their own five\n * handlers (an apply is not an object — see the ⛔ in each file), so they reach the shared check\n * through `guardForm` by name, exactly as `pbs-datastore-endpoint.ts` does.\n */\nimport type * as Effect from 'effect/Effect';\nimport { guardForm } from './constraint-guard.ts';\nimport type { EndpointKey } from './constraints.ts';\n\n/** ⚠️ `{node}` is a path segment, so this really does take no form keys at all. */\nexport const NETWORK_APPLY_ENDPOINT: EndpointKey = 'pve:PUT /nodes/{node}/network';\n\n/**\n * ⛔ CLUSTER-WIDE. One PUT publishes every staged zone, vnet and subnet on every node; there is no\n * per-object apply and no pre-apply veto. `sdn-apply.ts` is the whole argument.\n */\nexport const SDN_APPLY_ENDPOINT: EndpointKey = 'pve:PUT /cluster/sdn';\n\nexport const guardNetworkApply: Effect.Effect<void> = guardForm(NETWORK_APPLY_ENDPOINT, {}, true);\n\nexport const guardSdnApply: Effect.Effect<void> = guardForm(SDN_APPLY_ENDPOINT, {}, true);\n",
|
|
82
|
-
"/**\n * `Proxmox.NodeNetwork` — one stanza of a node's `/etc/network/interfaces`, declared.\n *\n * ⛔ DECLARING THIS RESOURCE IS SAFE. APPLYING IT IS A SEPARATE, DELIBERATE ACT, AND IT IS NOT\n * PERFORMED HERE. Every write under `/nodes/{node}/network/{iface}` lands in\n * `/etc/network/interfaces.new` and changes no running interface. MEASURED, from PVE::INotify:\n * `$shadowfiles = { '/etc/network/interfaces' => '/etc/network/interfaces.new' }`, and\n * `read_file` reads the SHADOW when it exists. The apply is `PUT /nodes/{node}/network`, which\n * renames the shadow over the real file and runs `ifreload -a`; the revert is\n * `DELETE /nodes/{node}/network`, which simply unlinks the shadow. A sibling resource models\n * that apply — this one never calls it, exactly as `Proxmox.SdnZone` never calls\n * `Proxmox.SdnApply`.\n *\n * ⛔ CEPH ON C1 RIDES TWO NETWORKS AND THIS API ONLY SEES ONE OF THEM. Measured from\n * `/etc/pve/ceph.conf` on 2026-09-13:\n *\n * public_network = 198.51.100.0/24 -> vmbr1.42, which this resource DOES see\n * cluster_network = 203.0.113.0/24 -> every OSD's cluster_addr: .102 / .103 / .104\n *\n * The cluster network — OSD REPLICATION, the traffic that rebuilds a lost replica — lives on\n * `203.0.113.10X/32` addresses carried by `tb0`, `tb1` and `dummy_c1`: the Thunderbolt mesh.\n *\n * ⛔ AND THOSE ADDRESSES ARE INVISIBLE HERE, WHICH IS THE TRAP. They are declared in\n * `/etc/network/interfaces.d/sdn`, and PVE's network API does not parse that directory.\n * MEASURED: `GET /nodes/node-b/network/tb0` answers `{\"method\":\"manual\",\"type\":\"eth\",…}` with NO\n * address, while `ip -br -4 addr` shows `tb0 UP 203.0.113.102/32`. So this resource reports\n * tb0 and tb1 as address-less manual ports and will plan `noop` over them — implicitly\n * asserting they carry no address, which is FALSE.\n *\n * The consequence, stated plainly: declaring tb0/tb1 from what this API reports and then\n * DESTROYING or applying over them takes out OSD replication on a cluster whose pools are\n * size 3 / min_size 2. They read as the most boring interfaces on the node and are the two most\n * dangerous. Leave them undeclared; if they must be managed, manage the file that actually\n * owns them, not this resource.\n *\n * ⚠️ Two ways this file limits the damage on the interfaces it CAN see: `cidr` is compared\n * unconditionally (the ⛔ on `matches`), and a live interface whose `type` disagrees with the\n * declaration is reported ABSENT rather than retyped (the ⛔ in `attributes`).\n *\n * ★ THE REASON IT EXISTS IS THAT THE STAGED READ CANNOT TELL YOU THE NETWORK IS RIGHT — it can\n * only tell you the FILE is. Once anything is staged, `GET /nodes/{node}/network/{iface}`\n * answers from `interfaces.new`, so `matches` compares a declaration against a pending file and\n * reports `noop` over a node whose running config has not moved. The apply resource is what\n * closes that gap; this resource's `noop` means \"the file says what you said\", no more.\n *\n * ⚠️ PRIVILEGES ARE COARSER HERE THAN ANYWHERE ELSE IN THE PACKAGE: reads want `Sys.Audit` on\n * `/nodes/{node}`, every write `Sys.Modify` on it — and there is no `/nodes/{node}/network` ACL\n * object to scope to, so that also buys the node's services, certificates, DNS and time.\n * Collected with every other family in docs/privileges.md.\n *\n * ★ A RECONCILE OVER A MATCHING INTERFACE IS A NO-WRITE, AND AN EARLIER DRAFT OF THIS COMMENT\n * SAID THE OPPOSITE. `pveOperations.reconcile` gates on `matches` BEFORE the PUT\n * (`resource.ts`: `else if (spec.updateForm !== undefined && !spec.matches(live, news))`), and\n * the ⛔ above that line names THIS family as the reason the guard was added — adopting an\n * interface a node already has would otherwise leave it holding a pending network change.\n *\n * ⚠️ WHAT IS STILL TRUE: when `matches` is false the PUT rewrites the whole stanza, and that can\n * ADD lines the file did not have — a `vlan-raw-device vmbr1` under `vmbr1.42`, where PVE had\n * been deriving it from the name. Harmless in content, and it costs nothing until somebody\n * applies; one more reason the apply is a separate resource.\n *\n * ⚠️ `list` IS EMPTY, AND HERE THAT MATTERS MORE THAN ANYWHERE ELSE IN THIS PACKAGE. The index\n * returns every interface the node has, `vmbr0`, `bond0` and the Ceph vlan included. Adopting\n * them would put Alchemy one `destroy` away from staging the removal of a node's uplink — and\n * `delete_network` has NO in-use check at all: MEASURED, it deletes the hash entry and writes\n * the file. Adoption stays explicit.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport {\n createBody,\n readAttributes,\n same,\n sameComment,\n sameList,\n updateBody,\n} from './node-network-form.ts';\nimport { type PveRequirements, type WithTarget, pveHandlers } from './resource.ts';\n\n/**\n * PVE's interface types. `unknown` is what a NIC it does not manage reports — node-b and node-c both\n * report `wlan0` that way, and node-d has no such interface at all.\n *\n * ⚠️ THAT ASYMMETRY IS A TRAP FOR A DECLARATION SHARED ACROSS NODES. On node-d the read answers 404,\n * which this provider cannot tell from \"deleted\", so reconcile POSTs — writing a stanza for a\n * card that is not in the machine. Declare per node what each node actually has; a physical\n * interface is discovered, not decided.\n */\nexport type NodeNetworkType =\n | 'OVSBond'\n | 'OVSBridge'\n | 'OVSIntPort'\n | 'OVSPort'\n | 'alias'\n | 'bond'\n | 'bridge'\n | 'eth'\n | 'fabric'\n | 'unknown'\n | 'vlan'\n | 'vnet';\n\nexport interface NodeNetworkProps extends WithTarget {\n /** Which node's file this stanza lives in. Interfaces are per node, never cluster-wide. */\n node: string;\n /** `vmbr0`, `bond0`, `vmbr1.42`. 2-20 characters, PVE's `pve-iface` format. */\n iface: string;\n /** ⛔ REQUIRED ON EVERY WRITE, update included, never used to retype — see `readAttributes`. */\n type: NodeNetworkType;\n /**\n * `198.51.100.12/24`. ⛔ THE ONE FIELD WITH NO UNMANAGED MODE: leaving it out is an instruction\n * to make the interface `manual`, not an instruction to leave its address alone. The ⛔ on\n * `updateBody` in node-network-form.ts has the measurement and the consequence.\n */\n cidr?: string;\n /** ⚠️ PVE allows exactly ONE default gateway per node and refuses a second with \"Default\n * gateway already exists on interface '<other>'\". On C1 it is vmbr0.41's. */\n gateway?: string;\n /**\n * `auto <iface>` in the file. Absent on read means off, which is why `bool`'s fallback is used.\n * ⚠️ UNDECLARED IS UNMANAGED ON AN UPDATE AND OFF ON A CREATE — the same asymmetry storage.ts\n * has, and it bites harder here: an interface created without `autostart` is one the node\n * will not bring up at boot. Every C1 bridge, bond and vlan carries it.\n */\n autostart?: boolean;\n /** 1280-65520. Unset leaves the file without an `mtu` line and the kernel default in force. */\n mtu?: number;\n /** ⚠️ Round-trips only after normalisation — see `comment` in node-network-form.ts. */\n comments?: string;\n /** Space-separated, a SET: `enp87s0`, or `bond0`. ⚠️ PVE refuses a port already used elsewhere. */\n bridge_ports?: string;\n /** `2-4094`, or `2 100-200`. Only written when `bridge_vlan_aware` is on. */\n bridge_vids?: string;\n /** ⛔ A `false` here is sent as `delete=`, never as `0` — the ⛔ on `body` says why. */\n bridge_vlan_aware?: boolean;\n /**\n * A bond's members, space separated. ⚠️ THE PARAMETER IS `slaves`, NOT `bond_slaves`, in BOTH\n * directions on this PVE: MEASURED, the POST/PUT schema names only `slaves` and the GET returns\n * `\"slaves\":\"enp2s0f0np0 enp2s0f1np1\"`. `bond_slaves` appears nowhere in Network.pm here.\n */\n slaves?: string;\n bond_mode?: string;\n /** ⚠️ Only written when `bond_mode` is `balance-xor` or `802.3ad`; ignored otherwise. */\n bond_xmit_hash_policy?: string;\n /** active-backup only. Kept hyphenated because that is the wire name. */\n 'bond-primary'?: string;\n /** ⚠️ DERIVED FROM A DOTTED NAME. `vmbr1.42` reports `vlan-id` 42 with no such line in the file;\n * declaring it there is harmless but adds a line the file did not have. */\n 'vlan-id'?: number;\n 'vlan-raw-device'?: string;\n}\n\n/**\n * ⛔ THE LAST SEVEN ARE REPORTED AND NEVER COMPARED — each is a MEASURED forever-diff, and the\n * evidence for every one of them is in node-network-form.ts, beside the code that reads them.\n */\nexport interface NodeNetworkAttributes {\n node: string;\n iface: string;\n type: string;\n cidr: string;\n gateway: string;\n autostart: boolean;\n mtu: number;\n comments: string;\n bridge_ports: string;\n bridge_vids: string;\n bridge_vlan_aware: boolean;\n slaves: string;\n bond_mode: string;\n bond_xmit_hash_policy: string;\n 'bond-primary': string;\n 'vlan-id': number;\n 'vlan-raw-device': string;\n priority: number;\n method: string;\n families: string;\n active: boolean;\n exists: boolean;\n bond_miimon: string;\n bridge_stp: string;\n bridge_fd: string;\n}\n\nexport interface ProxmoxNodeNetwork extends Resource<\n 'Proxmox.NodeNetwork',\n NodeNetworkProps,\n NodeNetworkAttributes,\n never,\n PveRequirements\n> {}\n\n/** ★ `retain` by default — a node's only uplink cannot be rebuilt. See the ★ in resource.ts. */\nexport const ProxmoxNodeNetwork = Resource<ProxmoxNodeNetwork>('Proxmox.NodeNetwork', {\n defaultRemovalPolicy: 'retain',\n});\n\nconst handlers = pveHandlers<NodeNetworkProps, NodeNetworkAttributes>({\n attributes: readAttributes,\n collection: (props) => `nodes/${props.node}/network`,\n /** ⚠️ No `delete` parameter on a POST — see the ⚠️ on `updateBody`. `iface` IS in the create\n * body though, and was missing until 2026-09-22 — the 🔴 on `createBody`. */\n createForm: createBody,\n /** The vendor rules both forms are checked against at plan time — resource-spec.ts. */\n endpoint: {\n create: 'pve:POST /nodes/{node}/network',\n update: 'pve:PUT /nodes/{node}/network/{iface}',\n },\n /**\n * ⛔ `cidr` IS THE ONLY FIELD COMPARED WHEN UNDECLARED, AND THAT ASYMMETRY IS THE POINT. Every\n * other field here follows storage.ts: undeclared means unmanaged, so it is neither sent nor\n * compared and a plan cannot report an update no write could satisfy. `cidr` cannot be\n * unmanaged, because PVE derives `method` from the presence of an address IN THE FORM — an\n * omission is an edit. Comparing it unconditionally is what makes that edit visible in `plan`\n * instead of at `ifreload` time.\n *\n * ⚠️ NOTHING IN THE REPORTED-ONLY BLOCK IS HERE, and that is what makes the C1 declaration\n * plan as `noop` on all three nodes at once — the ⛔ above `NodeNetworkAttributes` lists them\n * and the measurement behind each.\n */\n matches: (attributes, props) =>\n attributes.cidr === (props.cidr ?? '') &&\n same(props.gateway, attributes.gateway) &&\n same(props.autostart, attributes.autostart) &&\n same(props.mtu, attributes.mtu) &&\n sameComment(props.comments, attributes.comments) &&\n sameList(props.bridge_ports, attributes.bridge_ports) &&\n sameList(props.bridge_vids, attributes.bridge_vids) &&\n same(props.bridge_vlan_aware, attributes.bridge_vlan_aware) &&\n sameList(props.slaves, attributes.slaves) &&\n same(props.bond_mode, attributes.bond_mode) &&\n same(props.bond_xmit_hash_policy, attributes.bond_xmit_hash_policy) &&\n same(props['bond-primary'], attributes['bond-primary']) &&\n same(props['vlan-id'], attributes['vlan-id']) &&\n same(props['vlan-raw-device'], attributes['vlan-raw-device']),\n path: (props) => `nodes/${props.node}/network/${props.iface}`,\n updateForm: updateBody,\n});\n\n/**\n * ⚠️ THE DESTROY IS STAGED LIKE EVERY OTHER WRITE, WHICH MAKES IT THE ONE RECOVERABLE DESTROY IN\n * THIS PACKAGE. It removes the stanza from `interfaces.new` and nothing else;\n * `DELETE /nodes/{node}/network` puts the node back by unlinking that file. It becomes\n * irreversible the moment somebody applies — and PVE performs NO in-use check before removing\n * an interface other bridges or Ceph still stand on.\n */\nexport const ProxmoxNodeNetworkProvider = () =>\n Provider.effect(ProxmoxNodeNetwork, Effect.succeed(ProxmoxNodeNetwork.Provider.of(handlers)));\n",
|
|
83
|
-
"/**\n * How a node interface crosses the wire in both directions — props to a PVE form, a PVE answer to\n * a comparable attribute — and when two of those values count as the same value.\n *\n * ★ SPLIT OUT OF node-network.ts TO KEEP BOTH FILES UNDER THE 250-LINE CAP, and the seam is the\n * same one metric-server-form.ts uses, one field wider: this file owns the COERCIONS, in both\n * directions, because a read that normalises differently from the write that produced it is\n * exactly how a forever-diff is born — keeping `ifaceList` next to both ends is what stops that.\n * node-network.ts answers \"what is an interface, and which of its fields are safe to compare at\n * all\". Nothing here calls the cluster.\n *\n * ⚠️ THE `import type` BACK TO node-network.ts IS A CYCLE ON PAPER ONLY — type-only, erased before\n * anything runs, so `NodeNetworkProps` stays in the file that declares the resource.\n *\n * * ⛔ THE LAST SEVEN ARE REPORTED AND NEVER COMPARED, AND EACH ONE IS A MEASURED FOREVER-DIFF.\n * `priority` is assigned by PVE FROM FILE ORDER — `my $priority = 2; ... $d->{priority} =\n * $priority++` — and it is not a POST or PUT parameter at all. MEASURED ACROSS C1: vmbr1.42 is\n * priority 16 on node-b and node-c and 15 on node-d, because node-d has no `wlan0` above it. One declaration\n * reused across three nodes would diff on exactly one of them, forever, over nothing.\n * `method` is RECOMPUTED on every write from whether the form carried an address, `families` is\n * recomputed the same way and never written to the file, `active` and `exists` describe the\n * kernel rather than the config, and `bond_miimon`, `bridge_stp` and `bridge_fd` are emitted by\n * PVE's writer with defaults (100, `off`, 0) while appearing in NEITHER write schema —\n * `additionalProperties => 0` means sending one is a 400. Live proof of all three: node-b's bond0\n * returns `bond_miimon \"100\"` and vmbr1 returns `bridge_stp \"off\"`, `bridge_fd \"0\"`, none of\n * which any declaration can set.\n */\nimport type { NodeNetworkAttributes, NodeNetworkProps } from './node-network.ts';\nimport { bool, flag, int, text, withClears } from './values.ts';\n\n/**\n * \"Not set\", for the three integers this family reports.\n *\n * ⚠️ 0 CANNOT BE THE ABSENT-MARKER AND -1 CAN. `mtu` is 1280-65520, `vlan-id` 1-4094 and PVE's\n * `priority` starts at 1 (1 is reserved for `lo`), so -1 is outside every one of their ranges\n * while 0 is merely outside today's. metric-server-form.ts keeps its own constant for the same\n * reason and against different ranges; one shared UNSET would have to be right for both.\n */\nexport const UNSET = -1;\n\n/**\n * A space-separated interface list, flattened to one comparable form.\n *\n * ⚠️ `bridge_ports` AND `slaves` ARE SETS, AND PVE NORMALISES THEIR SEPARATORS BUT NOT THEIR ORDER.\n * MEASURED in PVE::Network::Interfaces: the writer does `s/[;,\\s]+/ /g` on both before emitting\n * them, and the reader hands the resulting string straight back — so `enp2s0f1np1 enp2s0f0np0`\n * survives a round trip in the order it was written. Order carries no meaning for a bridge's\n * ports or a bond's slaves, so a declaration that lists them the other way round is the SAME\n * declaration; comparing raw strings would report an update that rewrites the file to say\n * exactly what it already said. Both sides are sorted here and only then compared.\n *\n * ⚠️ IT IS NOT `csv` FROM values.ts. That one joins with commas, and a comma in\n * `/etc/network/interfaces` is not a separator — PVE's own comment above the writer says the\n * list \"must be space separated! other separators will cause problems\". Sending a comma-joined\n * value would be accepted by `split_list` and then written back as spaces, which is a second\n * spelling of one value and therefore a second chance to diff.\n *\n * ⚠️ `bridge_vids` GOES THROUGH THE SAME FUNNEL and its sort is LEXICAL, which is correct only\n * because a vid list is a set: `2-4094` is one token, and `100-200 2` and `2 100-200` allow the\n * same VLANs. Nothing here should be reused for a list whose order is meaning.\n */\nexport const ifaceList = (value: unknown) =>\n text(value)\n .split(/[\\s,;]+/)\n .filter((part) => part !== '')\n .sort()\n .join(' ');\n\n/**\n * A comment off the wire, with the newline PVE adds taken back off.\n *\n * ⛔ `comments` NEVER ROUND-TRIPS RAW, AND THAT IS A FOREVER-DIFF IF IT IS NOT NORMALISED.\n * MEASURED in the reader: each `#...` line is appended as `$comment . \"\\n\"`, so a declared\n * `ceph transport` comes back as `ceph transport\\n` and the two never compare equal.\n * ⚠️ AND THE READER FOLDS `comments6` INTO `comments` (`$d->{comments} .= $comments6`), so on an\n * interface that carries an IPv6 comment a declared `comments` CANNOT match what comes back.\n * C1 has none; on an interface that does, leave `comments` undeclared rather than fighting it.\n */\nexport const comment = (value: unknown) => text(value).replace(/\\s+$/, '');\n\n/** Undeclared is unmanaged: neither sent nor compared. See the ⚠️ on `body`. */\nexport const same = <T>(declared: T | undefined, live: T) =>\n declared === undefined || declared === live;\n\nexport const sameList = (declared: string | undefined, live: string) =>\n declared === undefined || ifaceList(declared) === live;\n\nexport const sameComment = (declared: string | undefined, live: string) =>\n declared === undefined || comment(declared) === live;\n\nconst field = (name: string, value: string | undefined): Record<string, string> =>\n value === undefined ? {} : { [name]: value };\n\n/**\n * The fields sent on EVERY write, create and update alike.\n *\n * ⚠️ UNDECLARED IS UNMANAGED — not sent, and not compared either. PVE's PUT MERGES the form into\n * the existing stanza (`foreach my $k (keys %$param) { $ifaces->{$iface}->{$k} = $param->{$k} }`),\n * so an omitted parameter is left exactly as it was. `cidr` is the one exception and it is not\n * a small one — see the ⛔ in node-network.ts.\n *\n * ⛔ `type` IS REQUIRED ON THE PUT, NOT ONLY ON THE POST. It carries no `optional` in either\n * schema, and the merge above writes it straight into the stanza — so a PUT naming the wrong\n * type would RETYPE A LIVE INTERFACE in the file and the writer would then emit a bridge stanza\n * for what is really a vlan. node-network.ts refuses that case before it can reach here.\n *\n * ⛔ `bridge_vlan_aware` IS SENT ONLY WHEN TRUE, AND A FALSE ONE IS A `delete=`. MEASURED in the\n * writer: the test is `if (defined($d->{bridge_vlan_aware}))`, not a truth test, so `0` is\n * defined and PVE writes `bridge-vlan-aware yes` anyway. Sending `0` would therefore turn the\n * flag ON, read back as `1`, and diff forever while lying about which way it went.\n *\n * ⚠️ `netmask` IS A WRITABLE PARAMETER AND IS DELIBERATELY NOT OFFERED. PVE raises\n * \"netmask conflicts with cidr\" when both are sent, and the reader rewrites whatever was written\n * into prefix form — MEASURED: node-b's vmbr1.42 reports `\"netmask\":\"24\"`, never `255.255.255.0`.\n * A resource accepting both spellings would let a declaration diff against its own value.\n */\nexport const body = (props: NodeNetworkProps): Record<string, string> => ({\n ...field('autostart', flag(props.autostart)),\n ...field('bond-primary', props['bond-primary']),\n ...field('bond_mode', props.bond_mode),\n ...field('bond_xmit_hash_policy', props.bond_xmit_hash_policy),\n ...field('bridge_ports', props.bridge_ports),\n ...field('bridge_vids', props.bridge_vids),\n ...field('bridge_vlan_aware', props.bridge_vlan_aware === true ? '1' : undefined),\n ...field('cidr', props.cidr),\n ...field('comments', props.comments),\n ...field('gateway', props.gateway),\n ...field('mtu', props.mtu === undefined ? undefined : String(props.mtu)),\n ...field('slaves', props.slaves),\n ...field('vlan-id', props['vlan-id'] === undefined ? undefined : String(props['vlan-id'])),\n ...field('vlan-raw-device', props['vlan-raw-device']),\n type: props.type,\n});\n\n/**\n * The create form: `body` plus the name of the interface being created.\n *\n * 🔴 `iface` WAS MISSING UNTIL 2026-09-22, AND EVERY CREATE THIS FAMILY HAS EVER PLANNED WOULD\n * HAVE 400ed. `POST /nodes/{node}/network` declares `iface` REQUIRED (`pve-iface`, 2..20) and\n * `{node}` is its only path parameter, so the name has to travel in the BODY — unlike the PUT,\n * where `/network/{iface}` carries it and `updateBody` is right to leave it out. Nothing caught\n * it because no NodeNetwork has been created from a declaration yet: C1's three nodes were all\n * adopted, which takes the PUT path. Found by wiring this family to the vendor's own table,\n * which is exactly the 128-character comment again with a different parameter.\n *\n * ⚠️ NOT ADDED TO `body`, BECAUSE THE PUT MUST NOT CARRY IT. `additionalProperties => 0` on the\n * update schema makes a second copy of the name a 400 rather than an ignored hint.\n */\nexport const createBody = (props: NodeNetworkProps): Record<string, string> => ({\n ...body(props),\n iface: props.iface,\n});\n\n/**\n * The update form: `body` plus the two fields that can only be cleared explicitly.\n *\n * ⛔ `delete=cidr` IS SENT WHENEVER `cidr` IS UNDECLARED, AND IT IS THE LESSER OF TWO EVILS RATHER\n * THAN A GOOD OUTCOME. PVE recomputes the method on every write from the form alone —\n * `$param->{method} = $param->{address} ? 'static' : 'manual'` — so a PUT WITHOUT an address\n * makes the interface manual no matter what the caller intended. Left at that, the merge would\n * leave the old `address` and `netmask` in the hash and the writer would emit an `address` line\n * under `iface … inet manual`: a stanza PVE's own UI cannot produce, whose behaviour under\n * `ifreload -a` I did NOT measure. Clearing cidr explicitly at least produces a clean, honest\n * manual interface — and `matches` compares `cidr` UNCONDITIONALLY, so the plan says so first.\n *\n * ⛔ ON vmbr1.42 THAT IS THE CEPH TRANSPORT. A declaration of that interface without its `cidr` is\n * a declaration that it should have no address, applied across three nodes. The plan will read\n * `1 to update` rather than `noop`; do not wave it through.\n *\n * ⚠️ `delete` IS A PUT-ONLY PARAMETER. The POST schema is `additionalProperties => 0` and has no\n * `delete`, so sending it on a create is a 400 — which is why `createForm` calls `body` directly.\n */\nexport const updateBody = (props: NodeNetworkProps): Record<string, string> => {\n const clear = [\n ...(props.cidr === undefined ? ['cidr'] : []),\n ...(props.bridge_vlan_aware === false ? ['bridge_vlan_aware'] : []),\n ];\n const fields = body(props);\n return withClears(fields, clear);\n};\n\n/**\n * One live interface as attributes, or `undefined` — \"this is not really there\".\n *\n * ⚠️ EVERY FIELD PVE REPORTS IS CARRIED HERE, INCLUDING THE SEVEN NO DECLARATION CAN SET. A plan\n * that cannot show `priority`, `method` or `bond_miimon` cannot explain why it is ignoring them,\n * and the next person to read a forever-diff would start by adding them to `matches`. They are\n * reported precisely so that they are visibly OUT of it — see the ⛔ above the attribute type.\n */\nexport const readAttributes = (\n live: Record<string, unknown>,\n props: NodeNetworkProps,\n): NodeNetworkAttributes | undefined => {\n /**\n * ⛔ AN INTERFACE OF ANOTHER TYPE IS ANOTHER OBJECT, AND \"ABSENT\" IS THE SAFE ANSWER — the\n * same call metric-server.ts makes, for a worse reason. `type` is required on the PUT and\n * the PUT MERGES, so a declaration naming `bridge` for what is really a vlan would write\n * `type bridge` into the stanza and PVE's writer would then emit bridge-ports and\n * bridge-stp lines for vmbr1.42. Reporting absent instead makes reconcile POST a create,\n * which PVE refuses with \"interface already exists\": loud, and it changes nothing.\n */\n const liveType = text(live['type']);\n if (liveType !== '' && liveType !== props.type) return undefined;\n return {\n active: bool(live['active']),\n autostart: bool(live['autostart']),\n 'bond-primary': text(live['bond-primary']),\n bond_miimon: text(live['bond_miimon']),\n bond_mode: text(live['bond_mode']),\n bond_xmit_hash_policy: text(live['bond_xmit_hash_policy']),\n bridge_fd: text(live['bridge_fd']),\n bridge_ports: ifaceList(live['bridge_ports']),\n bridge_stp: text(live['bridge_stp']),\n bridge_vids: ifaceList(live['bridge_vids']),\n bridge_vlan_aware: bool(live['bridge_vlan_aware']),\n /** ⚠️ DERIVED BY THE READER from address+netmask, and always present when an address is. */\n cidr: text(live['cidr']),\n comments: comment(live['comments']),\n exists: bool(live['exists']),\n families: Array.isArray(live['families']) ? live['families'].join(',') : '',\n gateway: text(live['gateway']),\n iface: props.iface,\n method: text(live['method']),\n mtu: int(live['mtu'], UNSET),\n node: props.node,\n priority: int(live['priority'], UNSET),\n slaves: ifaceList(live['slaves']),\n type: liveType === '' ? props.type : liveType,\n 'vlan-id': int(live['vlan-id'], UNSET),\n 'vlan-raw-device': text(live['vlan-raw-device']),\n };\n};\n",
|
|
82
|
+
"/**\n * `Proxmox.NodeNetwork` — one stanza of a node's `/etc/network/interfaces`, declared.\n *\n * ⛔ DECLARING THIS RESOURCE IS SAFE. APPLYING IT IS A SEPARATE, DELIBERATE ACT, AND IT IS NOT\n * PERFORMED HERE. Every write under `/nodes/{node}/network/{iface}` lands in\n * `/etc/network/interfaces.new` and changes no running interface. MEASURED, from PVE::INotify:\n * `$shadowfiles = { '/etc/network/interfaces' => '/etc/network/interfaces.new' }`, and\n * `read_file` reads the SHADOW when it exists. The apply is `PUT /nodes/{node}/network`, which\n * renames the shadow over the real file and runs `ifreload -a`; the revert is\n * `DELETE /nodes/{node}/network`, which simply unlinks the shadow. A sibling resource models\n * that apply — this one never calls it, exactly as `Proxmox.SdnZone` never calls\n * `Proxmox.SdnApply`.\n *\n * ⛔ `Proxmox.NetworkApply` STAYS ON `client.ts`, NOT MIGRATED WITH THIS FILE — network-apply-\n * read.ts's own header has the two MEASURED reasons distilled cannot represent yet.\n *\n * ⛔ CEPH ON C1 RIDES TWO NETWORKS AND THIS API ONLY SEES ONE OF THEM. Measured from\n * `/etc/pve/ceph.conf` on 2026-09-13:\n *\n * public_network = 198.51.100.0/24 -> vmbr1.42, which this resource DOES see\n * cluster_network = 203.0.113.0/24 -> every OSD's cluster_addr: .102 / .103 / .104\n *\n * The cluster network — OSD REPLICATION, the traffic that rebuilds a lost replica — lives on\n * `203.0.113.10X/32` addresses carried by `tb0`, `tb1` and `dummy_c1`: the Thunderbolt mesh —\n * TB4's own fabric ports, EXCLUDED from this family by decision 28/29/9 (SdnFabric owns them).\n *\n * ⛔ AND THOSE ADDRESSES ARE INVISIBLE HERE, WHICH IS THE TRAP. They are declared in\n * `/etc/network/interfaces.d/sdn`, and PVE's network API does not parse that directory.\n * MEASURED: `GET /nodes/node-b/network/tb0` answers `{\"method\":\"manual\",\"type\":\"eth\",…}` with NO\n * address, while `ip -br -4 addr` shows `tb0 UP 203.0.113.102/32`. So this resource reports\n * tb0 and tb1 as address-less manual ports and will plan `noop` over them — implicitly\n * asserting they carry no address, which is FALSE.\n *\n * The consequence, stated plainly: declaring tb0/tb1 from what this API reports and then\n * DESTROYING or applying over them takes out OSD replication on a cluster whose pools are\n * size 3 / min_size 2. They read as the most boring interfaces on the node and are the two most\n * dangerous. Leave them undeclared; if they must be managed, manage the file that actually\n * owns them, not this resource.\n *\n * ⚠️ Two ways this file limits the damage on the interfaces it CAN see: `cidr` is compared\n * unconditionally (node-network-wire.ts's own ⛔ on `matches`), and a live interface whose\n * `type` disagrees with the declaration is reported ABSENT rather than retyped\n * (node-network-wire.ts's `attributesOf`).\n *\n * ★ THE REASON IT EXISTS IS THAT THE STAGED READ CANNOT TELL YOU THE NETWORK IS RIGHT — it can\n * only tell you the FILE is. Once anything is staged, `GET /nodes/{node}/network/{iface}`\n * answers from `interfaces.new`, so `matches` compares a declaration against a pending file and\n * reports `noop` over a node whose running config has not moved. The apply resource is what\n * closes that gap; this resource's `noop` means \"the file says what you said\", no more.\n *\n * ⚠️ PRIVILEGES ARE COARSER HERE THAN ANYWHERE ELSE IN THE PACKAGE: reads want `Sys.Audit` on\n * `/nodes/{node}`, every write `Sys.Modify` on it — and there is no `/nodes/{node}/network` ACL\n * object to scope to, so that also buys the node's services, certificates, DNS and time.\n * Collected with every other family in docs/privileges.md.\n *\n * ★ A RECONCILE OVER A MATCHING INTERFACE IS A NO-WRITE. `reconcile` below gates the PUT on\n * `matches` first — adopting an interface a node already has must not leave it holding a\n * pending network change, since a PUT under `/nodes/{node}/network/{iface}` STAGES one.\n *\n * ⚠️ WHAT IS STILL TRUE: when `matches` is false the PUT rewrites the whole stanza, and that can\n * ADD lines the file did not have — a `vlan-raw-device vmbr1` under `vmbr1.42`, where PVE had\n * been deriving it from the name. Harmless in content, and it costs nothing until somebody\n * applies; one more reason the apply is a separate resource.\n *\n * ⚠️ `list` IS EMPTY, AND HERE THAT MATTERS MORE THAN ANYWHERE ELSE IN THIS PACKAGE. The index\n * returns every interface the node has, `vmbr0`, `bond0` and the Ceph vlan included. Adopting\n * them would put Alchemy one `destroy` away from staging the removal of a node's uplink — and\n * `delete_network` has NO in-use check at all: MEASURED, it deletes the hash entry and writes\n * the file. Adoption stays explicit.\n *\n * ★ MIGRATED OFF `client.ts`'s generic `pve()`/`pveHandlers` ONTO `@distilled.cloud/proxmox`'s\n * typed `nodes.getNodeNetwork`/`createNodeNetwork`/`putNodeNetwork2`/`deleteNodeNetwork2`\n * (2026-09-24, decision 43). Dual-path read and `read`'s `output`-branching wired like every\n * other migrated family; node-network-wire.ts's `readInterfaceOrFail` has the new nuance.\n */\nimport { Resource } from 'alchemy';\nimport { isResolved } from 'alchemy/Diff';\nimport * as Provider from 'alchemy/Provider';\nimport * as nodes from '@distilled.cloud/proxmox/nodes';\nimport * as Effect from 'effect/Effect';\nimport { guardWrite } from './distilled-guard.ts';\nimport {\n NODE_NETWORK_CREATE,\n NODE_NETWORK_UPDATE,\n type NodeNetworkProps,\n createForm,\n updateForm,\n} from './node-network-form.ts';\nimport {\n dropUnreadable,\n matches,\n readInterface,\n readInterfaceOrFail,\n} from './node-network-wire.ts';\nimport type { NodeNetworkAttributes } from './node-network-wire.ts';\nimport { runPve } from './distilled-pve.ts';\nimport { type PveRequirements } from './resource-spec.ts';\nimport { UNREADABLE, unreadableWarning } from './unreadable-read.ts';\n\nexport type { NodeNetworkAttributes, NodeNetworkType } from './node-network-wire.ts';\n// ⚠️ MOVED TO node-network-form.ts IN THIS PR'S LINE-CAP TRIM — every field on it is already\n// documented there against `body`/`createForm`/`updateForm`, so it travels with them rather\n// than duplicating that documentation here. Nothing about its shape changed.\nexport type { NodeNetworkProps } from './node-network-form.ts';\n\nexport interface ProxmoxNodeNetwork extends Resource<\n 'Proxmox.NodeNetwork',\n NodeNetworkProps,\n NodeNetworkAttributes,\n never,\n PveRequirements\n> {}\n\n/** ★ `retain` by default — a node's only uplink cannot be rebuilt. See the ★ in resource.ts. */\nexport const ProxmoxNodeNetwork = Resource<ProxmoxNodeNetwork>('Proxmox.NodeNetwork', {\n defaultRemovalPolicy: 'retain',\n});\n\n/**\n * The three fields distilled's generator renamed to an underscore (`bond-primary`, `vlan-id`,\n * `vlan-raw-device`) — everything else round-trips as-is. `storage-form.ts`'s `underscored` is a\n * generic transform for a free-form bag; this family's fields are all named ahead of time, so a\n * small local map is clearer than importing a generic helper for three keys. Moved here from\n * node-network-form.ts in this PR's line-cap trim — this is the only caller.\n */\nconst RENAMED: Readonly<Record<string, string>> = {\n 'bond-primary': 'bond_primary',\n 'vlan-id': 'vlan_id',\n 'vlan-raw-device': 'vlan_raw_device',\n};\n\nconst toDistilled = (form: Record<string, string>): Record<string, string> =>\n Object.fromEntries(Object.entries(form).map(([key, value]) => [RENAMED[key] ?? key, value]));\n\n/** The actual `createNodeNetwork` call body — `createForm`, translated once. See `toDistilled`. */\nconst toDistilledCreate = (props: NodeNetworkProps): nodes.CreateNodeNetworkRequest =>\n ({\n ...toDistilled(createForm(props)),\n node: props.node,\n }) as unknown as nodes.CreateNodeNetworkRequest;\n\n/** The actual `putNodeNetwork2` call body — `updateForm`, translated once. See `toDistilledCreate`. */\nconst toDistilledUpdate = (props: NodeNetworkProps): nodes.PutNodeNetwork2Request =>\n ({\n ...toDistilled(updateForm(props)),\n iface: props.iface,\n node: props.node,\n }) as unknown as nodes.PutNodeNetwork2Request;\n\nexport const ProxmoxNodeNetworkProvider = () =>\n Provider.effect(\n ProxmoxNodeNetwork,\n Effect.succeed(\n ProxmoxNodeNetwork.Provider.of({\n /**\n * ⛔ EMPTY, AND HERE IT MATTERS MORE THAN ANYWHERE ELSE IN THIS PACKAGE. `GET\n * /nodes/{node}/network` returns every interface the node has. Adoption stays explicit.\n */\n list: () => Effect.succeed([]),\n // ⚠️ FOLDS ONLY WHEN `output` IS `undefined`, restored by adversarial review after a\n // first draft dropped it — node-network-wire.ts's `readInterface` has the reasoning.\n read: Effect.fn(function* ({ olds, output }) {\n return dropUnreadable(\n yield* output === undefined ? readInterface(olds) : readInterfaceOrFail(olds),\n );\n }),\n diff: Effect.fn(function* ({ news, output }) {\n if (!isResolved(news)) return undefined;\n yield* guardWrite(NODE_NETWORK_CREATE, createForm(news), output === undefined);\n yield* guardWrite(NODE_NETWORK_UPDATE, updateForm(news), false);\n if (output === undefined) return undefined;\n const live = yield* readInterfaceOrFail(news);\n // ⛔ THE CRIES-WOLF FIX: a refused mint used to fall into `undefined` and force `update`\n // on an interface that was plainly there — see unreadable-read.ts.\n if (live === UNREADABLE) {\n yield* unreadableWarning('Proxmox.NodeNetwork', `${news.node}/${news.iface}`);\n return { action: 'noop' } as const;\n }\n if (live === undefined) {\n yield* guardWrite(NODE_NETWORK_CREATE, createForm(news), true);\n return { action: 'update' } as const;\n }\n return matches(live, news)\n ? ({ action: 'noop' } as const)\n : ({ action: 'update' } as const);\n }),\n /**\n * ⛔ THE DESTROY IS STAGED LIKE EVERY OTHER WRITE, WHICH MAKES IT THE ONE RECOVERABLE\n * DESTROY IN THIS PACKAGE. It removes the stanza from `interfaces.new` and nothing\n * else; `DELETE /nodes/{node}/network` (a DIFFERENT, collection-level endpoint —\n * `Proxmox.NetworkApply`'s own revert, never called here) puts the node back by\n * unlinking that file. It becomes irreversible the moment somebody applies — and PVE\n * performs NO in-use check before removing an interface other bridges or Ceph still\n * stand on.\n */\n reconcile: Effect.fn(function* ({ news }) {\n const before = dropUnreadable(yield* readInterface(news));\n yield* guardWrite(NODE_NETWORK_CREATE, createForm(news), before === undefined);\n yield* guardWrite(NODE_NETWORK_UPDATE, updateForm(news), false);\n if (before === undefined) {\n yield* runPve(\n news.target,\n 'provision',\n true,\n nodes.createNodeNetwork(toDistilledCreate(news)),\n );\n } else if (!matches(before, news)) {\n yield* runPve(\n news.target,\n 'provision',\n true,\n nodes.putNodeNetwork2(toDistilledUpdate(news)),\n );\n }\n const after = dropUnreadable(yield* readInterface(news));\n if (after === undefined) {\n return yield* Effect.die(\n new Error(\n `nodes/${news.node}/network/${news.iface}: wrote with no error, but the ` +\n 'interface is still absent -- PVE wraps every answer in {\"data\":...} and can ' +\n 'report success on a call that did nothing, so read back rather than trust it.',\n ),\n );\n }\n return after;\n }),\n delete: Effect.fn(function* ({ olds }) {\n yield* runPve(\n olds.target,\n 'provision',\n true,\n nodes.deleteNodeNetwork2({ iface: olds.iface, node: olds.node }),\n );\n }),\n }),\n ),\n );\n",
|
|
83
|
+
"/**\n * `Proxmox.NodeNetwork`'s declared shape (`NodeNetworkProps`) and WRITE side, plus the wire\n * coercions the read side needs too — kept here since neither `matches` nor `updateForm` makes\n * sense without agreeing on the same normalisation. Split out of node-network.ts (2026-09-24,\n * the distilled migration; `Props` joined it in this PR's later line-cap trim) — the\n * storage.ts/storage-form.ts seam.\n */\nimport type { NodeNetworkType } from './node-network-wire.ts';\nimport { type WithTarget } from './resource-spec.ts';\nimport { flag, text, withClears } from './values.ts';\n\nexport interface NodeNetworkProps extends WithTarget {\n /** Which node's file this stanza lives in. Interfaces are per node, never cluster-wide. */\n node: string;\n /** `vmbr0`, `bond0`, `vmbr1.42`. 2-20 characters, PVE's `pve-iface` format. */\n iface: string;\n /** ⛔ REQUIRED ON EVERY WRITE, update included, never used to retype — see node-network-wire.ts. */\n type: NodeNetworkType;\n /**\n * `198.51.100.12/24`. ⛔ THE ONE FIELD WITH NO UNMANAGED MODE: leaving it out is an instruction\n * to make the interface `manual`, not an instruction to leave its address alone. The ⛔ on\n * `updateForm` in node-network-form.ts has the measurement and the consequence.\n */\n cidr?: string;\n /** ⚠️ PVE allows exactly ONE default gateway per node and refuses a second with \"Default\n * gateway already exists on interface '<other>'\". On C1 it is vmbr0.41's. */\n gateway?: string;\n /**\n * `auto <iface>` in the file. Absent on read means off, which is why `bool`'s fallback is used.\n * ⚠️ UNDECLARED IS UNMANAGED ON AN UPDATE AND OFF ON A CREATE — the same asymmetry storage.ts\n * has, and it bites harder here: an interface created without `autostart` is one the node\n * will not bring up at boot. Every C1 bridge, bond and vlan carries it.\n */\n autostart?: boolean;\n /** 1280-65520. Unset leaves the file without an `mtu` line and the kernel default in force. */\n mtu?: number;\n /** ⚠️ Round-trips only after normalisation — see `comment` in node-network-wire.ts. */\n comments?: string;\n /** Space-separated, a SET: `enp87s0`, or `bond0`. ⚠️ PVE refuses a port already used elsewhere. */\n bridge_ports?: string;\n /** `2-4094`, or `2 100-200`. Only written when `bridge_vlan_aware` is on. */\n bridge_vids?: string;\n /** ⛔ A `false` here is sent as `delete=`, never as `0` — node-network-form.ts's ⛔ says why. */\n bridge_vlan_aware?: boolean;\n /**\n * A bond's members, space separated. ⚠️ THE PARAMETER IS `slaves`, NOT `bond_slaves`, in BOTH\n * directions on this PVE: MEASURED, the POST/PUT schema names only `slaves` and the GET returns\n * `\"slaves\":\"enp2s0f0np0 enp2s0f1np1\"`. `bond_slaves` appears nowhere in Network.pm here.\n */\n slaves?: string;\n bond_mode?: string;\n /** ⚠️ Only written when `bond_mode` is `balance-xor` or `802.3ad`; ignored otherwise. */\n bond_xmit_hash_policy?: string;\n /** active-backup only. Kept hyphenated because that is the wire name. */\n 'bond-primary'?: string;\n /** ⚠️ DERIVED FROM A DOTTED NAME. `vmbr1.42` reports `vlan-id` 42 with no such line in the file;\n * declaring it there is harmless but adds a line the file did not have. */\n 'vlan-id'?: number;\n 'vlan-raw-device'?: string;\n}\n\nexport const NODE_NETWORK_CREATE = 'pve:POST /nodes/{node}/network';\nexport const NODE_NETWORK_UPDATE = 'pve:PUT /nodes/{node}/network/{iface}';\n\n/**\n * \"Not set\", for the three integers this family reports.\n *\n * ⚠️ 0 CANNOT BE THE ABSENT-MARKER AND -1 CAN. `mtu` is 1280-65520, `vlan-id` 1-4094 and PVE's\n * `priority` starts at 1 (1 is reserved for `lo`), so -1 is outside every one of their ranges\n * while 0 is merely outside today's. metric-server-form.ts keeps its own constant for the same\n * reason and against different ranges; one shared UNSET would have to be right for both.\n */\nexport const UNSET = -1;\n\n/**\n * A space-separated interface list, flattened to one comparable form.\n *\n * ⚠️ `bridge_ports` AND `slaves` ARE SETS, AND PVE NORMALISES THEIR SEPARATORS BUT NOT THEIR ORDER.\n * MEASURED in PVE::Network::Interfaces: the writer does `s/[;,\\s]+/ /g` on both before emitting\n * them, and the reader hands the resulting string straight back — so `enp2s0f1np1 enp2s0f0np0`\n * survives a round trip in the order it was written. Order carries no meaning for a bridge's\n * ports or a bond's slaves, so a declaration that lists them the other way round is the SAME\n * declaration; comparing raw strings would report an update that rewrites the file to say\n * exactly what it already said. Both sides are sorted here and only then compared.\n *\n * ⚠️ IT IS NOT `csv` FROM values.ts. That one joins with commas, and a comma in\n * `/etc/network/interfaces` is not a separator — PVE's own comment above the writer says the\n * list \"must be space separated! other separators will cause problems\". Sending a comma-joined\n * value would be accepted by `split_list` and then written back as spaces, which is a second\n * spelling of one value and therefore a second chance to diff.\n *\n * ⚠️ `bridge_vids` GOES THROUGH THE SAME FUNNEL and its sort is LEXICAL, which is correct only\n * because a vid list is a set: `2-4094` is one token, and `100-200 2` and `2 100-200` allow the\n * same VLANs. Nothing here should be reused for a list whose order is meaning.\n */\nexport const ifaceList = (value: unknown) =>\n text(value)\n .split(/[\\s,;]+/)\n .filter((part) => part !== '')\n .sort()\n .join(' ');\n\n/**\n * A comment off the wire, with the newline PVE adds taken back off.\n *\n * ⛔ `comments` NEVER ROUND-TRIPS RAW, AND THAT IS A FOREVER-DIFF IF IT IS NOT NORMALISED.\n * MEASURED in the reader: each `#...` line is appended as `$comment . \"\\n\"`, so a declared\n * `ceph transport` comes back as `ceph transport\\n` and the two never compare equal.\n * ⚠️ AND THE READER FOLDS `comments6` INTO `comments` (`$d->{comments} .= $comments6`), so on an\n * interface that carries an IPv6 comment a declared `comments` CANNOT match what comes back.\n * C1 has none; on an interface that does, leave `comments` undeclared rather than fighting it.\n */\nexport const comment = (value: unknown) => text(value).replace(/\\s+$/, '');\n\n/** Undeclared is unmanaged: neither sent nor compared. */\nexport const same = <T>(declared: T | undefined, live: T) =>\n declared === undefined || declared === live;\n\nexport const sameList = (declared: string | undefined, live: string) =>\n declared === undefined || ifaceList(declared) === live;\n\nexport const sameComment = (declared: string | undefined, live: string) =>\n declared === undefined || comment(declared) === live;\n\nconst field = (name: string, value: string | undefined): Record<string, string> =>\n value === undefined ? {} : { [name]: value };\n\n/**\n * The fields sent on EVERY write, create and update alike.\n *\n * ⚠️ UNDECLARED IS UNMANAGED — not sent, and not compared either. PVE's PUT MERGES the form into\n * the existing stanza (`foreach my $k (keys %$param) { $ifaces->{$iface}->{$k} = $param->{$k} }`),\n * so an omitted parameter is left exactly as it was. `cidr` is the one exception and it is not\n * a small one — see node-network.ts's own ⛔.\n *\n * ⛔ `type` IS REQUIRED ON THE PUT, NOT ONLY ON THE POST. It carries no `optional` in either\n * schema (CONFIRMED again in distilled's generated `PutNodeNetwork2Request`/\n * `CreateNodeNetworkRequest`), and the merge above writes it straight into the stanza — so a PUT\n * naming the wrong type would RETYPE A LIVE INTERFACE in the file. node-network-wire.ts's\n * `attributesOf` refuses that case before it can reach here.\n *\n * ⛔ `bridge_vlan_aware` IS SENT ONLY WHEN TRUE, AND A FALSE ONE IS A `delete=`. MEASURED in the\n * writer: the test is `if (defined($d->{bridge_vlan_aware}))`, not a truth test, so `0` is\n * defined and PVE writes `bridge-vlan-aware yes` anyway. Sending `0` would therefore turn the\n * flag ON, read back as `1`, and diff forever while lying about which way it went.\n *\n * ⚠️ `netmask` IS A WRITABLE PARAMETER AND IS DELIBERATELY NOT OFFERED. PVE raises\n * \"netmask conflicts with cidr\" when both are sent, and the reader rewrites whatever was written\n * into prefix form — MEASURED: node-b's vmbr1.42 reports `\"netmask\":\"24\"`, never `255.255.255.0`.\n * A resource accepting both spellings would let a declaration diff against its own value.\n *\n * ★ HYPHENATED, THE WIRE SHAPE — `guardWrite` (node-network.ts) checks this form directly, keyed\n * by PVE's own names (`generated/constraints/pve-nodes-network.ts`). `toDistilledCreate`/\n * `toDistilledUpdate` below translate a COPY for the actual SDK call — storage-form.ts's\n * `underscored` has the fuller measurement of why the wire itself does not need this rename\n * (distilled's own `T.Body()` annotation re-hyphenates on the way out either way), reused here\n * only for the three fields this family's schema renames: `bond-primary`, `vlan-id`,\n * `vlan-raw-device` -> `bond_primary`, `vlan_id`, `vlan_raw_device`.\n */\nexport const body = (props: NodeNetworkProps): Record<string, string> => ({\n ...field('autostart', flag(props.autostart)),\n ...field('bond-primary', props['bond-primary']),\n ...field('bond_mode', props.bond_mode),\n ...field('bond_xmit_hash_policy', props.bond_xmit_hash_policy),\n ...field('bridge_ports', props.bridge_ports),\n ...field('bridge_vids', props.bridge_vids),\n ...field('bridge_vlan_aware', props.bridge_vlan_aware === true ? '1' : undefined),\n ...field('cidr', props.cidr),\n ...field('comments', props.comments),\n ...field('gateway', props.gateway),\n ...field('mtu', props.mtu === undefined ? undefined : String(props.mtu)),\n ...field('slaves', props.slaves),\n ...field('vlan-id', props['vlan-id'] === undefined ? undefined : String(props['vlan-id'])),\n ...field('vlan-raw-device', props['vlan-raw-device']),\n type: props.type,\n});\n\n/**\n * The create form: `body` plus the name of the interface being created.\n *\n * 🔴 `iface` MUST BE IN THE BODY, NOT ONLY THE PATH — `POST /nodes/{node}/network` declares\n * `iface` REQUIRED (`pve-iface`, 2..20) and `{node}` is its only path parameter, CONFIRMED again\n * in distilled's generated `CreateNodeNetworkRequest`, which carries `iface` as a plain body\n * field, never a `T.Label()`. The pre-distilled client.ts version of this file shipped without\n * it for a time (see the git history around 2026-09-22) — every create this family had ever\n * planned would have 400ed, caught only because every C1 interface had been adopted, never\n * created, so nothing exercised the POST until the vendor table was wired in.\n *\n * ⚠️ NOT ADDED TO `body`, BECAUSE THE PUT MUST NOT CARRY IT. `additionalProperties => 0` on the\n * update schema makes a second copy of the name a 400 rather than an ignored hint.\n */\nexport const createForm = (props: NodeNetworkProps): Record<string, string> => ({\n ...body(props),\n iface: props.iface,\n});\n\n/**\n * The update form: `body` plus the two fields that can only be cleared explicitly.\n *\n * ⛔ `delete=cidr` IS SENT WHENEVER `cidr` IS UNDECLARED, AND IT IS THE LESSER OF TWO EVILS RATHER\n * THAN A GOOD OUTCOME. PVE recomputes the method on every write from the form alone —\n * `$param->{method} = $param->{address} ? 'static' : 'manual'` — so a PUT WITHOUT an address\n * makes the interface manual no matter what the caller intended. Left at that, the merge would\n * leave the old `address` and `netmask` in the hash and the writer would emit an `address` line\n * under `iface … inet manual`: a stanza PVE's own UI cannot produce. Clearing cidr explicitly at\n * least produces a clean, honest manual interface — and `matches` compares `cidr`\n * UNCONDITIONALLY, so the plan says so first.\n *\n * ⛔ ON vmbr1.42 THAT IS THE CEPH TRANSPORT. A declaration of that interface without its `cidr` is\n * a declaration that it should have no address, applied across three nodes. The plan will read\n * `1 to update` rather than `noop`; do not wave it through.\n *\n * ⚠️ `delete` IS A PUT-ONLY PARAMETER. The POST schema has no `delete` at all, which is why\n * `createForm` calls `body` directly rather than going through this function.\n */\nexport const updateForm = (props: NodeNetworkProps): Record<string, string> => {\n const clear = [\n ...(props.cidr === undefined ? ['cidr'] : []),\n ...(props.bridge_vlan_aware === false ? ['bridge_vlan_aware'] : []),\n ];\n return withClears(body(props), clear);\n};\n\n// ⚠️ `toDistilledCreate`/`toDistilledUpdate` MOVED TO node-network.ts IN THIS PR'S LINE-CAP\n// TRIM — the only caller, and the only place `nodes.CreateNodeNetworkRequest`/\n// `PutNodeNetwork2Request` were otherwise needed. `createForm`/`updateForm` above are unchanged.\n",
|
|
84
|
+
"/**\n * `Proxmox.NodeNetwork`'s READ side: the coercions in both directions, the read itself, and\n * `matches`. Split out of node-network-form.ts (2026-09-24, the distilled migration) — the\n * storage.ts/storage-wire.ts seam; the write side stays in node-network-form.ts.\n *\n * * ⛔ THE LAST SEVEN ARE REPORTED AND NEVER COMPARED, AND EACH ONE IS A MEASURED FOREVER-DIFF.\n * `priority` is assigned by PVE FROM FILE ORDER — `my $priority = 2; ... $d->{priority} =\n * $priority++` — and it is not a POST or PUT parameter at all. MEASURED ACROSS C1: vmbr1.42 is\n * priority 16 on node-b and node-c and 15 on node-d, because node-d has no `wlan0` above it. One\n * declaration reused across three nodes would diff on exactly one of them, forever, over nothing.\n * `method` is RECOMPUTED on every write from whether the form carried an address, `families` is\n * recomputed the same way and never written to the file, `active` and `exists` describe the\n * kernel rather than the config, and `bond_miimon`, `bridge_stp` and `bridge_fd` are emitted by\n * PVE's writer with defaults (100, `off`, 0) while appearing in NEITHER write schema —\n * `additionalProperties => 0` means sending one is a 400. Live proof of all three: node-b's bond0\n * returns `bond_miimon \"100\"` and vmbr1 returns `bridge_stp \"off\"`, `bridge_fd \"0\"`, none of\n * which any declaration can set.\n */\nimport * as nodes from '@distilled.cloud/proxmox/nodes';\nimport * as Effect from 'effect/Effect';\nimport { runPve } from './distilled-pve.ts';\nimport {\n type NodeNetworkProps,\n UNSET,\n comment,\n ifaceList,\n same,\n sameComment,\n sameList,\n} from './node-network-form.ts';\nimport { UNREADABLE, type Unreadable, readOrUnreadable } from './unreadable-read.ts';\nimport { bool, int, text } from './values.ts';\n\n/**\n * PVE's interface types. `unknown` is what a NIC it does not manage reports — node-b and node-c\n * both report `wlan0` that way, and node-d has no such interface at all.\n *\n * ⚠️ THAT ASYMMETRY IS A TRAP FOR A DECLARATION SHARED ACROSS NODES. On node-d the read answers\n * 400 (\"interface does not exist\"), which this provider cannot tell from \"deleted\", so\n * reconcile POSTs — writing a stanza for a card that is not in the machine. Declare per node\n * what each node actually has; a physical interface is discovered, not decided.\n */\nexport type NodeNetworkType =\n | 'OVSBond'\n | 'OVSBridge'\n | 'OVSIntPort'\n | 'OVSPort'\n | 'alias'\n | 'bond'\n | 'bridge'\n | 'eth'\n | 'fabric'\n | 'unknown'\n | 'vlan'\n | 'vnet';\n\n/**\n * ⛔ THE LAST SEVEN ARE REPORTED AND NEVER COMPARED — each is a MEASURED forever-diff, and the\n * evidence for every one of them is below, beside the code that reads them.\n */\nexport interface NodeNetworkAttributes {\n node: string;\n iface: string;\n type: string;\n cidr: string;\n gateway: string;\n autostart: boolean;\n mtu: number;\n comments: string;\n bridge_ports: string;\n bridge_vids: string;\n bridge_vlan_aware: boolean;\n slaves: string;\n bond_mode: string;\n bond_xmit_hash_policy: string;\n 'bond-primary': string;\n 'vlan-id': number;\n 'vlan-raw-device': string;\n priority: number;\n method: string;\n families: string;\n active: boolean;\n exists: boolean;\n bond_miimon: string;\n bridge_stp: string;\n bridge_fd: string;\n}\n\n/**\n * One live interface as attributes. `live` is cast past `GetNodeNetworkResponse`'s own TS type\n * (`{method, type}`) — MEASURED: the generated schema is a lower bound, not the full shape (PVE's\n * response varies by interface type, and the apidoc this was generated from does not enumerate\n * every field it can carry), but decoding does NOT strip the extras (Effect Schema's `S.Struct` is\n * structural, not exact) — every field PVE actually returns survives to this object at runtime,\n * confirmed against the full measured `vmbr0` response below.\n *\n * ⚠️ EVERY FIELD PVE REPORTS IS CARRIED HERE, INCLUDING THE SEVEN NO DECLARATION CAN SET. A plan\n * that cannot show `priority`, `method` or `bond_miimon` cannot explain why it is ignoring them,\n * and the next person to read a forever-diff would start by adding them to `matches`. They are\n * reported precisely so that they are visibly OUT of it — see the ⛔ above the module header.\n */\nconst attributesOf = (\n live: unknown,\n props: NodeNetworkProps,\n): NodeNetworkAttributes | undefined => {\n const data = live as Record<string, unknown>;\n /**\n * ⛔ AN INTERFACE OF ANOTHER TYPE IS ANOTHER OBJECT, AND \"ABSENT\" IS THE SAFE ANSWER — the\n * same call metric-server.ts makes, for a worse reason. `type` is required on the PUT and\n * the PUT MERGES, so a declaration naming `bridge` for what is really a vlan would write\n * `type bridge` into the stanza and PVE's writer would then emit bridge-ports and\n * bridge-stp lines for vmbr1.42. Reporting absent instead makes reconcile POST a create,\n * which PVE refuses with \"interface already exists\": loud, and it changes nothing.\n */\n const liveType = text(data['type']);\n if (liveType !== '' && liveType !== props.type) return undefined;\n return {\n active: bool(data['active']),\n autostart: bool(data['autostart']),\n 'bond-primary': text(data['bond-primary']),\n bond_miimon: text(data['bond_miimon']),\n bond_mode: text(data['bond_mode']),\n bond_xmit_hash_policy: text(data['bond_xmit_hash_policy']),\n bridge_fd: text(data['bridge_fd']),\n bridge_ports: ifaceList(data['bridge_ports']),\n bridge_stp: text(data['bridge_stp']),\n bridge_vids: ifaceList(data['bridge_vids']),\n bridge_vlan_aware: bool(data['bridge_vlan_aware']),\n /** ⚠️ DERIVED BY THE READER from address+netmask, and always present when an address is. */\n cidr: text(data['cidr']),\n comments: comment(data['comments']),\n exists: bool(data['exists']),\n families: Array.isArray(data['families']) ? data['families'].join(',') : '',\n gateway: text(data['gateway']),\n iface: props.iface,\n method: text(data['method']),\n mtu: int(data['mtu'], UNSET),\n node: props.node,\n priority: int(data['priority'], UNSET),\n slaves: ifaceList(data['slaves']),\n type: liveType === '' ? props.type : liveType,\n 'vlan-id': int(data['vlan-id'], UNSET),\n 'vlan-raw-device': text(data['vlan-raw-device']),\n };\n};\n\n/**\n * ★ Default `read` role — `Sys.Audit` on `/nodes/{node}` (node-network.ts's header).\n * ⛔ `{ node: props.node, iface: props.iface }`, NEVER THE WHOLE `props` — storage.ts's/user.ts's\n * own ⛔, the kit 0.31.1 regression: `GetNodeNetworkRequest`'s schema declares only `node` and\n * `iface` (both path labels); any OTHER key on the object passed to `nodes.getNodeNetwork` is\n * treated by distilled's `buildRequest` as an \"unknown key\" and JSON-encoded onto this bodyless\n * GET, which a stricter fetch client refuses outright.\n * ⛔ A MISSING INTERFACE IS A 400, NOT A 500 AND NOT A 404 — MEASURED against the live cluster\n * (TB4 `n2`, read-role, read-only probe, 2026-09-24): `GET /nodes/n2/network/vmbr9` answers\n * `{\"errors\":{\"iface\":\"interface does not exist\"},\"data\":null,\"message\":\"Parameter verification\n * failed.\\n\"}` at HTTP 400 — a THIRD shape, different from every other migrated family's\n * measured 500. `@distilled.cloud/proxmox` types this as a genuine typed error,\n * `ParameterVerificationFailed` (`errors.ts`), carrying the per-field `errors` object rather\n * than collapsing it to an opaque `BadRequest` — PVE's OWN 400 is never one shape (it is\n * whatever the endpoint's parameter verification rejected), so `errors.ts`'s own header spells\n * out why this ONE typed error is global rather than per-operation.\n * ⛔ ONLY THIS EXACT SIGNAL MEANS ABSENT, EVEN WITH THE FOLD BELOW. A different 400 reason, a\n * permission gap, a network blip, or ANY OTHER `ParameterVerificationFailed` reason is never\n * read as \"this interface is not there\" — `diff` calls this directly and propagates every one\n * of them loudly.\n */\nexport const readInterfaceOrFail = (props: NodeNetworkProps) =>\n readOrUnreadable(\n runPve(\n props.target,\n 'read',\n false,\n nodes.getNodeNetwork({ iface: props.iface, node: props.node }),\n ).pipe(\n Effect.catchTag('ParameterVerificationFailed', (error) =>\n error.errors['iface'] === 'interface does not exist'\n ? Effect.succeed(undefined)\n : Effect.fail(error),\n ),\n ),\n ).pipe(\n Effect.map((live) => {\n if (live === UNREADABLE) return UNREADABLE;\n return live === undefined ? undefined : attributesOf(live, props);\n }),\n );\n\n/**\n * ⛔ FOLDS A GENUINE READ FAILURE TO `undefined` TOO, AND ONLY `read`'s adoption/recovery branch\n * AND `reconcile` MAY USE IT — FOUND BY ADVERSARIAL REVIEW, 2026-09-24: a first draft used\n * `readInterfaceOrFail` (precise, non-folding) for EVERY caller, on the reasoning that a typed,\n * parsed absence signal made folding unnecessary. That reasoning conflated two different\n * questions: HOW PRECISELY a signal means absent (this family's is unusually precise), and\n * WHETHER a given caller can safely treat an UNRELATED failure as \"proceed as though absent\"\n * (storage.ts's/user.ts's own reasoning: a wrongful fold costs at most a redundant\n * `createNodeNetwork` POST, refused loudly). Plan.ts's cold-start adoption probe and\n * interrupted-create recovery, and Apply.ts's delete recovery, all call `read` with\n * `output: undefined` and NO catch of their own (`Plan.ts` v2.0.0-beta.79 ~line 1308) — and\n * Plan.ts fails the WHOLE PLAN, every other resource included, if that call throws. A malformed\n * `iface` in ONE brand-new declaration (a DIFFERENT `ParameterVerificationFailed` than the\n * absence one) would abort `bun run plan` for the entire stack under the precise-only design,\n * where every other migrated family instead defers that same malformed declaration to a scoped,\n * loud refusal at apply. This restores that same fold for those three call sites.\n */\nexport const readInterface = (props: NodeNetworkProps) =>\n readInterfaceOrFail(props).pipe(Effect.orElseSucceed(() => undefined));\n\n/** `read`/`reconcile` return `Attributes | undefined`; only `diff` tells `UNREADABLE` apart. */\nexport const dropUnreadable = (live: NodeNetworkAttributes | Unreadable | undefined) =>\n live === UNREADABLE ? undefined : live;\n\n/**\n * ⛔ `cidr` IS THE ONLY FIELD COMPARED WHEN UNDECLARED, AND THAT ASYMMETRY IS THE POINT. Every\n * other field here follows storage.ts: undeclared means unmanaged, so it is neither sent nor\n * compared and a plan cannot report an update no write could satisfy. `cidr` cannot be\n * unmanaged, because PVE derives `method` from the presence of an address IN THE FORM — an\n * omission is an edit. Comparing it unconditionally is what makes that edit visible in `plan`\n * instead of at `ifreload` time.\n *\n * ⚠️ NOTHING IN THE REPORTED-ONLY BLOCK IS HERE, and that is what makes the C1 declaration\n * plan as `noop` on all three nodes at once — the module header lists them and the\n * measurement behind each.\n */\nexport const matches = (attributes: NodeNetworkAttributes, props: NodeNetworkProps) =>\n attributes.cidr === (props.cidr ?? '') &&\n same(props.gateway, attributes.gateway) &&\n same(props.autostart, attributes.autostart) &&\n same(props.mtu, attributes.mtu) &&\n sameComment(props.comments, attributes.comments) &&\n sameList(props.bridge_ports, attributes.bridge_ports) &&\n sameList(props.bridge_vids, attributes.bridge_vids) &&\n same(props.bridge_vlan_aware, attributes.bridge_vlan_aware) &&\n sameList(props.slaves, attributes.slaves) &&\n same(props.bond_mode, attributes.bond_mode) &&\n same(props.bond_xmit_hash_policy, attributes.bond_xmit_hash_policy) &&\n same(props['bond-primary'], attributes['bond-primary']) &&\n same(props['vlan-id'], attributes['vlan-id']) &&\n same(props['vlan-raw-device'], attributes['vlan-raw-device']);\n",
|
|
84
85
|
"/**\n * `Proxmox.NotificationMatcher` — which notifications a PVE cluster sends to which targets.\n *\n * ★ THE HALF OF THE NOTIFICATION SYSTEM notification-target.ts LEAVES OPEN. A target is where a\n * message CAN go; a matcher decides whether it DOES. A cluster ships one, `default-matcher`,\n * routing everything to `mail-to-root`, and a target no matcher names receives nothing — so a\n * declared webhook with no matcher is a delivery path that is never used, and looks finished.\n *\n * ★ ADOPTING THE BUILT-IN AS IT IS: declare what it holds and nothing more. MEASURED on PVE\n * 9.2.11 (2026-09-22, `pvesh get /cluster/notifications/matchers/default-matcher`): mode `all`,\n * one target `mail-to-root`, no rules, the comment \"Route all notifications to mail-to-root\".\n * ```ts\n * ProxmoxNotificationMatcher('default-matcher', {\n * target: cluster, name: 'default-matcher', targets: ['mail-to-root'],\n * });\n * ```\n * That plans `noop` and deploys with no write (notification-matcher.test.ts). Leaving `comment`\n * out leaves it alone; every rule field is compared — notification-matcher-form.ts says why.\n *\n * ★ WHAT THIS NEEDS, READ OFF THE CLUSTER'S OWN SCHEMA (generated/pve.ts source, 9.2.11):\n * read GET matchers/{name} Mapping.Audit or Mapping.Modify on /mapping/notifications\n * write POST, PUT, DELETE Mapping.Modify on /mapping/notifications\n * The same pair as `Proxmox.NotificationTarget`, with that file's ⚠️ about granting it on `/`.\n * ⛔ `Mapping.Use` IS NOT ENOUGH, though the COLLECTION GET accepts it: the per-object read this\n * family makes lists only Audit and Modify (pve-manager API2/Cluster/Notifications.pm\n * `get_matcher`, read at HEAD 2026-09-22 — corrected here; PR 95 said Use sufficed).\n * ⛔ A MISSING READ PRIVILEGE LOOKS LIKE \"ABSENT\", not like a 403 — see the same file. For\n * `default-matcher` that turns an adoption into a planned CREATE that PVE refuses as a\n * duplicate: the noop below needs a read lease holding Mapping.Audit.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport {\n type NotificationMatcherAttributes,\n type NotificationMatcherFields,\n matcherAttributes,\n matcherCreateForm,\n matcherMatches,\n matcherUpdateForm,\n} from './notification-matcher-form.ts';\nimport { type PveRequirements, type WithTarget, pveHandlers } from './resource.ts';\n\nexport interface NotificationMatcherProps extends NotificationMatcherFields, WithTarget {}\n\nexport interface ProxmoxNotificationMatcher extends Resource<\n 'Proxmox.NotificationMatcher',\n NotificationMatcherProps,\n NotificationMatcherAttributes,\n never,\n PveRequirements\n> {}\n\n/**\n * ⚠️ NO `defaultRemovalPolicy: 'retain'`, for notification-target.ts's reason: a matcher holds no\n * data, and a plan line is the only warning a delete gets. On `default-matcher` the delete\n * REVERTS it to the shipped rule instead — see `origin` on the attributes.\n */\nexport const ProxmoxNotificationMatcher = Resource<ProxmoxNotificationMatcher>(\n 'Proxmox.NotificationMatcher',\n);\n\nconst handlers = pveHandlers<NotificationMatcherProps, NotificationMatcherAttributes>({\n attributes: (live, props) => matcherAttributes(live, props.name),\n collection: () => 'cluster/notifications/matchers',\n createForm: matcherCreateForm,\n /** The vendor rules these forms are checked against at plan time — resource-spec.ts. */\n endpoint: {\n create: 'pve:POST /cluster/notifications/matchers',\n update: 'pve:PUT /cluster/notifications/matchers/{name}',\n },\n matches: matcherMatches,\n path: (props) => `cluster/notifications/matchers/${props.name}`,\n updateForm: matcherUpdateForm,\n});\n\nexport const ProxmoxNotificationMatcherProvider = () =>\n Provider.effect(\n ProxmoxNotificationMatcher,\n Effect.succeed(ProxmoxNotificationMatcher.Provider.of(handlers)),\n );\n",
|
|
85
86
|
"/**\n * A notification matcher — the rule that routes a notification to its targets — as ONE shape\n * shared by PVE (`Proxmox.NotificationMatcher`) and PBS (`Pbs.NotificationMatcher`).\n *\n * ★ ONE FILE FOR BOTH PRODUCTS BECAUSE IT IS ONE IMPLEMENTATION. Both servers run the same Rust\n * crate, `proxmox-notify` (matcher.rs), PVE through its Perl bindings; the schemas in\n * generated/pve.ts and generated/pbs.ts carry the same nine fields, and the forms below are\n * typed against BOTH, so a drift on either side fails `tsc` here rather than on a server.\n *\n * ⚠️ A MATCHER IS ITS WHOLE RULE, SO EVERY RULE FIELD IS COMPARED, DECLARED OR NOT. Most families\n * here leave an undeclared field alone (backup-job.ts's trade). A matcher cannot: an undeclared\n * `match-field` on a matcher that has one is a declaration claiming \"route everything\" over a\n * server that routes one job type — and `invert-match` flips the meaning of every other line.\n * So `match-*` default to empty, `mode` to `all`, `invert-match` and `disable` to false, all are\n * compared, and a PUT sends all of them (an emptied list as `delete`). Only `comment` keeps the\n * usual \"undeclared is unmanaged\" rule, because nothing routes on it.\n * ★ THE COST IS THAT ADOPTING A MATCHER MEANS DECLARING IT AS IT IS. PBS ships `default-matcher`\n * with `invert-match`, a `match-field` and a `match-severity` (measured on PBS 4.2, 2026-09-22),\n * so adopting it as-is means writing those three down. A declaration that leaves them out\n * plans an UPDATE, which is the plan telling the truth about what the deploy would do.\n */\nimport type {\n ClusterNotificationsMatchersNamePutParams,\n ClusterNotificationsMatchersPostParams,\n} from './generated/pve.ts';\nimport type {\n ConfigNotificationsMatchersNamePutParams,\n ConfigNotificationsMatchersPostParams,\n} from './generated/pbs.ts';\nimport { bool, text } from './values.ts';\n\n/** Everything a matcher declares except where it lives — the resource files add `target`. */\nexport interface NotificationMatcherFields {\n /** The primary key, a safe id (2–32 chars on PBS). Changing it is a replace. */\n name: string;\n /**\n * ⛔ THE TARGETS, BY NAME, AND REQUIRED: a matcher that notifies nobody is a routing rule for\n * silence. `[]` is still declarable, and clears the list.\n * ⚠️ `targets`, NOT THE SERVER'S `target`: every resource here already spends `target` on the\n * HOST (resource.ts `WithTarget`), and one key cannot mean both. The wire still says `target`.\n */\n targets: readonly string[];\n /**\n * Severity rules. EACH ITEM IS ITSELF A COMMA LIST: `'warning,error'` matches either.\n * ⛔ `['warning', 'error']` IS NOT THE SAME RULE AND UNDER `mode: 'all'` NEVER MATCHES. Items are\n * combined with `mode`; the severities inside one item are always OR-ed (matcher.rs\n * `SeverityMatcher`). A notification has one severity, so two items under AND ask for a\n * notification that is both — and routing nothing is the quietest failure a matcher has.\n * Severities: `info`, `notice`, `warning`, `error`, `unknown`.\n */\n 'match-severity'?: readonly string[];\n /**\n * Metadata rules, `exact:<field>=<v1>,<v2>` or `regex:<field>=<re>`. ⚠️ THE PREFIX IS REQUIRED:\n * the schema's pattern makes it optional and the parser then refuses it. A notification WITHOUT\n * the field never matches its rule — so `exact:job-id=…` excludes every garbage collection.\n */\n 'match-field'?: readonly string[];\n /** Time windows, e.g. `mon-fri 9:00-17:00`. Compared as written; the server keeps the text. */\n 'match-calendar'?: readonly string[];\n /** How the rule items combine. The server's default, and this package's, is `all`. */\n mode?: 'all' | 'any';\n /** Invert the whole rule. ⚠️ IGNORED WHEN THERE ARE NO RULES — an empty matcher always matches. */\n 'invert-match'?: boolean;\n /** A disabled matcher routes nothing. */\n disable?: boolean;\n /** Free text. The one field left alone when undeclared; `''` clears it. */\n comment?: string;\n}\n\n/** ⚠️ Lists are CANONICAL and SORTED, so a re-ordered declaration is not a diff. */\nexport interface NotificationMatcherAttributes {\n name: string;\n /**\n * `builtin`, `modified-builtin` or `user-created`. REPORTED, NEVER COMPARED.\n * ⛔ ON A BUILT-IN A DELETE REVERTS RATHER THAN REMOVES, and reports success either way — Alchemy\n * drops the row while `default-matcher` goes on routing. Read this before destroying one.\n * ★ MEASURED ON THE PER-OBJECT READ, which the published schema does not list: PVE 9.2.11 and\n * PBS 4.2 both return it from `…/matchers/default-matcher` (2026-09-22).\n */\n origin: string;\n comment: string;\n disable: boolean;\n 'invert-match': boolean;\n mode: string;\n targets: readonly string[];\n 'match-severity': readonly string[];\n 'match-field': readonly string[];\n 'match-calendar': readonly string[];\n}\n\nconst list = (value: unknown): readonly string[] =>\n Array.isArray(value) ? value.map((item: unknown) => String(item)) : [];\n\n/** Trimmed items, empty ones dropped. */\nconst items = (values: readonly string[], canonical: (item: string) => string): string[] =>\n values.map((item) => canonical(item.trim())).filter((item) => item !== '');\n\n/**\n * ⚠️ THE SERVER WRITES A RULE BACK IN ITS OWN SPELLING, SO BOTH SIDES ARE SPELLED ITS WAY FIRST.\n * matcher.rs parses `exact:type=gc, verify` into values and `Display`s them joined by a bare\n * comma; a severity item is split, trimmed and re-joined the same way. Without this a\n * declaration with a space after a comma would plan an update forever.\n */\nconst severity = (item: string): string =>\n item\n .split(',')\n .map((part) => part.trim())\n .filter((part) => part !== '')\n .sort()\n .join(',');\n\nconst field = (item: string): string => {\n if (!item.startsWith('exact:')) return item;\n const at = item.indexOf('=');\n if (at < 0) return item;\n const values = item.slice(at + 1).split(',');\n return `${item.slice(0, at)}=${values.map((value) => value.trim()).join(',')}`;\n};\n\nconst same = (item: string): string => item;\n\n/** A declaration's lists, canonical and sorted — the form `matches` compares. */\nexport const canonicalRules = (fields: NotificationMatcherFields) => ({\n 'match-calendar': items(fields['match-calendar'] ?? [], same).sort(),\n 'match-field': items(fields['match-field'] ?? [], field).sort(),\n 'match-severity': items(fields['match-severity'] ?? [], severity).sort(),\n targets: items(fields.targets, same).sort(),\n});\n\nexport const matcherAttributes = (\n live: Record<string, unknown>,\n name: string,\n): NotificationMatcherAttributes => ({\n comment: text(live['comment']),\n disable: bool(live['disable']),\n 'invert-match': bool(live['invert-match']),\n 'match-calendar': items(list(live['match-calendar']), same).sort(),\n 'match-field': items(list(live['match-field']), field).sort(),\n 'match-severity': items(list(live['match-severity']), severity).sort(),\n // ⚠️ ABSENT IS `all` — matcher.rs `mode.unwrap_or_default()`, and `All` is the default variant.\n mode: text(live['mode'], 'all') || 'all',\n name,\n origin: text(live['origin']),\n targets: items(list(live['target']), same).sort(),\n});\n\nconst equal = (a: readonly string[], b: readonly string[]): boolean =>\n a.length === b.length && a.every((item, index) => item === b[index]);\n\nexport const matcherMatches = (\n attributes: NotificationMatcherAttributes,\n fields: NotificationMatcherFields,\n): boolean => {\n const rules = canonicalRules(fields);\n return (\n attributes.disable === (fields.disable === true) &&\n attributes['invert-match'] === (fields['invert-match'] === true) &&\n attributes.mode === (fields.mode ?? 'all') &&\n equal(attributes.targets, rules.targets) &&\n equal(attributes['match-severity'], rules['match-severity']) &&\n equal(attributes['match-field'], rules['match-field']) &&\n equal(attributes['match-calendar'], rules['match-calendar']) &&\n (fields.comment === undefined || attributes.comment === fields.comment)\n );\n};\n\ntype Deletable = NonNullable<ConfigNotificationsMatchersNamePutParams['delete']>[number];\ntype Lists = 'match-calendar' | 'match-field' | 'match-severity' | 'target';\n\n/**\n * The fields both forms send. ⚠️ LISTS GO AS ARRAYS — REPEATED KEYS ON THE WIRE (client.ts\n * `encode`) — because every list here is `type: array` on both servers, and a comma inside a\n * severity item or an `exact:` rule means a comma-joined string could not carry them anyway.\n */\nconst always = (fields: NotificationMatcherFields) => ({\n disable: fields.disable === true ? ('1' as const) : ('0' as const),\n 'invert-match': fields['invert-match'] === true ? ('1' as const) : ('0' as const),\n mode: fields.mode ?? ('all' as const),\n});\n\nconst lists = (fields: NotificationMatcherFields): Partial<Record<Lists, readonly string[]>> => {\n const rules = canonicalRules(fields);\n const out: Partial<Record<Lists, readonly string[]>> = {};\n if (rules['match-calendar'].length > 0) out['match-calendar'] = rules['match-calendar'];\n if (rules['match-field'].length > 0) out['match-field'] = rules['match-field'];\n if (rules['match-severity'].length > 0) out['match-severity'] = rules['match-severity'];\n if (rules.targets.length > 0) out.target = rules.targets;\n return out;\n};\n\nexport type MatcherCreateForm = ConfigNotificationsMatchersPostParams &\n ClusterNotificationsMatchersPostParams;\nexport type MatcherUpdateForm = ConfigNotificationsMatchersNamePutParams &\n ClusterNotificationsMatchersNamePutParams;\n\n/** ⛔ `name` is create-only: the body carries it once and the path forever after. */\nexport const matcherCreateForm = (fields: NotificationMatcherFields): MatcherCreateForm => ({\n ...always(fields),\n ...lists(fields),\n ...(fields.comment === undefined || fields.comment === '' ? {} : { comment: fields.comment }),\n name: fields.name,\n});\n\n/**\n * ⛔ AN EMPTIED LIST IS A `delete`, NOT AN EMPTY VALUE. A form cannot carry an empty array — no\n * key is sent at all — so without the `delete` entry a declaration of `'match-field': []`\n * would plan an update, PUT nothing for that field, and plan the same update forever.\n */\nexport const matcherUpdateForm = (fields: NotificationMatcherFields): MatcherUpdateForm => {\n const present = lists(fields);\n const cleared: Deletable[] = (\n ['match-calendar', 'match-field', 'match-severity', 'target'] as const\n ).filter((key) => present[key] === undefined);\n if (fields.comment === '') cleared.push('comment');\n return {\n ...always(fields),\n ...present,\n ...(fields.comment === undefined || fields.comment === '' ? {} : { comment: fields.comment }),\n ...(cleared.length === 0 ? {} : { delete: cleared }),\n };\n};\n",
|
|
86
87
|
"/**\n * `Proxmox.NotificationTarget` — where a failed backup goes to be seen.\n *\n * ★ THE FAILURE MODE THIS REMOVES IS SILENCE. A failed vzdump, a lost HA service and a broken\n * replication job all reach a human through one mechanism: a notification target. Out of the box\n * a cluster has exactly one, the built-in `mail-to-root` — one mailbox, on one node, delivered by\n * that node's local MTA. Declared, a failure becomes visible; undeclared, nothing looks wrong\n * until somebody goes looking for a backup that was never taken. Every other resource in this\n * package fails loudly. This is the one whose absence fails quietly.\n *\n * ⛔ THE PER-OBJECT READ GOES THROUGH `endpoints/{type}/{name}`, NEVER `targets/{name}`.\n * `GET /cluster/notifications/targets/{name}` answers \"Method not implemented\" — MEASURED, and\n * corroborated by the cluster's own apidoc, where that path node carries no methods at all.\n * `/targets` is a READ-ONLY UNION VIEW implementing the collection GET and `{name}/test` and\n * nothing else. So `type` is IDENTITY here, not a setting: it appears in both `path()` and\n * `collection()`, and changing it is a replace rather than an update.\n *\n * ⚠️ A BUILT-IN TARGET CAN BE ADOPTED AND STILL NOT BE OWNED. The shipped entries report\n * `origin: builtin` or `modified-builtin`, and a DELETE on one REVERTS it to shipped defaults\n * instead of removing it: Alchemy drops the resource from state while the target is still on the\n * cluster delivering mail. Check `origin` on `/cluster/notifications/targets` before declaring a\n * name you did not create. ⚠️ `origin` IS DELIBERATELY NOT AN ATTRIBUTE — the schema returns it\n * on the collection view only, never on the per-object read, so an attribute would read \"unknown\"\n * for every object forever, and an attribute that always lies is worse than a true comment.\n *\n * ⛔ NO SECRET IS A PROP, LET ALONE AN ATTRIBUTE. smtp `password`, gotify `token` and webhook\n * `secret` are write-only and none is declarable here. Props are persisted too, not just\n * attributes — `delete` is handed `olds`, which can only have come from the state store — so a\n * secret prop would sit unencrypted in the state Postgres for as long as the resource exists.\n * ⚠️ THE COST IS REAL: `token` is REQUIRED on a gotify create, so a gotify target cannot be\n * created from here at all. Create one out of band with its secret and then declare it — the\n * read finds it, reconcile takes the PUT path, and PVE leaves any field the body does not\n * mention alone. The secret half stays a human's; the rest is declared. Same for an\n * authenticated smtp target and a signed webhook.\n *\n * ★ WHAT THIS NEEDS, READ OFF THE CLUSTER'S OWN SCHEMA:\n * read/diff GET endpoints/{type}/{name} Mapping.Audit (or Mapping.Modify) on\n * /mapping/notifications\n * reconcile POST + PUT Mapping.Modify on /mapping/notifications AND one of\n * Sys.Audit / Sys.Modify / Sys.AccessNetwork on /\n * delete DELETE Mapping.Modify on /mapping/notifications\n * The provision role already carried Sys.Audit on `/` (see lxc.ts), so the delta was the two\n * Mapping privileges — notably NOT the `Sys.Modify` a backup job costs. `PROVISION_PRIVILEGES`\n * carries both on `/`: the baseline took the trade below knowingly.\n * ⚠️ PREFER A SECOND ROLE GRANTED AT `/mapping/notifications` OVER WIDENING THE PROVISIONING ROLE\n * ON `/`. `/mapping` also holds the PCI and USB passthrough maps, so Mapping.Modify at the root\n * lets a credential scoped to make containers rewire somebody's hardware.\n * ⛔ A MISSING READ PRIVILEGE DOES NOT LOOK LIKE A 403. `pveOperations.read` ends in\n * `orElseSucceed(() => undefined)`, so a 403 on the GET is indistinguishable from \"absent\": the\n * plan says create, PVE answers \"already exists\", and the fault was an ACL all along. That pair\n * is the signature — grant Mapping.Audit to the READ role before changing anything else.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport { targetEndpoint } from './notification-target-endpoint.ts';\nimport { addressList, createShape, headerList, portOf, shape } from './notification-target-form.ts';\nimport { type PveRequirements, type WithTarget, pveHandlers } from './resource.ts';\nimport { text } from './values.ts';\n\n/** The four families PVE ships. `GET /cluster/notifications/endpoints` lists exactly these. */\nexport type NotificationTargetType = 'gotify' | 'sendmail' | 'smtp' | 'webhook';\n\n/**\n * ⚠️ PVE'S OWN KEY NAMES, DASHES INCLUDED, for the reason backup-job.ts gives: the form is then a\n * copy rather than a translation table, and a translation table is one more place for a key to be\n * renamed and silently never sent.\n *\n * ⚠️ A FIELD THAT DOES NOT BELONG TO `type` IS STILL SENT, and PVE refuses it by name. That 400\n * beats this file quietly dropping a `mailto` somebody wrote on a webhook.\n */\nexport interface NotificationTargetProps extends WithTarget {\n /** ⛔ IDENTITY: it picks the family AND the URL, so changing it is a replace. */\n type: NotificationTargetType;\n /**\n * PVE's primary key, unique ACROSS ALL FOUR FAMILIES: a webhook cannot be called `mail-to-root`,\n * because a sendmail target already is. Format `pve-configid`.\n */\n name: string;\n /** Free text in the UI. */\n comment?: string;\n /** Configured but not delivering. Always sent and always compared — see `shape`. */\n disable?: boolean;\n /** sendmail, smtp: recipients. ⚠️ Order is not meaning — see `addressList`. */\n mailto?: readonly string[];\n /** sendmail, smtp: PVE users, whose own configured address receives the mail. */\n 'mailto-user'?: readonly string[];\n /** smtp: the SMTP host. gotify: the server URL. PVE requires it on create for both. */\n server?: string;\n /** smtp only. Unset lets PVE pick from `mode`: 465 tls, 587 starttls, 25 insecure. */\n port?: number;\n /** smtp only. PVE's schema default is `tls`. */\n mode?: 'insecure' | 'starttls' | 'tls';\n /** smtp only. ⛔ The matching `password` is not declarable — see the header. */\n username?: string;\n /** smtp: PVE requires it on create. sendmail: optional. */\n 'from-address'?: string;\n /** Display name on the mail. PVE's smtp schema defaults it to `Proxmox VE`. */\n author?: string;\n /** webhook: PVE requires it on create. */\n url?: string;\n /** webhook: PVE requires it on create. Lower case — PVE's enum is `post|put|get`. */\n method?: 'get' | 'post' | 'put';\n /**\n * webhook: `name=<name>,value=<base64 of value>` property strings, as PVE stores them.\n * ⚠️ MORE THAN ONE HEADER IS THE ONE THING HERE NOT PROVEN ON A WIRE — see `REPEATED_KEY`.\n */\n header?: readonly string[];\n /**\n * webhook: the request body, base64, as PVE stores it.\n * ⚠️ THE UI SHOWS THE DECODED BODY AND THIS DOES NOT. Declaring the base64 is what keeps\n * `matches` symmetric with the read; decoding for display would mean encoding on write, and a\n * round trip PVE normalises differently is a forever-update. The cost is an unreadable diff.\n */\n body?: string;\n}\n\n/**\n * ⚠️ EVERY FIELD IS PRESENT FOR EVERY FAMILY, with `''` / `0` meaning \"PVE holds nothing\". A\n * webhook reads back an empty `mailto`, which is also what a webhook declares, so the\n * cross-family fields cost one comparison each and never a false update.\n */\nexport interface NotificationTargetAttributes {\n name: string;\n type: NotificationTargetType;\n comment: string;\n disable: boolean;\n /** Sorted and comma-joined, so re-ordering a declaration is not a diff. See `addressList`. */\n mailto: string;\n 'mailto-user': string;\n server: string;\n /** 0 means PVE holds no port and will pick one from `mode`. */\n port: number;\n mode: string;\n username: string;\n 'from-address': string;\n author: string;\n url: string;\n method: string;\n /** Sorted and comma-joined for COMPARISON only; the wire form differs. See `headerList`. */\n header: string;\n body: string;\n}\n\nexport interface ProxmoxNotificationTarget extends Resource<\n 'Proxmox.NotificationTarget',\n NotificationTargetProps,\n NotificationTargetAttributes,\n never,\n PveRequirements\n> {}\n\nexport const ProxmoxNotificationTarget = Resource<ProxmoxNotificationTarget>(\n 'Proxmox.NotificationTarget',\n);\n\nconst handlers = pveHandlers<NotificationTargetProps, NotificationTargetAttributes>({\n /**\n * ⛔ NAMED FIELDS, NEVER A SPREAD OF `live`. gotify's `token` and smtp's `password` really are\n * absent from their read schemas — but webhook's read schema DECLARES `secret`, so \"PVE will\n * not hand it to us\" is not a defence. Listing what is kept is what keeps secret material out\n * of a state row, whatever a future PVE decides to start returning.\n */\n attributes: (live, props) => ({\n author: text(live['author']),\n body: text(live['body']),\n comment: text(live['comment']),\n disable: live['disable'] === 1 || live['disable'] === true,\n 'from-address': text(live['from-address']),\n header: headerList(live['header']),\n mailto: addressList(live['mailto']),\n 'mailto-user': addressList(live['mailto-user']),\n method: text(live['method']),\n mode: text(live['mode']),\n name: props.name,\n port: portOf(live['port']),\n server: text(live['server']),\n type: props.type,\n url: text(live['url']),\n username: text(live['username']),\n }),\n collection: (props) => `cluster/notifications/endpoints/${props.type}`,\n /** ⛔ `name` is create-only: PVE takes it in the body once, and in the path forever after. */\n createForm: createShape,\n /** ⚠️ A function, because the type picks the endpoint — see `targetEndpoint`. */\n endpoint: targetEndpoint,\n /**\n * Each line reads \"not declared, or equal\"; `disable` is the one field with no undeclared case.\n *\n * ⚠️ IF A PLAN NEVER SETTLES, SUSPECT A SCHEMA DEFAULT COMING BACK AS A VALUE. PVE defaults smtp\n * `mode` to `tls` and smtp `author` to `Proxmox VE`, and applies both when the mail is sent\n * rather than writing them into the config — so an undeclared field reads back empty and its\n * line is skipped. A version that STORED them would answer with a field nobody declared. The\n * fix is to declare the field, never to stop comparing it.\n */\n matches: (attributes, props) =>\n attributes.disable === (props.disable === true) &&\n (props.comment === undefined || attributes.comment === props.comment) &&\n (props.server === undefined || attributes.server === props.server) &&\n (props.port === undefined || attributes.port === props.port) &&\n (props.mode === undefined || attributes.mode === props.mode) &&\n (props.username === undefined || attributes.username === props.username) &&\n (props['from-address'] === undefined || attributes['from-address'] === props['from-address']) &&\n (props.author === undefined || attributes.author === props.author) &&\n (props.url === undefined || attributes.url === props.url) &&\n (props.method === undefined || attributes.method === props.method) &&\n (props.body === undefined || attributes.body === props.body) &&\n (props.mailto === undefined || attributes.mailto === addressList(props.mailto)) &&\n (props['mailto-user'] === undefined ||\n attributes['mailto-user'] === addressList(props['mailto-user'])) &&\n (props.header === undefined || attributes.header === headerList(props.header)),\n path: (props) => `cluster/notifications/endpoints/${props.type}/${props.name}`,\n updateForm: shape,\n});\n\n/**\n * ⚠️ ON A BUILT-IN TARGET A DELETE REVERTS RATHER THAN REMOVES, and PVE reports success either way.\n * It is passed through unguarded because everywhere else in this package the cluster's answer is\n * the answer — but this is the one case where a green plan and the cluster disagree, and the\n * object left standing is the one carrying the estate's failure mail.\n */\nexport const ProxmoxNotificationTargetProvider = () =>\n Provider.effect(\n ProxmoxNotificationTarget,\n Effect.succeed(ProxmoxNotificationTarget.Provider.of(handlers)),\n );\n",
|
|
@@ -128,7 +129,7 @@
|
|
|
128
129
|
"/**\n * `Proxmox.ZfsPool`'s READ side: the live-to-attributes shape, the read itself, and `matches`.\n * Split out of zfs-pool.ts (2026-09-24, the distilled migration) — the storage.ts/storage-wire.ts\n * seam; the write side is zfs-pool-form.ts.\n */\nimport * as nodes from '@distilled.cloud/proxmox/nodes';\nimport * as Effect from 'effect/Effect';\nimport { runPve } from './distilled-pve.ts';\nimport type { ZfsPoolProps } from './zfs-pool.ts';\nimport { UNREADABLE, type Unreadable, readOrUnreadable } from './unreadable-read.ts';\nimport { text } from './values.ts';\n\n/**\n * ⚠️ EVERYTHING HERE IS REPORTED, NOTHING HERE IS COMPARED — see the ⛔ on `matches` below. These\n * exist so a plan and the state store can say what the pool actually is, on a family where the\n * declaration and the live object share no comparable field at all.\n */\nexport interface ZfsPoolAttributes {\n /** ★ The value a `Proxmox.Storage` should read to order itself after this pool. */\n name: string;\n node: string;\n /** `ONLINE` | `DEGRADED` | `FAULTED` | … Health, not configuration. */\n state: string;\n /** ZFS's own error summary, e.g. `No known data errors`. */\n errors: string;\n /**\n * The leaf devices ZFS reports, in vdev order, comma-joined.\n *\n * ⚠️ THIS IS WHAT ZFS RESOLVED, NOT WHAT WAS DECLARED, and the two normally differ: PVE rewrites\n * a `/dev/sdb` into a by-id link before creating, and ZFS reports partition paths (`…-part3`)\n * for a pool built on partitions — MEASURED, that is exactly what node-b's `rpool` reports.\n * Never compare it with `props.devices`.\n */\n devices: string;\n}\n\n/**\n * The device paths at the bottom of PVE's vdev tree, in the order ZFS reports them.\n *\n * ⚠️ \"NO CHILDREN\" IS THE LEAF TEST, AND IT IS NOT A GUESS — MEASURED in the node's `preparetree`,\n * which sets `leaf` to 0 when there are children and 1 otherwise. Reading the flag would work\n * equally well; recursing on `children` needs no second field to be present and is what makes\n * nested sections (mirrors inside a raid10, `spares`, `cache`) flatten correctly.\n */\nexport const leafDevices = (children: unknown): string[] =>\n Array.isArray(children)\n ? children.flatMap((entry: unknown) => {\n const vdev = entry as { children?: unknown; name?: unknown };\n const nested = leafDevices(vdev.children);\n return nested.length > 0 ? nested : [text(vdev.name)].filter((name) => name !== '');\n })\n : [];\n\n/**\n * ⚠️ `scan`, `status` AND `action` ARE DELIBERATELY NOT ATTRIBUTES. All three are advisory strings\n * ZFS rewrites on its own — `scan` on every scrub, the other two as feature flags and faults come\n * and go — so keeping them would rewrite this resource's state row for reasons no declaration\n * caused. Same reasoning as `digest` in storage.ts.\n */\nconst attributesOf = (\n live: nodes.GetNodeDiskZfsResponse,\n props: ZfsPoolProps,\n): ZfsPoolAttributes => ({\n devices: leafDevices(live.children).join(','),\n errors: text(live.errors, 'unknown'),\n name: props.name,\n node: props.node,\n state: text(live.state, 'unknown'),\n});\n\n/**\n * ★ Default `read` role — `Sys.Audit` on `/` is all this GET checks (zfs-pool.ts's header).\n * ⛔ `{ node: props.node, name: props.name }`, NEVER THE WHOLE `props` — storage.ts's/user.ts's own\n * ⛔, the kit 0.31.1 regression: `GetNodeDiskZfsRequest`'s schema declares only `node` and `name`\n * (both path labels); any OTHER key on the object passed to `nodes.getNodeDiskZfs` is treated by\n * distilled's `buildRequest` as an \"unknown key\" and JSON-encoded onto this bodyless GET, which a\n * stricter fetch client refuses outright.\n * ⛔ A MISSING POOL IS A 500, NOT A 404 — MEASURED against the live cluster (TB4 n2, 2026-09-24,\n * read-role, read-only probe): `GET /nodes/n2/disks/zfs/hf-measure-nonexistent-pool` answers\n * `{\"message\":\"command '/sbin/zpool status -P hf-measure-nonexistent-pool' failed: exit code\n * 1\\n\",\"data\":null}` at HTTP 500 — PVE shells out to `zpool status` and reports its exit code\n * as a generic command failure, not a typed \"not found\". The same shape as user.ts's/group.ts's/\n * storage.ts's own measured 500s. `readPool` below (used by `createPool`'s settle-poll and by\n * `reconcile`/`read`) still folds it, exactly as `readUser`/`readGroup`/`readStorage` do — the\n * whole reason `createPool` can tell \"not built yet\" from \"forbidden\" only by giving up after\n * `SETTLE_ATTEMPTS` (zfs-pool-form.ts's own ⚠️ on that); `readPoolOrFail` (used by `diff`) does\n * not fold it, so a genuine transient failure there propagates and fails the plan loudly instead.\n */\nexport const readPoolOrFail = (props: ZfsPoolProps) =>\n readOrUnreadable(\n runPve(\n props.target,\n 'read',\n false,\n nodes.getNodeDiskZfs({ name: props.name, node: props.node }),\n ),\n ).pipe(\n Effect.map((live) => {\n if (live === UNREADABLE) return UNREADABLE;\n // ⚠️ A detail answer with no `name` is not a pool — same shape check zfs-pool-spec.ts made,\n // kept as a defensive fallback now that the 500 above is the measured absence signal.\n return text(live.name) === '' ? undefined : attributesOf(live, props);\n }),\n );\n\n/**\n * ⛔ FOLDS A GENUINE READ FAILURE TO `undefined` TOO, AND ONLY `createPool`'s settle-poll AND\n * `read`/`reconcile` MAY USE IT — user.ts's `readUser` has the full reasoning. Safe here because\n * a wrongful fold during create costs at most a redundant `createNodeDiskZfs` POST, which PVE\n * refuses loudly (\"pool already exists\") rather than silently corrupting anything — zfs-pool.ts's\n * own header, measured.\n * ⛔ `zfs-pool.ts`'s `diff` does **NOT** use this — the same bug class as the credential denial fix:\n * folding a TRANSIENT failure into \"absent\" at PLAN TIME would force a false `update` with\n * nothing compared. `diff` calls `readPoolOrFail` directly, so a genuine failure there propagates\n * and fails the whole plan loudly instead.\n */\nexport const readPool = (props: ZfsPoolProps) =>\n readPoolOrFail(props).pipe(Effect.orElseSucceed(() => undefined));\n\n/** `read`/`reconcile`/`createPool` return `Attributes | undefined`; only `diff` sees `UNREADABLE`. */\nexport const dropUnreadable = (live: ZfsPoolAttributes | Unreadable | undefined) =>\n live === UNREADABLE ? undefined : live;\n\n/**\n * ⛔ THERE IS NO `matches` FUNCTION HERE — UNLIKE EVERY OTHER MIGRATED FAMILY, AND DELIBERATELY.\n * Every create parameter on this family is write-only (this file's own `attributesOf`), so\n * there is nothing a declaration and a live pool can ever be compared on — a `matches` that\n * invented one would plan a replace (`zpool destroy`, since this family has no PUT) over a\n * difference it could never verify. `zfs-pool.ts`'s `diff` returns `noop` unconditionally once a\n * pool is found, rather than calling a function that would only ever return `true` — found by\n * adversarial review that an earlier draft exported one here anyway, unused by anything.\n */\n",
|
|
129
130
|
"/**\n * The create lane for `Proxmox.ZfsPool`: the form PVE wants, and the wait for the worker it forks.\n * Split out of zfs-pool.ts (2026-09-24, the distilled migration) — same seam as before, now naming\n * the write side the way storage.ts/storage-form.ts does.\n *\n * ⚠️ `createPool` TAKES THE READ AS A PARAMETER, GENERIC IN ITS ERROR AND REQUIREMENT CHANNELS,\n * rather than importing the read module and coupling to its exact effect shape here. This file\n * answers \"how does a declaration become a pool on disks\"; zfs-pool-wire.ts answers \"what is a\n * zpool, and when has it changed\" — the caller (zfs-pool.ts) is what ties the two together, so\n * this file cannot accidentally read the cluster differently from `diff`.\n */\nimport * as Effect from 'effect/Effect';\nimport * as nodes from '@distilled.cloud/proxmox/nodes';\nimport { asForm } from './distilled-guard.ts';\nimport { guardForm } from './constraint-guard.ts';\nimport { runPve } from './distilled-pve.ts';\nimport { text } from './values.ts';\nimport type { ZfsPoolAttributes, ZfsPoolProps } from './zfs-pool.ts';\nimport type { NodesNodeDisksZfsPostParams } from './generated/pve.ts';\n\nexport const ZFS_POOL_CREATE = 'pve:POST /nodes/{node}/disks/zfs';\n\n/**\n * PVE's layouts, generated (2026-09-23) from `NodesNodeDisksZfsPostParams['raidlevel']`\n * (`generated/pve.ts`, manifest `pve-apidoc` pve-manager 9.2.11 sha256 9def8f13…) rather than\n * hand-typed, per decision 9. ⚠️ Each has a minimum disk count PVE enforces, and `raid10` needs an\n * even one. ⛔ THERE IS NO `stripe` IN THIS ENUM. n1's `speed` pool is one (decision 14 accepts it\n * as-is): `ZfsPoolProps` (zfs-pool.ts) is why a stripe pool is declarable at all — as an\n * ADOPT-ONLY declaration with no `raidlevel`, never as a full one.\n */\nexport type ZfsRaidLevel = NonNullable<NodesNodeDisksZfsPostParams['raidlevel']>;\n\n/** Generated the same way, from `NodesNodeDisksZfsPostParams['compression']`. */\nexport type ZfsCompression = NonNullable<NodesNodeDisksZfsPostParams['compression']>;\n\n/**\n * ★ CHECKED AGAINST THE VENDOR TABLE ONLY FOR A FULL DECLARATION — decision 9's adopt-only mode.\n * `guardCreate` (distilled-guard.ts's `guardWrite`) runs on the FIRST plan of ANY declaration and\n * checks the create form's REQUIRED fields whenever this resolves to the real endpoint key — and\n * PVE marks both `devices` and `raidlevel` required (codegen/constraints's `pve-nodes-disks`\n * row). An adopt-only declaration deliberately omits both, so checking it would refuse a MATCHING\n * adoption at plan time, before `read` ever ran. Returning `undefined` (no key) makes the guard a\n * no-op for an adopt-only declaration, while a FULL one (`devices` and `raidlevel` both present)\n * is checked exactly as before — zfs-pool.ts's `diff` passes this as the `guardWrite` endpoint.\n * ⚠️ THE RUNTIME BACKSTOP IS `createPool` BELOW, NOT THIS FUNCTION. Skipping the plan-time guard\n * for an adopt-only declaration does not skip the check that the pool is actually there —\n * `createPool` refuses before any POST when the read comes back absent and either field is\n * undefined, which is what a genuinely absent adopt-only declaration hits at apply time.\n */\nexport const zfsPoolCreateEndpoint = (props: ZfsPoolProps) =>\n props.devices === undefined || props.raidlevel === undefined ? undefined : ZFS_POOL_CREATE;\n\n/**\n * The wire form, PVE's own field names — what `guardWrite` (zfs-pool.ts) checks.\n *\n * ⚠️ `devices` IS JOINED IN DECLARED ORDER AND NOT PUT THROUGH `csv()` FROM values.ts. `csv` sorts,\n * and PVE walks this list two at a time to pair `raid10` mirrors — MEASURED in the node's own\n * `PVE::API2::Disks::ZFS` — so sorting it builds a different pool from the one declared. The list\n * is never compared against anything, so it needs no normalisation, only faithful order.\n * ⚠️ AN OMITTED OPTIONAL IS NOT SENT. PVE's own defaults (ashift 12, compression on) are then\n * applied by the node. Sending a guessed default would be indistinguishable here — the values\n * are unreadable afterwards either way — but it would put a number in the request that no\n * declaration asked for, and this is the one call that writes to physical disks.\n * ⚠️ `node` IS NOT IN THE FORM: it is the `nodes/{node}` path label, and a second copy could only\n * disagree with it.\n * ⚠️ EVERY KEY IS OMITTED WHEN ABSENT, `devices` AND `raidlevel` INCLUDED — not just the optional\n * ones. An adopt-only declaration (both undefined, decision 9) must produce a form `createPool`'s\n * own guard can inspect for their absence, and one this function itself does not throw building.\n */\nexport const createForm = (props: ZfsPoolProps): Record<string, string> => ({\n ...(props.devices === undefined ? {} : { devices: props.devices.join(',') }),\n name: props.name,\n ...(props.raidlevel === undefined ? {} : { raidlevel: props.raidlevel }),\n ...(props.ashift === undefined ? {} : { ashift: String(props.ashift) }),\n ...(props.compression === undefined ? {} : { compression: props.compression }),\n ...(props['draid-config'] === undefined ? {} : { 'draid-config': props['draid-config'] }),\n});\n\n/**\n * The actual `createNodeDiskZfs` call body — `createForm` plus the `node` label, `draid-config`\n * renamed to distilled's `draid_config` (`T.Body(\"draid-config\")` on the generated schema; the\n * ONE hyphenated field this family's create form carries — storage-form.ts's `underscored` has\n * the fuller measurement, not repeated here for one field).\n *\n * ⚠️ `as unknown as` — `devices`/`raidlevel` are REQUIRED in distilled's generated\n * `CreateNodeDiskZfsRequest`, so an adopt-only form (both omitted) cannot satisfy it structurally\n * even though it is a valid PVE request for `guardWrite`'s purposes. `createPool` below refuses\n * before ever reaching this cast when either is genuinely missing, so the cast never carries a\n * request distilled's OWN required fields would reject in practice.\n */\nconst toDistilledCreate = (props: ZfsPoolProps): nodes.CreateNodeDiskZfsRequest => {\n const form = createForm(props);\n return {\n ...form,\n draid_config: form['draid-config'],\n node: props.node,\n } as unknown as nodes.CreateNodeDiskZfsRequest;\n};\n\n/** 30 reads, 2s apart. A create that has not landed in a minute has gone wrong, not gone slow. */\nconst SETTLE_ATTEMPTS = 30;\n\n/**\n * Create the pool if it is absent, and otherwise leave it completely alone.\n *\n * ⛔ THE POST ONLY FORKS A WORKER. MEASURED in `/usr/share/perl5/PVE/API2/Disks/ZFS.pm` on node-b:\n * the create handler ends in `$rpcenv->fork_worker('zfscreate', ...)` and its HTTP answer is a\n * UPID returned the instant the worker is forked — before `zpool create` has run, let alone\n * finished. A read-back taken immediately would report a successful create as the failure \"the\n * write returned no error but the object is still absent\". THAT is why this function polls.\n *\n * ⚠️ THERE IS NO UPDATE BRANCH BECAUSE PVE HAS NO PUT HERE. An existing pool is returned exactly as\n * read, unwritten: the only write this resource ever makes is the create of a pool that is not\n * there. Do not add a \"repair\" write; there is no field it could set.\n *\n * ⛔ AND IF THE READ IS WRONG, THE POST IS STILL SAFE — measured, not hoped for. `readPool` folds a\n * 403 or an unreachable node into \"absent\", so a too-narrow lease would send this down the create\n * path over a live pool. PVE's handler calls `get_pool_data()` before it forks anything and dies\n * with \"pool '<name>' already exists on node '<node>'\", and `assert_disk_unused` refuses every\n * device that pool is holding. A create aimed at a pool that is really there fails loudly rather\n * than wiping it.\n *\n * ⚠️ SHORT POLLS WITH A HARD CAP, NOT ONE LONG WAIT, NOT `@distilled.cloud/proxmox`'s `awaitTask`.\n * `readPool` cannot tell \"not yet\" from \"forbidden\" — both fold to `undefined` — so the loop\n * gives up with the UPID rather than retrying forever, and the UPID is the only thing that leads\n * to the worker's real error. Distilled's own task-status poller exists (`Task.ts`) and would\n * remove this ambiguity, but swapping to it changes this resource's OBSERVABLE behaviour (what a\n * caller sees on a slow create) beyond a transport swap — left as a follow-up, not folded into a\n * migration PR silently.\n *\n * ⛔ THE SAME AMBIGUITY MAKES A RE-RUN AFTER THE GIVE-UP DIE GENUINELY UNSAFE, NOT MERELY SLOW TO\n * CONFIRM — FOUND BY ADVERSARIAL REVIEW, 2026-09-24, of THIS migration, though the shape is\n * unchanged from before it (`git blame` shows the same settle-poll pre-dates this PR). \"If the\n * read is wrong, the POST is still safe\" above is true for the FIRST call into this function —\n * PVE's own `get_pool_data()` refuses a create over a pool it can already see. It is NOT true\n * for a SECOND deploy attempt started while the FIRST worker is still mid-`zpool create`: that\n * worker has not yet made the pool visible to a read, so `existing = yield* read(props)` at the\n * top of THIS call can also fold to `undefined` — not because the pool is gone, but because the\n * first attempt has not finished — and this function would POST a SECOND `zpool create` at the\n * SAME devices while the first is still writing them. There is no lock or marker anywhere in\n * this package that would stop it. The give-up message below says so explicitly and names the\n * task log to check FIRST; that message, and an operator reading it, are the only safeguard.\n *\n * ⛔ THE ADOPT-ONLY GUARD, RIGHT AFTER THE READ AND BEFORE ANYTHING ELSE. Decision 9 (2026-09-23):\n * omitting `devices` and `raidlevel` declares a pool this resource may only ADOPT, for a pool\n * PVE's own schema cannot fully describe — n1's `speed` is a stripe, and `raidlevel`'s enum has\n * no stripe (zfs-pool.ts). `zfsPoolCreateEndpoint` above already keeps the vendor constraint\n * guard from refusing such a declaration at PLAN time; this is the matching refusal at APPLY\n * time, for the one case that guard cannot see — the pool genuinely is not there.\n */\nexport const createPool = <E, R>(\n props: ZfsPoolProps,\n read: (props: ZfsPoolProps) => Effect.Effect<ZfsPoolAttributes | undefined, E, R>,\n) =>\n Effect.gen(function* () {\n const existing = yield* read(props);\n if (existing !== undefined) return existing;\n\n if (props.devices === undefined || props.raidlevel === undefined) {\n return yield* Effect.die(\n new Error(\n `${props.node}/${props.name}: this is an adopt-only declaration (no \\`devices\\` or ` +\n '`raidlevel`) and the pool is not there to adopt. An adopt-only Proxmox.ZfsPool never ' +\n 'creates -- declare both fields for a pool this resource should build, or point this ' +\n 'declaration at a pool that already exists on this node.',\n ),\n );\n }\n\n /**\n * ⛔ FOUND BY ADVERSARIAL REVIEW, 2026-09-24 — `diff` NEVER RUNS FOR A GENUINELY FIRST-EVER\n * DECLARATION. Upstream `Plan.ts` routes a brand-new resource (`oldState === undefined`)\n * straight to `action: 'create'` without ever calling `provider.diff` — so `zfs-pool.ts`'s\n * own `guardForm` call (which checks THIS SAME form) never runs for that plan, and this was\n * THE ONLY WRITE PATH IN THE FAMILY WITH NO VENDOR CHECK AT ALL, before or after this\n * migration. `ceph-pool.ts`'s own hand-written `reconcile` already re-runs its create guard\n * for exactly this reason (an ADOPTED row's `diff` answer is discarded by Plan.ts too); this\n * is the same fix for this family. A malformed `ashift` or `draid-config` is now refused\n * here, before the POST, rather than reaching the wire and refused only by PVE itself.\n */\n yield* guardForm(zfsPoolCreateEndpoint(props), asForm(createForm(props)), true);\n\n const upid = yield* runPve(\n props.target,\n 'provision',\n true,\n nodes.createNodeDiskZfs(toDistilledCreate(props)),\n );\n\n const settle = (attempts: number): Effect.Effect<ZfsPoolAttributes | undefined, E, R> =>\n Effect.gen(function* () {\n const live = yield* read(props);\n if (live !== undefined || attempts <= 0) return live;\n yield* Effect.sleep('2 seconds');\n return yield* settle(attempts - 1);\n });\n\n const after = yield* settle(SETTLE_ATTEMPTS);\n if (after === undefined) {\n return yield* Effect.die(\n new Error(\n `nodes/${props.node}/disks/zfs/${props.name}: POST returned ${text(upid, '(no UPID)')} ` +\n 'but the pool has not appeared. That POST only forks a `zfscreate` worker, so the task ' +\n `holds the real error -- read it with \\`pvesh get /nodes/${props.node}/tasks/<upid>/log\\`. ` +\n 'NOTHING WAS RETRIED AND NOTHING WAS CLEANED UP: if the worker reached `zpool create`, ' +\n 'the declared devices have already been written to. DO NOT RE-RUN THIS DEPLOY BEFORE ' +\n 'READING THAT LOG: `read` cannot tell \"the worker is still running\" from \"the pool is ' +\n 'genuinely gone\", so a re-run this soon can POST a SECOND `zpool create` at the SAME ' +\n 'devices while the first one is still mid-write -- confirm the task finished (one way ' +\n 'or the other) before trying again.',\n ),\n );\n }\n return after;\n });\n\n/**\n * ⛔ `DELETE /nodes/{node}/disks/zfs/{name}` RUNS `zpool destroy` AND THE DATASETS GO WITH IT. Per\n * S14 (alchemy-provider-standard), it is implemented rather than stubbed — a `delete` that\n * silently does nothing lies to whoever reads the plan — and what keeps an ordinary removed\n * declaration from reaching it is the resource's `defaultRemovalPolicy: 'retain'` (zfs-pool.ts):\n * an orphaned pool is forgotten, not destroyed, unless a caller opts in with\n * `.pipe(RemovalPolicy.destroy())`. See the corrected header in zfs-pool.ts.\n *\n * ⚠️ `cleanup-config`/`cleanup-disks` ARE NOT SENT. The first would additionally remove the PVE\n * storage entry pointing at this pool, which is a different object with its own resource\n * (`Proxmox.Storage`); one resource reaching over to delete another's is how a stack ends up with\n * state describing something that is gone. Neither is offered as a prop, for the same reason.\n */\nexport const destroyPool = (props: ZfsPoolProps) =>\n runPve(\n props.target,\n 'provision',\n true,\n nodes.deleteNodeDiskZfs({ name: props.name, node: props.node }),\n );\n"
|
|
130
131
|
],
|
|
131
|
-
"mappings": ";AA4CA;AACA;AACA;AACA;AACA;;;ACpCA;;;AC4EA,IAAM,WAAW,CAAC,UAA0B,CAAC,GAAG,KAAK,EAAE;AAQvD,IAAM,aAAa,CAAC,MAAc,OAAe,SAAoC;AAAA,EACnF,MAAM,MAAgB,CAAC;AAAA,EACvB,IAAI,KAAK,cAAc,aAAa,SAAS,KAAK,IAAI,KAAK,WAAW;AAAA,IACpE,IAAI,KAAK,GAAG,iBAAiB,KAAK,sBAAsB;AAAA,EAC1D;AAAA,EACA,IAAI,KAAK,cAAc,aAAa,SAAS,KAAK,IAAI,KAAK,WAAW;AAAA,IACpE,IAAI,KAAK,GAAG,kBAAkB,KAAK,sBAAsB;AAAA,EAC3D;AAAA,EACA,IAAI,KAAK,SAAS,aAAa,CAAC,KAAK,KAAK,SAAS,KAAK,GAAG;AAAA,IACzD,IAAI,KAAK,GAAG,wBAAwB,KAAK,KAAK,KAAK,IAAI,GAAG;AAAA,EAC5D;AAAA,EAGA,IAAI,KAAK,YAAY,aAAa,CAAC,IAAI,OAAO,KAAK,SAAS,KAAK,YAAY,EAAE,KAAK,KAAK,GAAG;AAAA,IAC1F,IAAI,KAAK,GAAG,oBAAoB,KAAK,iBAAiB,KAAK,SAAS;AAAA,EACtE;AAAA,EAIA,MAAM,UAAU,OAAO,KAAK;AAAA,EAC5B,MAAM,UAAU,KAAK,YAAY,aAAa,KAAK,YAAY;AAAA,EAC/D,IAAI,WAAW,UAAU,MAAM,OAAO,SAAS,OAAO,GAAG;AAAA,IACvD,IAAI,KAAK,YAAY,aAAa,UAAU,KAAK,SAAS;AAAA,MACxD,IAAI,KAAK,GAAG,kBAAkB,KAAK,SAAS;AAAA,IAC9C;AAAA,IACA,IAAI,KAAK,YAAY,aAAa,UAAU,KAAK,SAAS;AAAA,MACxD,IAAI,KAAK,GAAG,iBAAiB,KAAK,SAAS;AAAA,IAC7C;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAUF,IAAM,aAAa,CACxB,OACA,MACA,UAA4B,CAAC,MACP;AAAA,EACtB,MAAM,MAAgB,CAAC;AAAA,EACvB,YAAY,MAAM,SAAS,OAAO,QAAQ,KAAK,GAAG;AAAA,IAChD,MAAM,QAAQ,KAAK;AAAA,IACnB,IAAI,UAAU,WAAW;AAAA,MACvB,IAAI,QAAQ,aAAa,QAAQ,KAAK,aAAa;AAAA,QAAM,IAAI,KAAK,GAAG,gBAAgB;AAAA,MACrF;AAAA,IACF;AAAA,IAEA,WAAW,QAAQ,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI,OAAO;AAAA,MAC9D,IAAI,KAAK,GAAG,WAAW,MAAM,MAAM,IAAI,CAAC;AAAA,IAC1C;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,UAAU,CAAC,UAAuB,UAC7C,GAAG;AAAA,MAAkD,MAAM,KAAK;AAAA,KAAQ;AAAA,IACxE,uEACA;;;ACzIK,IAAM,yBAAwE;AAAA,EACnF,2BAA2B;AAAA,IACzB,SAAW,EAAC,QAAS,eAAc,UAAW,MAAK,MAAO,SAAQ;AAAA,EACpE;AAAA,EACA,0BAA0B;AAAA,IACxB,OAAS,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAClD,QAAU,EAAC,QAAS,cAAa,UAAW,MAAK,MAAO,SAAQ;AAAA,EAClE;AAAA,EACA,0BAA0B;AAAA,IACxB,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,OAAS,EAAC,QAAS,aAAY,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC9D,QAAU,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IACvC,WAAa,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,MAAQ,EAAC,SAAU,+BAA8B,eAAgB,yBAAwB,MAAO,SAAQ;AAAA,IACxG,UAAY,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC7C,UAAY,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACzD,QAAU,EAAC,QAAS,cAAa,WAAY,IAAG,UAAW,MAAK,MAAO,SAAQ;AAAA,EACjF;AAAA,EACA,uBAAuB;AAAA,IACrB,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,MAAQ,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,IACxC,OAAS,EAAC,QAAS,mBAAkB,UAAW,MAAK,MAAO,SAAQ;AAAA,IACpE,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,OAAS,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,EACtD;AAAA,EACA,oCAAoC,CAAC;AAAA,EACrC,kCAAkC;AAAA,IAChC,OAAS,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,EACpD;AAAA,EACA,kCAAkC;AAAA,IAChC,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,OAAS,EAAC,QAAS,aAAY,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC9D,QAAU,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IACvC,WAAa,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,MAAQ,EAAC,SAAU,+BAA8B,eAAgB,yBAAwB,MAAO,SAAQ;AAAA,IACxG,UAAY,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,EAC/C;AAAA,EACA,kDAAkD;AAAA,IAChD,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,QAAU,EAAC,SAAU,gBAAe,SAAU,GAAE,MAAO,UAAS;AAAA,EAClE;AACF;;;AC3CO,IAAM,iCAAgF;AAAA,EAC3F,4BAA4B;AAAA,IAC1B,SAAW,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,SAAW,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC3C,UAAY,EAAC,SAAU,KAAI,MAAO,CAAC,KAAI,KAAI,QAAO,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IAC/E,KAAO,EAAC,SAAU,+BAA8B,QAAS,wBAAuB,MAAO,SAAQ;AAAA,IAC/F,SAAW,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACpD,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IACvD,IAAM,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACjE,UAAY,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACzD,kBAAoB,EAAC,SAAU,UAAS,MAAO,CAAC,UAAS,SAAS,GAAE,MAAO,SAAQ;AAAA,IACnF,QAAU,EAAC,QAAS,0BAAyB,MAAO,SAAQ;AAAA,IAC5D,MAAQ,EAAC,SAAU,YAAW,MAAO,CAAC,YAAW,WAAU,MAAM,GAAE,MAAO,SAAQ;AAAA,IAClF,MAAQ,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC5C,kBAAkB,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IACnD,qBAAqB,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,mBAAkB,qBAAqB,GAAE,MAAO,SAAQ;AAAA,IAC9G,6BAA6B,EAAC,MAAO,CAAC,UAAS,QAAO,UAAU,GAAE,MAAO,SAAQ;AAAA,IACjF,aAAe,EAAC,QAAS,sBAAqB,MAAO,SAAQ;AAAA,IAC7D,iBAAiB,EAAC,SAAU,cAAa,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACjF,UAAY,EAAC,QAAS,sBAAqB,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC1E,WAAa,EAAC,SAAU,2BAA0B,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IACrG,UAAY,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACxD,SAAW,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACrD,MAAQ,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,EACnD;AAAA,EACA,gCAAgC;AAAA,IAC9B,SAAW,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,SAAW,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC3C,UAAY,EAAC,SAAU,KAAI,MAAO,CAAC,KAAI,KAAI,QAAO,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IAC/E,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,KAAO,EAAC,QAAS,wBAAuB,MAAO,SAAQ;AAAA,IACvD,SAAW,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACpD,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IACvD,QAAU,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACjE,UAAY,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACzD,kBAAoB,EAAC,SAAU,UAAS,MAAO,CAAC,UAAS,SAAS,GAAE,MAAO,SAAQ;AAAA,IACnF,QAAU,EAAC,QAAS,0BAAyB,MAAO,SAAQ;AAAA,IAC5D,MAAQ,EAAC,SAAU,YAAW,MAAO,CAAC,YAAW,WAAU,MAAM,GAAE,MAAO,SAAQ;AAAA,IAClF,MAAQ,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC5C,kBAAkB,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IACnD,qBAAqB,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,mBAAkB,qBAAqB,GAAE,MAAO,SAAQ;AAAA,IAC9G,6BAA6B,EAAC,MAAO,CAAC,UAAS,QAAO,UAAU,GAAE,MAAO,SAAQ;AAAA,IACjF,aAAe,EAAC,QAAS,sBAAqB,MAAO,SAAQ;AAAA,IAC7D,iBAAiB,EAAC,SAAU,cAAa,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACjF,UAAY,EAAC,QAAS,sBAAqB,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC1E,WAAa,EAAC,SAAU,2BAA0B,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IACrG,UAAY,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACxD,SAAW,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACrD,MAAQ,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,EACnD;AACF;;;ACnDO,IAAM,+BAA8E;AAAA,EACzF,sCAAsC;AAAA,IACpC,OAAS,EAAC,UAAW,MAAK,MAAO,UAAS;AAAA,EAC5C;AACF;;;ACJO,IAAM,mCAAkF;AAAA,EAC7F,sCAAsC;AAAA,IACpC,MAAQ,EAAC,QAAS,YAAW,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC5D,SAAW,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC1D,MAAQ,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,oCAAmC,eAAgB,8BAA6B,UAAW,MAAK,MAAO,SAAQ;AAAA,EACjK;AAAA,EACA,4CAA4C;AAAA,IAC1C,MAAQ,EAAC,QAAS,YAAW,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC5D,SAAW,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC1D,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,QAAU,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,oCAAmC,eAAgB,8BAA6B,MAAO,SAAQ;AAAA,EACnJ;AACF;;;ACZO,IAAM,6BAA4E;AAAA,EACvF,kCAAkC;AAAA,IAChC,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,OAAS,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IACjD,cAAgB,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAC3D,aAAe,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAC1D,KAAO,EAAC,QAAS,4BAA2B,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC3E,OAAS,EAAC,SAAU,WAAU,MAAO,CAAC,WAAU,WAAU,WAAU,YAAW,SAAS,GAAE,MAAO,SAAQ;AAAA,IACzG,MAAQ,EAAC,MAAO,CAAC,MAAK,IAAI,GAAE,MAAO,SAAQ;AAAA,EAC7C;AAAA,EACA,8BAA8B;AAAA,IAC5B,UAAY,EAAC,MAAO,CAAC,YAAW,UAAU,GAAE,MAAO,SAAQ;AAAA,IAC3D,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,WAAa,EAAC,QAAS,2BAA0B,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChF,MAAQ,EAAC,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,EAClE;AAAA,EACA,uCAAuC;AAAA,IACrC,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,OAAS,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IACjD,cAAgB,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAC3D,aAAe,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAC1D,OAAS,EAAC,SAAU,WAAU,MAAO,CAAC,WAAU,WAAU,WAAU,YAAW,SAAS,GAAE,MAAO,SAAQ;AAAA,EAC3G;AAAA,EACA,oCAAoC;AAAA,IAClC,UAAY,EAAC,MAAO,CAAC,YAAW,UAAU,GAAE,MAAO,SAAQ;AAAA,IAC3D,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,WAAa,EAAC,QAAS,2BAA0B,MAAO,SAAQ;AAAA,EAClE;AACF;;;AChCO,IAAM,kCAAiF;AAAA,EAC5F,yCAAyC;AAAA,IACvC,eAAiB,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,QAAO,OAAO,GAAE,MAAO,SAAQ;AAAA,IAC/E,iBAAiB,EAAC,SAAU,YAAW,SAAU,GAAE,MAAO,UAAS;AAAA,IACnE,KAAO,EAAC,SAAU,QAAO,SAAU,OAAM,SAAU,KAAI,MAAO,UAAS;AAAA,IACvE,oBAAoB,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,MAAM,GAAE,MAAO,SAAQ;AAAA,IAC5E,gBAAgB,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IACjD,sBAAsB,EAAC,SAAU,YAAW,SAAU,MAAK,MAAO,UAAS;AAAA,IAC3E,iBAAiB,EAAC,SAAU,SAAQ,MAAO,CAAC,QAAO,OAAO,GAAE,MAAO,SAAQ;AAAA,IAC3E,4BAA4B,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC7D,gBAAgB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,IACxE,MAAQ,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACjD,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,UAAW,MAAK,MAAO,UAAS;AAAA,IACrE,OAAS,EAAC,MAAO,CAAC,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,QAAS,WAAU,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7D,SAAW,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,MAAQ,EAAC,MAAO,CAAC,YAAW,YAAW,eAAe,GAAE,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,EACjH;AAAA,EACA,wCAAwC;AAAA,IACtC,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,eAAiB,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,QAAO,OAAO,GAAE,MAAO,SAAQ;AAAA,IAC/E,iBAAiB,EAAC,SAAU,YAAW,SAAU,GAAE,MAAO,UAAS;AAAA,IACnE,KAAO,EAAC,SAAU,QAAO,SAAU,OAAM,SAAU,KAAI,MAAO,UAAS;AAAA,IACvE,oBAAoB,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,MAAM,GAAE,MAAO,SAAQ;AAAA,IAC5E,gBAAgB,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IACjD,sBAAsB,EAAC,SAAU,YAAW,SAAU,MAAK,MAAO,UAAS;AAAA,IAC3E,iBAAiB,EAAC,SAAU,SAAQ,MAAO,CAAC,QAAO,OAAO,GAAE,MAAO,SAAQ;AAAA,IAC3E,4BAA4B,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC7D,gBAAgB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,IACxE,MAAQ,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACjD,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,UAAW,MAAK,MAAO,UAAS;AAAA,IACrE,OAAS,EAAC,MAAO,CAAC,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,QAAS,WAAU,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7D,SAAW,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,EACxD;AACF;;;ACpCO,IAAM,wCAAuF;AAAA,EAClG,oDAAoD;AAAA,IAClD,MAAQ,EAAC,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChE,QAAU,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC1C,OAAS,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC3C;AAAA,EACA,sDAAsD;AAAA,IACpD,QAAU,EAAC,MAAO,MAAK,QAAS,qBAAoB,MAAO,QAAO;AAAA,IAClE,eAAe,EAAC,MAAO,MAAK,QAAS,cAAa,MAAO,QAAO;AAAA,IAChE,MAAQ,EAAC,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,EAClE;AAAA,EACA,kDAAkD;AAAA,IAChD,gBAAgB,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChD,QAAU,EAAC,MAAO,MAAK,QAAS,qBAAoB,MAAO,QAAO;AAAA,IAClE,eAAe,EAAC,MAAO,MAAK,QAAS,cAAa,MAAO,QAAO;AAAA,IAChE,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,YAAW,YAAW,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7E,MAAQ,EAAC,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChE,QAAU,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC5C;AAAA,EACA,qDAAqD;AAAA,IACnD,QAAU,EAAC,MAAO,CAAC,QAAO,OAAM,KAAK,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IACtE,MAAQ,EAAC,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChE,KAAO,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,EACzC;AAAA,EACA,4CAA4C;AAAA,IAC1C,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7D,MAAQ,EAAC,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChE,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,EAC/D;AAAA,EACA,0DAA0D;AAAA,IACxD,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,IAC7D,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,EAC3C;AAAA,EACA,4DAA4D;AAAA,IAC1D,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,IAC7D,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,QAAU,EAAC,MAAO,MAAK,QAAS,qBAAoB,MAAO,QAAO;AAAA,IAClE,eAAe,EAAC,MAAO,MAAK,QAAS,cAAa,MAAO,QAAO;AAAA,EAClE;AAAA,EACA,wDAAwD;AAAA,IACtD,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,IAC7D,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,QAAU,EAAC,MAAO,MAAK,QAAS,qBAAoB,MAAO,QAAO;AAAA,IAClE,eAAe,EAAC,MAAO,MAAK,QAAS,cAAa,MAAO,QAAO;AAAA,IAChE,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,YAAW,YAAW,KAAK,GAAE,MAAO,SAAQ;AAAA,EAC/E;AAAA,EACA,2DAA2D;AAAA,IACzD,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,IAC7D,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,QAAU,EAAC,MAAO,CAAC,QAAO,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,EACxD;AAAA,EACA,kDAAkD;AAAA,IAChD,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,IAC7D,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7D,QAAU,EAAC,MAAO,MAAK,QAAS,gBAAe,MAAO,QAAO;AAAA,EAC/D;AACF;;;ACzDO,IAAM,sCAAqF;AAAA,EAChG,iCAAiC;AAAA,IAC/B,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,IAAM,EAAC,QAAS,0BAAyB,SAAU,kCAAiC,eAAgB,4BAA2B,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC9J,MAAQ,EAAC,SAAU,GAAE,MAAO,SAAQ;AAAA,IACpC,YAAc,EAAC,MAAO,CAAC,SAAQ,MAAM,GAAE,MAAO,SAAQ;AAAA,IACtD,UAAY,EAAC,SAAU,QAAO,QAAS,sBAAqB,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC3F,QAAU,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,QAAS,YAAW,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC9D,MAAQ,EAAC,MAAO,CAAC,OAAO,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC3D;AAAA,EACA,qCAAqC;AAAA,IACnC,SAAW,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAC5C,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,MAAQ,EAAC,SAAU,GAAE,MAAO,SAAQ;AAAA,IACpC,YAAc,EAAC,MAAO,CAAC,SAAQ,MAAM,GAAE,MAAO,SAAQ;AAAA,IACtD,UAAY,EAAC,SAAU,QAAO,QAAS,sBAAqB,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC3F,QAAU,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,EAChD;AACF;;;ACpBO,IAAM,8BAA6E;AAAA,EACxF,+BAA+B;AAAA,IAC7B,OAAS,EAAC,WAAY,KAAI,eAAgB,qCAAoC,MAAO,SAAQ;AAAA,IAC7F,KAAO,EAAC,SAAU,UAAS,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,MAAQ,EAAC,MAAO,CAAC,MAAM,GAAE,MAAO,SAAQ;AAAA,IACxC,MAAQ,EAAC,WAAY,GAAE,WAAY,GAAE,SAAU,yCAAwC,eAAgB,mCAAkC,UAAW,MAAK,MAAO,SAAQ;AAAA,IACxK,MAAQ,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC1C;AAAA,EACA,8CAA8C;AAAA,IAC5C,mBAAmB,EAAC,QAAS,MAAK,MAAO,SAAQ;AAAA,IACjD,cAAc,EAAC,MAAO,MAAK,QAAS,sBAAqB,MAAO,QAAO;AAAA,IACvE,eAAiB,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IACrD,SAAW,EAAC,QAAS,MAAK,MAAO,SAAQ;AAAA,IACzC,QAAU,EAAC,QAAS,qBAAoB,UAAW,MAAK,MAAO,SAAQ;AAAA,IACvE,MAAQ,EAAC,MAAO,CAAC,QAAQ,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC5D;AAAA,EACA,+BAA+B;AAAA,IAC7B,MAAQ,EAAC,MAAO,CAAC,SAAS,GAAE,MAAO,SAAQ;AAAA,IAC3C,SAAW,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC/C,WAAa,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACtD,qBAAqB,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IACzD,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,KAAO,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC3C,OAAS,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAClD,OAAS,EAAC,QAAS,WAAU,MAAO,SAAQ;AAAA,IAC5C,aAAa,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC5D,yBAAyB,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,2CAA0C,eAAgB,qCAAoC,MAAO,QAAO;AAAA,IACzL,KAAO,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IACpC,MAAQ,EAAC,MAAO,CAAC,QAAO,UAAS,QAAO,UAAS,QAAO,OAAO,GAAE,QAAS,gBAAe,UAAW,MAAK,MAAO,SAAQ;AAAA,IACxH,iBAAiB,EAAC,SAAU,UAAS,MAAO,CAAC,UAAS,SAAS,GAAE,MAAO,SAAQ;AAAA,IAChF,aAAa,EAAC,SAAU,UAAS,SAAU,GAAE,MAAO,UAAS;AAAA,IAC7D,cAAc,EAAC,SAAU,QAAO,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5E,MAAQ,EAAC,WAAY,GAAE,WAAY,GAAE,SAAU,yCAAwC,eAAgB,mCAAkC,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC1K;AAAA,EACA,wBAAwB,CAAC;AAAA,EACzB,qCAAqC;AAAA,IACnC,OAAS,EAAC,WAAY,KAAI,eAAgB,qCAAoC,MAAO,SAAQ;AAAA,IAC7F,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,KAAO,EAAC,SAAU,UAAS,SAAU,GAAE,MAAO,UAAS;AAAA,EACzD;AAAA,EACA,sDAAsD;AAAA,IACpD,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,mBAAmB,EAAC,QAAS,MAAK,MAAO,SAAQ;AAAA,IACjD,cAAc,EAAC,MAAO,MAAK,QAAS,sBAAqB,MAAO,QAAO;AAAA,IACvE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,eAAiB,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IACrD,SAAW,EAAC,QAAS,MAAK,MAAO,SAAQ;AAAA,EAC3C;AAAA,EACA,qCAAqC;AAAA,IACnC,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,MAAQ,EAAC,MAAO,CAAC,SAAS,GAAE,MAAO,SAAQ;AAAA,IAC3C,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,SAAW,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC/C,WAAa,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACtD,qBAAqB,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IACzD,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,KAAO,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC3C,OAAS,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAClD,OAAS,EAAC,QAAS,WAAU,MAAO,SAAQ;AAAA,IAC5C,aAAa,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC5D,yBAAyB,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,2CAA0C,eAAgB,qCAAoC,MAAO,QAAO;AAAA,IACzL,KAAO,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IACpC,iBAAiB,EAAC,SAAU,UAAS,MAAO,CAAC,UAAS,SAAS,GAAE,MAAO,SAAQ;AAAA,IAChF,aAAa,EAAC,SAAU,UAAS,SAAU,GAAE,MAAO,UAAS;AAAA,IAC7D,cAAc,EAAC,SAAU,QAAO,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,EAC9E;AACF;;;ACnEO,IAAM,6BAA4E;AAAA,EACvF,yCAAyC;AAAA,IACvC,QAAU,EAAC,SAAU,OAAM,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,EACzE;AAAA,EACA,0CAA0C,CAAC;AAAA,EAC3C,wCAAwC,CAAC;AAAA,EACzC,2CAA2C;AAAA,IACzC,eAAe,EAAC,QAAS,WAAU,MAAO,SAAQ;AAAA,EACpD;AAAA,EACA,mCAAmC;AAAA,IACjC,aAAe,EAAC,SAAU,GAAE,MAAO,SAAQ;AAAA,IAC3C,KAAO,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,IACvC,mBAAmB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAChD,cAAgB,EAAC,SAAU,KAAI,MAAO,SAAQ;AAAA,EAChD;AAAA,EACA,oCAAoC;AAAA,IAClC,aAAe,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,UAAS,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7E,UAAY,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACnE,MAAQ,EAAC,eAAgB,oBAAmB,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC3E,mBAAqB,EAAC,SAAU,QAAO,MAAO,CAAC,MAAK,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IACjF,QAAU,EAAC,SAAU,OAAM,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACvE,YAAc,EAAC,SAAU,OAAM,MAAO,UAAS;AAAA,IAC/C,MAAQ,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IAC/D,aAAe,EAAC,SAAU,qCAAoC,eAAgB,+BAA8B,MAAO,SAAQ;AAAA,EAC7H;AAAA,EACA,0CAA0C;AAAA,IACxC,aAAe,EAAC,MAAO,CAAC,OAAM,UAAS,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7D,UAAY,EAAC,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,mBAAqB,EAAC,MAAO,CAAC,MAAK,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IAChE,QAAU,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,YAAc,EAAC,SAAU,OAAM,MAAO,UAAS;AAAA,IAC/C,MAAQ,EAAC,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACjD,aAAe,EAAC,SAAU,qCAAoC,eAAgB,+BAA8B,MAAO,SAAQ;AAAA,EAC7H;AACF;;;AClCO,IAAM,8BAA6E;AAAA,EACxF,oCAAoC;AAAA,IAClC,QAAU,EAAC,SAAU,MAAK,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,IACnE,aAAe,EAAC,SAAU,MAAK,MAAO,CAAC,MAAK,OAAM,QAAO,OAAM,QAAO,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IACnG,SAAW,EAAC,QAAS,eAAc,UAAW,MAAK,MAAO,SAAQ;AAAA,IAClE,MAAQ,EAAC,QAAS,kBAAiB,UAAW,MAAK,MAAO,SAAQ;AAAA,IAClE,WAAa,EAAC,MAAO,CAAC,UAAS,UAAS,UAAS,SAAQ,UAAS,UAAS,SAAQ,UAAS,QAAQ,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,EACvI;AACF;;;ACRO,IAAM,4BAA2E;AAAA,EACtF,8BAA8B;AAAA,IAC5B,MAAQ,EAAC,SAAU,SAAQ,MAAO,CAAC,SAAQ,QAAO,SAAQ,SAAQ,WAAU,SAAS,GAAE,MAAO,SAAQ;AAAA,IACtG,SAAW,EAAC,SAAU,mDAAkD,SAAU,GAAE,MAAO,SAAQ;AAAA,IACnG,OAAS,EAAC,SAAU,OAAM,MAAO,CAAC,SAAQ,WAAU,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC1E,OAAS,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,UAAY,EAAC,SAAU,KAAI,SAAU,MAAK,SAAU,GAAE,MAAO,SAAQ;AAAA,IACrE,UAAY,EAAC,SAAU,mCAAkC,SAAU,QAAO,SAAU,GAAE,MAAO,UAAS;AAAA,IACtG,aAAe,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAChD,YAAc,EAAC,SAAU,cAAa,eAAgB,wCAAuC,MAAO,SAAQ;AAAA,IAC5G,KAAO,EAAC,eAAgB,6FAA4F,MAAO,SAAQ;AAAA,IACnI,YAAc,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACvD,UAAY,EAAC,QAAS,YAAW,WAAY,KAAI,MAAO,SAAQ;AAAA,IAChE,MAAQ,EAAC,MAAO,CAAC,UAAS,UAAS,aAAY,QAAO,UAAS,WAAU,WAAU,YAAW,YAAW,iBAAiB,GAAE,MAAO,SAAQ;AAAA,IAC3I,QAAU,EAAC,SAAU,OAAM,SAAU,IAAG,MAAO,UAAS;AAAA,IACxD,YAAc,EAAC,QAAS,6BAA4B,MAAO,SAAQ;AAAA,IACnE,YAAc,EAAC,WAAY,KAAI,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC9D,QAAU,EAAC,MAAO,CAAC,UAAS,UAAS,UAAS,UAAS,UAAS,YAAW,aAAY,UAAS,UAAS,SAAQ,WAAW,GAAE,MAAO,SAAQ;AAAA,IAC7I,UAAY,EAAC,WAAY,GAAE,MAAO,SAAQ;AAAA,IAC1C,MAAQ,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAC9C,cAAgB,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACzD,SAAW,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACxD,SAAW,EAAC,SAAU,SAAQ,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACvE,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,MAAQ,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IAChD,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IACvD,KAAO,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IAC9D,MAAQ,EAAC,QAAS,YAAW,SAAU,WAAU,SAAU,KAAI,UAAW,MAAK,MAAO,UAAS;AAAA,EACjG;AAAA,EACA,2CAA2C;AAAA,IACzC,MAAQ,EAAC,SAAU,SAAQ,MAAO,CAAC,SAAQ,QAAO,SAAQ,SAAQ,WAAU,SAAS,GAAE,MAAO,SAAQ;AAAA,IACtG,OAAS,EAAC,SAAU,OAAM,MAAO,CAAC,SAAQ,WAAU,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC1E,OAAS,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,UAAY,EAAC,SAAU,KAAI,SAAU,MAAK,SAAU,GAAE,MAAO,SAAQ;AAAA,IACrE,UAAY,EAAC,SAAU,mCAAkC,SAAU,QAAO,SAAU,GAAE,MAAO,UAAS;AAAA,IACtG,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,aAAe,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAChD,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,YAAc,EAAC,SAAU,cAAa,eAAgB,wCAAuC,MAAO,SAAQ;AAAA,IAC5G,KAAO,EAAC,eAAgB,6FAA4F,MAAO,SAAQ;AAAA,IACnI,YAAc,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACvD,UAAY,EAAC,QAAS,YAAW,WAAY,KAAI,MAAO,SAAQ;AAAA,IAChE,MAAQ,EAAC,MAAO,CAAC,UAAS,UAAS,aAAY,QAAO,UAAS,WAAU,WAAU,YAAW,YAAW,iBAAiB,GAAE,MAAO,SAAQ;AAAA,IAC3I,QAAU,EAAC,SAAU,OAAM,SAAU,IAAG,MAAO,UAAS;AAAA,IACxD,YAAc,EAAC,QAAS,6BAA4B,MAAO,SAAQ;AAAA,IACnE,QAAU,EAAC,MAAO,CAAC,UAAS,UAAS,UAAS,UAAS,UAAS,YAAW,aAAY,UAAS,UAAS,SAAQ,WAAW,GAAE,MAAO,SAAQ;AAAA,IAC7I,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,cAAgB,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACzD,SAAW,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACxD,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,MAAQ,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IAChD,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IACvD,KAAO,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,EAChE;AAAA,EACA,2CAA2C;AAAA,IACzC,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,MAAQ,EAAC,MAAO,CAAC,UAAS,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,QAAO,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,OAAO,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC58D,MAAQ,EAAC,SAAU,mCAAkC,eAAgB,6BAA4B,UAAW,MAAK,MAAO,SAAQ;AAAA,EAClI;AACF;;;AC3DO,IAAM,gCAA+E;AAAA,EAC1F,kCAAkC;AAAA,IAChC,SAAW,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC3C,UAAY,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC5C,gBAAgB,EAAC,QAAS,aAAY,MAAO,SAAQ;AAAA,IACrD,WAAa,EAAC,MAAO,CAAC,cAAa,iBAAgB,eAAc,aAAY,WAAU,eAAc,eAAc,eAAc,oBAAmB,kBAAkB,GAAE,MAAO,SAAQ;AAAA,IACvL,uBAAyB,EAAC,MAAO,CAAC,UAAS,YAAW,UAAU,GAAE,MAAO,SAAQ;AAAA,IACjF,cAAgB,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IAC1D,aAAe,EAAC,QAAS,6BAA4B,MAAO,SAAQ;AAAA,IACpE,MAAQ,EAAC,QAAS,UAAS,MAAO,SAAQ;AAAA,IAC1C,OAAS,EAAC,QAAS,UAAS,MAAO,SAAQ;AAAA,IAC3C,SAAW,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC3C,UAAY,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC5C,OAAS,EAAC,QAAS,aAAY,WAAY,IAAG,WAAY,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC3F,KAAO,EAAC,SAAU,OAAM,SAAU,MAAK,MAAO,UAAS;AAAA,IACvD,SAAW,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC/C,UAAY,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,WAAa,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACvD,YAAc,EAAC,QAAS,aAAY,MAAO,SAAQ;AAAA,IACnD,aAAe,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAChD,WAAa,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACvD,SAAW,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,QAAU,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACpD,MAAQ,EAAC,MAAO,CAAC,UAAS,QAAO,OAAM,SAAQ,QAAO,UAAS,aAAY,WAAU,WAAU,cAAa,QAAO,SAAS,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7J,WAAW,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,mBAAmB,EAAC,QAAS,aAAY,MAAO,SAAQ;AAAA,EAC1D;AAAA,EACA,iCAAiC,CAAC;AAAA,EAClC,yCAAyC;AAAA,IACvC,SAAW,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC3C,UAAY,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC5C,gBAAgB,EAAC,QAAS,aAAY,MAAO,SAAQ;AAAA,IACrD,WAAa,EAAC,MAAO,CAAC,cAAa,iBAAgB,eAAc,aAAY,WAAU,eAAc,eAAc,eAAc,oBAAmB,kBAAkB,GAAE,MAAO,SAAQ;AAAA,IACvL,uBAAyB,EAAC,MAAO,CAAC,UAAS,YAAW,UAAU,GAAE,MAAO,SAAQ;AAAA,IACjF,cAAgB,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IAC1D,aAAe,EAAC,QAAS,6BAA4B,MAAO,SAAQ;AAAA,IACpE,MAAQ,EAAC,QAAS,UAAS,MAAO,SAAQ;AAAA,IAC1C,OAAS,EAAC,QAAS,UAAS,MAAO,SAAQ;AAAA,IAC3C,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,SAAW,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC3C,UAAY,EAAC,QAAS,QAAO,MAAO,SAAQ;AAAA,IAC5C,KAAO,EAAC,SAAU,OAAM,SAAU,MAAK,MAAO,UAAS;AAAA,IACvD,SAAW,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC/C,UAAY,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,WAAa,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACvD,YAAc,EAAC,QAAS,aAAY,MAAO,SAAQ;AAAA,IACnD,aAAe,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAChD,WAAa,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACvD,SAAW,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,QAAU,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACpD,MAAQ,EAAC,MAAO,CAAC,UAAS,QAAO,OAAM,SAAQ,QAAO,UAAS,aAAY,WAAU,WAAU,cAAa,QAAO,SAAS,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7J,WAAW,EAAC,SAAU,MAAK,SAAU,GAAE,MAAO,UAAS;AAAA,IACvD,mBAAmB,EAAC,QAAS,aAAY,MAAO,SAAQ;AAAA,EAC1D;AACF;;;ACtDO,IAAM,6BAA4E;AAAA,EACvF,+BAA+B;AAAA,IAC7B,UAAY,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAClD,WAAW,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACvD,MAAQ,EAAC,MAAO,CAAC,UAAS,SAAS,GAAE,MAAO,SAAQ;AAAA,IACpD,SAAW,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC3C,SAAW,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IACxC,MAAQ,EAAC,SAAU,WAAU,MAAO,CAAC,WAAU,MAAM,GAAE,MAAO,SAAQ;AAAA,IACtE,MAAQ,EAAC,QAAS,eAAc,MAAO,SAAQ;AAAA,IAC/C,UAAY,EAAC,QAAS,mBAAkB,SAAU,oCAAmC,eAAgB,8BAA6B,MAAO,SAAQ;AAAA,IACjJ,SAAW,EAAC,SAAU,mDAAkD,SAAU,GAAE,MAAO,UAAS;AAAA,IACpG,OAAS,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAC/C,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IACvD,QAAU,EAAC,MAAO,CAAC,gBAAe,WAAU,YAAY,GAAE,MAAO,SAAQ;AAAA,IACzE,OAAS,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACpD,KAAO,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IAClD,UAAY,EAAC,SAAU,KAAI,SAAU,KAAI,SAAU,GAAE,MAAO,SAAQ;AAAA,IACpE,UAAY,EAAC,SAAU,mCAAkC,SAAU,QAAO,SAAU,GAAE,MAAO,UAAS;AAAA,IACtG,aAAe,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAChD,YAAc,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACvD,cAAc,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACxD,SAAW,EAAC,SAAU,oBAAmB,QAAS,wBAAuB,MAAO,SAAQ;AAAA,IACxF,WAAa,EAAC,MAAO,CAAC,OAAM,KAAI,MAAM,GAAE,MAAO,SAAQ;AAAA,IACvD,0BAA0B,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACpE,aAAa,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACzD,eAAe,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IAC1D,UAAY,EAAC,MAAO,CAAC,MAAK,SAAQ,MAAK,SAAQ,SAAQ,MAAK,MAAK,MAAK,SAAQ,SAAQ,SAAQ,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,SAAQ,MAAK,MAAK,IAAI,GAAE,MAAO,SAAQ;AAAA,IACvL,MAAQ,EAAC,MAAO,CAAC,UAAS,SAAQ,UAAS,WAAU,YAAW,YAAW,mBAAkB,cAAa,WAAW,GAAE,MAAO,SAAQ;AAAA,IACtI,kBAAoB,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,SAAQ;AAAA,IAChE,eAAiB,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5D,MAAQ,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC5C,YAAc,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IACtD,QAAU,EAAC,SAAU,SAAQ,MAAO,CAAC,SAAQ,OAAM,OAAM,QAAO,QAAO,UAAS,QAAO,QAAO,SAAQ,SAAQ,OAAM,OAAM,SAAS,GAAE,MAAO,SAAQ;AAAA,IACpJ,eAAe,EAAC,SAAU,0CAAyC,eAAgB,oCAAmC,MAAO,SAAQ;AAAA,IACrI,MAAQ,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAC9C,MAAQ,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,aAAY,mBAAkB,sBAAqB,WAAU,QAAQ,GAAE,MAAO,SAAQ;AAAA,IAC/H,aAAa,EAAC,SAAU,6BAA4B,eAAgB,uBAAsB,MAAO,SAAQ;AAAA,IACzG,QAAU,EAAC,SAAU,QAAO,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACxE,SAAW,EAAC,QAAS,kBAAiB,WAAY,KAAI,MAAO,SAAQ;AAAA,IACrE,KAAO,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAClD,SAAW,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,SAAW,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IACjD,WAAa,EAAC,SAAU,OAAM,SAAU,sEAAqE,eAAgB,gEAA+D,MAAO,SAAQ;AAAA,IAC3M,SAAW,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACxD,SAAW,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACrD,MAAQ,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IAChD,OAAS,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACpD,SAAW,EAAC,SAAU,qBAAoB,SAAU,uEAAsE,eAAgB,iEAAgE,MAAO,SAAQ;AAAA,IACzN,MAAQ,EAAC,QAAS,YAAW,SAAU,WAAU,SAAU,KAAI,UAAW,MAAK,MAAO,UAAS;AAAA,IAC/F,gBAAkB,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IAC5D,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,EACzD;AAAA,EACA,4CAA4C;AAAA,IAC1C,UAAY,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAClD,WAAW,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACvD,MAAQ,EAAC,MAAO,CAAC,UAAS,SAAS,GAAE,MAAO,SAAQ;AAAA,IACpD,SAAW,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IACxC,MAAQ,EAAC,SAAU,WAAU,MAAO,CAAC,WAAU,MAAM,GAAE,MAAO,SAAQ;AAAA,IACtE,MAAQ,EAAC,QAAS,eAAc,MAAO,SAAQ;AAAA,IAC/C,UAAY,EAAC,QAAS,mBAAkB,SAAU,oCAAmC,eAAgB,8BAA6B,MAAO,SAAQ;AAAA,IACjJ,OAAS,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAC/C,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IACvD,QAAU,EAAC,MAAO,CAAC,gBAAe,WAAU,YAAY,GAAE,MAAO,SAAQ;AAAA,IACzE,OAAS,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACpD,KAAO,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IAClD,UAAY,EAAC,SAAU,KAAI,SAAU,KAAI,SAAU,GAAE,MAAO,SAAQ;AAAA,IACpE,UAAY,EAAC,SAAU,mCAAkC,SAAU,QAAO,SAAU,GAAE,MAAO,UAAS;AAAA,IACtG,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,aAAe,EAAC,WAAY,MAAK,MAAO,SAAQ;AAAA,IAChD,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,YAAc,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACvD,cAAc,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IACxD,SAAW,EAAC,SAAU,oBAAmB,QAAS,wBAAuB,MAAO,SAAQ;AAAA,IACxF,WAAa,EAAC,MAAO,CAAC,OAAM,KAAI,MAAM,GAAE,MAAO,SAAQ;AAAA,IACvD,aAAa,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACzD,eAAe,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,IAC1D,UAAY,EAAC,MAAO,CAAC,MAAK,SAAQ,MAAK,SAAQ,SAAQ,MAAK,MAAK,MAAK,SAAQ,SAAQ,SAAQ,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,SAAQ,MAAK,MAAK,IAAI,GAAE,MAAO,SAAQ;AAAA,IACvL,MAAQ,EAAC,MAAO,CAAC,UAAS,SAAQ,UAAS,WAAU,YAAW,YAAW,mBAAkB,cAAa,WAAW,GAAE,MAAO,SAAQ;AAAA,IACtI,kBAAoB,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,SAAQ;AAAA,IAChE,eAAiB,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5D,MAAQ,EAAC,QAAS,YAAW,MAAO,SAAQ;AAAA,IAC5C,YAAc,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IACtD,QAAU,EAAC,SAAU,SAAQ,MAAO,CAAC,SAAQ,OAAM,OAAM,QAAO,QAAO,UAAS,QAAO,QAAO,SAAQ,SAAQ,OAAM,OAAM,SAAS,GAAE,MAAO,SAAQ;AAAA,IACpJ,eAAe,EAAC,SAAU,0CAAyC,eAAgB,oCAAmC,MAAO,SAAQ;AAAA,IACrI,QAAU,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACvD,MAAQ,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IAC9C,QAAU,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,aAAY,mBAAkB,sBAAqB,WAAU,QAAQ,GAAE,MAAO,SAAQ;AAAA,IAC/H,aAAa,EAAC,SAAU,6BAA4B,eAAgB,uBAAsB,MAAO,SAAQ;AAAA,IACzG,QAAU,EAAC,SAAU,QAAO,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACxE,SAAW,EAAC,QAAS,kBAAiB,WAAY,KAAI,MAAO,SAAQ;AAAA,IACrE,KAAO,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IAClD,SAAW,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,SAAW,EAAC,QAAS,cAAa,MAAO,SAAQ;AAAA,IACjD,WAAa,EAAC,SAAU,OAAM,SAAU,sEAAqE,eAAgB,gEAA+D,MAAO,SAAQ;AAAA,IAC3M,SAAW,EAAC,QAAS,qBAAoB,MAAO,SAAQ;AAAA,IACxD,MAAQ,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IAChD,OAAS,EAAC,SAAU,KAAI,SAAU,GAAE,MAAO,UAAS;AAAA,IACpD,SAAW,EAAC,SAAU,qBAAoB,SAAU,uEAAsE,eAAgB,iEAAgE,MAAO,SAAQ;AAAA,IACzN,gBAAkB,EAAC,QAAS,kBAAiB,MAAO,SAAQ;AAAA,IAC5D,UAAY,EAAC,QAAS,mBAAkB,MAAO,SAAQ;AAAA,EACzD;AACF;;;ACtGO,IAAM,wBAAuE;AAAA,EAClF,mBAAmB;AAAA,IACjB,QAAU,EAAC,QAAS,cAAa,UAAW,MAAK,MAAO,SAAQ;AAAA,EAClE;AAAA,EACA,2BAA2B;AAAA,IACzB,SAAW,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC1D,KAAO,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,EAClD;AACF;;;ACRO,IAAM,0BAAyE;AAAA,EACpF,qBAAqB;AAAA,IACnB,MAAQ,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IACjD,WAAa,EAAC,QAAS,6BAA4B,MAAO,SAAQ;AAAA,IAClE,SAAW,EAAC,QAAS,4BAA2B,MAAO,SAAQ;AAAA,IAC/D,gBAAgB,EAAC,QAAS,yBAAwB,MAAO,SAAQ;AAAA,IACjE,QAAU,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC1C,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,aAAe,EAAC,SAAU,6CAA4C,eAAgB,uCAAsC,MAAO,SAAQ;AAAA,IAC3I,QAAU,EAAC,MAAO,CAAC,OAAM,SAAQ,UAAS,MAAM,GAAE,MAAO,SAAQ;AAAA,IACjE,WAAW,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IACnD,yBAAyB,EAAC,SAAU,4EAA2E,SAAU,IAAG,MAAO,UAAS;AAAA,IAC5I,SAAW,EAAC,QAAS,+BAA8B,MAAO,SAAQ;AAAA,IAClE,YAAc,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IAC1D,OAAS,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAClD,SAAW,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC1D,UAAY,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC5C,MAAQ,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACpD,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,QAAU,EAAC,QAAS,0BAAyB,MAAO,SAAQ;AAAA,IAC5D,eAAiB,EAAC,SAAU,YAAW,MAAO,CAAC,OAAM,YAAW,UAAS,MAAM,GAAE,MAAO,SAAQ;AAAA,IAChG,iBAAiB,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAC1D,uBAAuB,EAAC,SAAU,MAAK,MAAO,CAAC,KAAI,KAAI,KAAI,KAAI,MAAK,IAAI,GAAE,MAAO,UAAS;AAAA,IAC1F,QAAU,EAAC,QAAS,sBAAqB,MAAO,SAAQ;AAAA,IACxD,YAAc,EAAC,SAAU,WAAU,MAAO,CAAC,WAAU,OAAM,OAAM,KAAI,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IAClG,SAAW,EAAC,QAAS,kBAAiB,UAAW,MAAK,MAAO,SAAQ;AAAA,IACrE,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,UAAY,EAAC,QAAS,sBAAqB,MAAO,SAAQ;AAAA,IAC1D,MAAQ,EAAC,MAAO,CAAC,SAAQ,UAAS,QAAO,OAAM,QAAO,SAAQ,eAAc,OAAM,WAAU,OAAM,OAAM,OAAM,OAAM,SAAS,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC9J,QAAU,EAAC,QAAS,sBAAqB,MAAO,SAAQ;AAAA,IACxD,iBAAiB,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,EAC/D;AAAA,EACA,8BAA8B;AAAA,IAC5B,WAAa,EAAC,QAAS,6BAA4B,MAAO,SAAQ;AAAA,IAClE,SAAW,EAAC,QAAS,4BAA2B,MAAO,SAAQ;AAAA,IAC/D,gBAAgB,EAAC,QAAS,yBAAwB,MAAO,SAAQ;AAAA,IACjE,QAAU,EAAC,QAAS,qBAAoB,WAAY,MAAK,MAAO,SAAQ;AAAA,IACxE,QAAU,EAAC,WAAY,IAAG,MAAO,SAAQ;AAAA,IACzC,QAAU,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC1C,aAAe,EAAC,SAAU,6CAA4C,eAAgB,uCAAsC,MAAO,SAAQ;AAAA,IAC3I,QAAU,EAAC,MAAO,CAAC,OAAM,SAAQ,UAAS,MAAM,GAAE,MAAO,SAAQ;AAAA,IACjE,WAAW,EAAC,QAAS,gBAAe,MAAO,SAAQ;AAAA,IACnD,yBAAyB,EAAC,SAAU,4EAA2E,SAAU,IAAG,MAAO,UAAS;AAAA,IAC5I,SAAW,EAAC,QAAS,+BAA8B,MAAO,SAAQ;AAAA,IAClE,YAAc,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IAC1D,OAAS,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAClD,SAAW,EAAC,QAAS,uBAAsB,MAAO,SAAQ;AAAA,IAC1D,UAAY,EAAC,WAAY,KAAI,MAAO,SAAQ;AAAA,IAC5C,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,eAAiB,EAAC,SAAU,YAAW,MAAO,CAAC,OAAM,YAAW,UAAS,MAAM,GAAE,MAAO,SAAQ;AAAA,IAChG,iBAAiB,EAAC,QAAS,iBAAgB,MAAO,SAAQ;AAAA,IAC1D,uBAAuB,EAAC,SAAU,MAAK,MAAO,CAAC,KAAI,KAAI,KAAI,KAAI,MAAK,IAAI,GAAE,MAAO,UAAS;AAAA,IAC1F,QAAU,EAAC,QAAS,sBAAqB,MAAO,SAAQ;AAAA,IACxD,YAAc,EAAC,SAAU,WAAU,MAAO,CAAC,WAAU,OAAM,OAAM,KAAI,OAAM,MAAM,GAAE,MAAO,SAAQ;AAAA,IAClG,QAAU,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,IACtD,iBAAiB,EAAC,QAAS,oBAAmB,MAAO,SAAQ;AAAA,EAC/D;AACF;;;ACzDO,IAAM,yBAAwE;AAAA,EACnF,8BAA8B;AAAA,IAC5B,kBAAkB,EAAC,SAAU,iDAAgD,eAAgB,mDAAkD,MAAO,SAAQ;AAAA,IAC9J,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,cAAc,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC3C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,aAAa,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC1C,gBAAgB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC7C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,MAAQ,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7K,qBAAqB,EAAC,SAAU,uBAAsB,MAAO,CAAC,mBAAkB,qBAAqB,GAAE,MAAO,SAAQ;AAAA,IACtH,eAAe,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,qEAAoE,eAAgB,gEAA+D,MAAO,SAAQ;AAAA,IACzN,MAAQ,EAAC,WAAY,MAAK,WAAY,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,EACzE;AAAA,EACA,qDAAqD;AAAA,IACnD,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IACzI,eAAe,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IAC9I,MAAQ,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7K,QAAU,EAAC,MAAO,CAAC,gBAAe,WAAU,kBAAkB,GAAE,MAAO,SAAQ;AAAA,EACjF;AAAA,EACA,iDAAiD;AAAA,IAC/C,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,gBAAgB,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAChD,QAAU,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IACzI,eAAe,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IAC9I,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,YAAW,YAAW,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7E,MAAQ,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7K,QAAU,EAAC,MAAO,CAAC,gBAAe,WAAU,kBAAkB,GAAE,MAAO,SAAQ;AAAA,IAC/E,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,IACrD,QAAU,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,EAC5C;AAAA,EACA,oDAAoD;AAAA,IAClD,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,OAAM,KAAK,GAAE,UAAW,MAAK,MAAO,SAAQ;AAAA,IACvF,MAAQ,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7K,QAAU,EAAC,MAAO,CAAC,gBAAe,WAAU,kBAAkB,GAAE,MAAO,SAAQ;AAAA,IAC/E,KAAO,EAAC,SAAU,mmHAAsmH,eAAgB,qmHAAwmH,UAAW,MAAK,MAAO,SAAQ;AAAA,EACjxO;AAAA,EACA,2CAA2C;AAAA,IACzC,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7D,MAAQ,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC7K,QAAU,EAAC,MAAO,CAAC,gBAAe,WAAU,kBAAkB,GAAE,MAAO,SAAQ;AAAA,IAC/E,QAAU,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,QAAO;AAAA,EAC5K;AAAA,EACA,0BAA0B;AAAA,IACxB,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,IAAM,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC3K,cAAc,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC3C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,aAAa,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC1C,gBAAgB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC7C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,aAAa,EAAC,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,IAAM,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IAC9O,UAAY,EAAC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC5C,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,EAChL;AAAA,EACA,yBAAyB;AAAA,IACvB,yBAAyB,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IAC9K,kBAAkB,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,QAAO;AAAA,IAClL,YAAY,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACzD,aAAa,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IAC1D,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,IAAM,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC3K,aAAa,EAAC,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,IAAM,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IAC9O,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,2KAA0K,eAAgB,+JAA8J,MAAO,SAAQ;AAAA,IACxZ,WAAW,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACxD,YAAY,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACzD,QAAU,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IAC/J,aAAa,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IACrP,gBAAgB,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IACrL,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC9K,kBAAkB,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,MAAM,GAAE,MAAO,SAAQ;AAAA,IAC1E,iBAAiB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC9C,kBAAkB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,EAC5E;AAAA,EACA,2BAA2B;AAAA,IACzB,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,IAAM,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC3K,aAAa,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACpE,IAAM,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IAC9O,kBAAkB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC/C,gBAAgB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,IACxE,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,UAAW,MAAK,MAAO,SAAQ;AAAA,IAC9K,kBAAkB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,EAC5E;AAAA,EACA,oCAAoC;AAAA,IAClC,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,WAAU,eAAc,iBAAgB,kBAAiB,aAAY,eAAc,cAAa,eAAc,gBAAe,eAAc,cAAa,eAAc,UAAS,qBAAoB,UAAS,oBAAmB,2BAA0B,wBAAwB,GAAE,MAAO,QAAO;AAAA,IAChU,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,cAAc,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC3C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,aAAa,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC1C,gBAAgB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC7C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,qBAAqB,EAAC,SAAU,uBAAsB,MAAO,CAAC,mBAAkB,qBAAqB,GAAE,MAAO,SAAQ;AAAA,IACtH,eAAe,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,qEAAoE,eAAgB,gEAA+D,MAAO,SAAQ;AAAA,EAC3N;AAAA,EACA,2DAA2D;AAAA,IACzD,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,UAAS,WAAU,WAAU,gBAAe,UAAS,aAAa,GAAE,MAAO,QAAO;AAAA,IACjH,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,QAAU,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IACzI,eAAe,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,EAChJ;AAAA,EACA,uDAAuD;AAAA,IACrD,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,UAAS,WAAU,WAAU,UAAS,eAAc,YAAW,QAAO,UAAU,GAAE,MAAO,QAAO;AAAA,IAC/H,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,QAAU,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IACzI,eAAe,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,QAAO;AAAA,IAC9I,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,YAAW,YAAW,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7E,MAAQ,EAAC,SAAU,OAAM,SAAU,GAAE,MAAO,UAAS;AAAA,EACvD;AAAA,EACA,0DAA0D;AAAA,IACxD,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,WAAU,WAAU,UAAS,QAAO,QAAQ,GAAE,MAAO,QAAO;AAAA,IAC3F,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,QAAU,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IACvE,KAAO,EAAC,SAAU,mmHAAsmH,eAAgB,qmHAAwmH,MAAO,SAAQ;AAAA,EACjwO;AAAA,EACA,iDAAiD;AAAA,IAC/C,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,WAAU,WAAU,gBAAe,kBAAiB,eAAc,kBAAiB,QAAO,QAAQ,GAAE,MAAO,QAAO;AAAA,IACjJ,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,MAAQ,EAAC,SAAU,OAAM,MAAO,CAAC,OAAM,KAAK,GAAE,MAAO,SAAQ;AAAA,IAC7D,QAAU,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,QAAO;AAAA,EAC5K;AAAA,EACA,8BAA8B;AAAA,IAC5B,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,WAAU,WAAU,MAAK,aAAY,aAAY,eAAc,cAAa,eAAc,gBAAe,aAAa,GAAE,MAAO,QAAO;AAAA,IACrK,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,cAAc,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC3C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,aAAa,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC1C,gBAAgB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC7C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,eAAe,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC5C,aAAa,EAAC,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,IAAM,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IAC9O,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,EAChK;AAAA,EACA,6BAA6B;AAAA,IAC3B,yBAAyB,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IAC9K,kBAAkB,EAAC,MAAO,MAAK,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,QAAO;AAAA,IAClL,YAAY,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACzD,aAAa,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IAC1D,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,UAAS,SAAQ,WAAU,YAAW,mBAAkB,gBAAe,WAAU,YAAW,YAAW,aAAY,MAAK,aAAY,aAAY,iBAAgB,kBAAiB,iBAAgB,gBAAe,mBAAkB,kBAAiB,kBAAiB,yBAAwB,gBAAgB,GAAE,MAAO,QAAO;AAAA,IAC3V,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,aAAa,EAAC,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACtD,IAAM,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IAC9O,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,2KAA0K,eAAgB,+JAA8J,MAAO,SAAQ;AAAA,IACxZ,WAAW,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACxD,YAAY,EAAC,WAAY,IAAG,WAAY,GAAE,MAAO,SAAQ;AAAA,IACzD,QAAU,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IAC/J,aAAa,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IACrP,gBAAgB,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IACrK,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IAC9J,kBAAkB,EAAC,SAAU,QAAO,MAAO,CAAC,QAAO,MAAM,GAAE,MAAO,SAAQ;AAAA,IAC1E,iBAAiB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC9C,kBAAkB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,EAC5E;AAAA,EACA,+BAA+B;AAAA,IAC7B,SAAW,EAAC,WAAY,KAAI,SAAU,0BAAyB,eAAgB,qBAAoB,MAAO,SAAQ;AAAA,IAClH,QAAU,EAAC,MAAO,MAAK,MAAO,CAAC,mBAAkB,WAAU,YAAW,kBAAiB,MAAK,aAAY,gBAAe,gBAAgB,GAAE,MAAO,QAAO;AAAA,IACvJ,QAAU,EAAC,SAAU,kBAAiB,eAAgB,oBAAmB,MAAO,SAAQ;AAAA,IACxF,aAAa,EAAC,SAAU,KAAI,SAAU,GAAE,SAAU,GAAE,MAAO,UAAS;AAAA,IACpE,IAAM,EAAC,WAAY,KAAI,SAAU,uFAAsF,eAAgB,yFAAwF,MAAO,SAAQ;AAAA,IAC9O,kBAAkB,EAAC,SAAU,GAAE,MAAO,UAAS;AAAA,IAC/C,gBAAgB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,IACxE,OAAS,EAAC,WAAY,IAAG,WAAY,GAAE,SAAU,uCAAsC,eAAgB,yCAAwC,MAAO,SAAQ;AAAA,IAC9J,kBAAkB,EAAC,SAAU,KAAI,SAAU,IAAG,SAAU,GAAE,MAAO,UAAS;AAAA,EAC5E;AACF;;;AC9KO,IAAM,sBAAqE;AAAA,KAC7E;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AAAA,KACA;AACL;;;AnB3BO,IAAM,iBAAiB,CAAC,QAA0C;AAAA,EACvE,MAAM,QAAQ,oBAAoB;AAAA,EAClC,IAAI,UAAU,WAAW;AAAA,IACvB,MAAM,IAAI,MACR,mCAAmC,0DACjC,2DACJ;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,iBAAiB,CAC5B,KACA,MACA,aACsB,WAAW,eAAe,GAAG,GAAG,MAAM,EAAE,SAAS,CAAC;AAQnE,IAAM,YAAY,CACvB,KACA,MACA,aAEO,eAAQ,MAAM;AAAA,EACnB,IAAI,QAAQ;AAAA,IAAW,OAAc;AAAA,EACrC,MAAM,QAAQ,eAAe,KAAK,MAAM,QAAQ;AAAA,EAChD,OAAO,MAAM,WAAW,IAAW,cAAc,WAAI,IAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC;AAAA,CACpF;;;AoBzCI,IAAM,YAAY,CAAC,QAAgB,IAAI,IAAI,MAAM,GAAG,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAGrF,IAAM,gBAAgB,EAAE,OAAO,UAAU,OAAO,UAAU,MAAM,QAAQ;AAGxE,IAAM,WAAW;AAGV,IAAM,QAAQ,CAAC,WAAiD;AAAA,EACrE,MAAM,UAAU,MAAM,IAAI;AAAA,EAC1B,OAAO,MAAM;AAAA,GACZ,cAAc,MAAM,QAAQ,MAAM;AACrC;AAGO,IAAM,OAAO,CAAC,WAAiD;AAAA,KACjE,MAAM,KAAK;AAAA,EACd,WAAW,MAAM,cAAc,QAAQ,MAAM;AAC/C;AAGA,IAAM,SAAS,CAAC,SACd,OAAO,YAAY,OAAO,QAAQ,IAAI,EAAE,OAAO,CAAC,MAA6B,EAAE,OAAO,SAAS,CAAC;AAQ3F,IAAM,aAAa,CAAC,UAAoB,UAAU,UAAU,OAAO,KAAK,KAAK,CAAC,GAAG,IAAI;AAGrF,IAAM,WAAW,CAAC,UACvB,CAAC,UAAU,MAAM,IAAI,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG;AAExE,IAAM,OAAO,CAAC,MAAuD,UACnE,KAAK,KACH,CAAC,QACC,IAAI,SAAS,UAAU,MAAM,IAAI,KACjC,IAAI,SAAS,MAAM,QACnB,IAAI,SAAS,MAAM,QACnB,IAAI,WAAW,MAAM,MACzB;AAMF,IAAM,aAAa,CAAC,QAA8C;AAAA,EAChE,MAAM,QAAQ,IAAI;AAAA,EAClB,OAAO,UAAU,aAAa,UAAU,KAAK,UAAU,QAAQ,UAAU;AAAA;AAGpE,IAAM,eAAe,CAC1B,MACA,UACkB;AAAA,EAClB,MAAM,MAAM,KAAK,MAAM,KAAK;AAAA,EAC5B,OAAO;AAAA,IACL,OAAO,QAAQ;AAAA,IACf,MAAM,UAAU,MAAM,IAAI;AAAA,IAC1B,WAAW,QAAQ,aAAa,WAAW,GAAG;AAAA,IAC9C,QAAQ,MAAM;AAAA,IACd,MAAM,MAAM;AAAA,IACZ,MAAM,MAAM;AAAA,EACd;AAAA;AAGK,IAAM,UAAU,CAAC,YAA2B,UACjD,WAAW,SAAS,WAAW,eAAe,MAAM,cAAc;;;AC5BpE;AACA;AAEA,wBAAS;AAET;;;ACdA;AACA;AACA;AACA;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AAAA;AAiBO,MAAM,4BAAiC,iBAAY,qBAAqB,EAI5E;AAAA,MACY,OAAO,GAAW;AAAA,IAC7B,OACE,mBAAmB,KAAK,eAAe,KAAK,gBAAgB,KAAK,6BACjE;AAAA;AAGN;;;ADbA,IAAM,cAAc,CAAC,KAAqB,SACxC,IAAI,OAAO,WAAW,IAAI,SAAS,WAAW;AA0BzC,IAAM,OAAO,CAAC,QAAmB,MAAe,MAAsB,QAAQ,QAC5E,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,GAAG,OAAO,eAAe;AAAA,EAGtC,MAAM,SAAS,CAAC,SAAgB,WAC9B,IAAI,MAAM,mBAAmB,WAAW,YAAW,IAAI,gBAAgB,YAAW,QAAQ;AAAA,EAC5F,MAAM,UACJ,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,MAAM,KAAK;AAAA,EAChE,MAAM,SAAS,QAAQ,WAAW,SAAS,IAAI,QAAQ,MAAM,UAAU,MAAM,IAAI;AAAA,EACjF,MAAM,OAAO,WAAW,YAAY,QAAQ,QAAQ,QAAQ,EAAE,IAAI;AAAA,EAClE,MAAM,UAAkC,EAAE,mBAAmB,OAAO;AAAA,EACpE,MAAM,YAAY,YAAY,KAAK,WAAW;AAAA,EAC9C,IAAI,cAAc;AAAA,IAAI,QAAQ,uBAAuB;AAAA,EACrD,MAAM,QAAQ,YAAY,KAAK,OAAO;AAAA,EACtC,IAAI,UAAU;AAAA,IAAI,QAAQ,mBAAmB;AAAA,EAC7C,IAAI,WAAW,aAAa,EAAE,SAAS,aAAa;AAAA,IAClD,OAAO,OAAc,aAAK,OAAO,GAAG,oDAAoD,CAAC;AAAA,EAC3F;AAAA,EAEA,MAAM,SAAS,OAAkB;AAAA,EAGjC,MAAM,WAAW,OAAe;AAAA,EAChC,MAAM,WAAkB,iBACtB,OAAc,sBAA8B,2BAAW,GACvD,OAAO,CAAC,EACV;AAAA,EACA,MAAM,UAA4B,sBAAI,GAAG,WAAW,MAAM,EAAE,KACxC,6BAAW,OAAO,CACtC;AAAA,EACA,MAAM,WAAW,OAAO,QAAQ,OAAO,EAAE,KAChC,gBAAQ,CAAC,aACP,YAAI,SAAS,MAAM,CAAC,WAAU,EAAE,QAAQ,SAAS,QAAQ,YAAK,EAAE,CACzE,GAEO,gBAAQ,YAAY,GACpB,uBAAuB,8BAAsB,CAAC,GAAG,UAAU,eAAe,CAAC,CACpF;AAAA,EAKA,MAAM,OAAoD,KAAK,UAAU,MAAM,OAAO;AAAA,EACtF,QAAQ,QAAQ,SAAS,QACvB,WAAW,YACP,WACO,uBAAe,UAA0B,6BAAa,IAAI,GACrE,KAEO,iBAAS,CAAC,UAAU,OAAO,GAAG,MAAM,OAAO,CAAC,CACrD;AAAA,EAEA,IAAI;AAAA,EAOJ,IAAI;AAAA,IACF,SAAS,KAAK,MAAM,IAAI;AAAA,IACxB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,IAAI,SAAS,OAAO,UAAU,KAAK;AAAA,IACjC,MAAM,SAAS,QAAQ;AAAA,IACvB,MAAM,gBAAgB,MAAM,QAAQ,MAAM;AAAA,IAC1C,MAAM,SAAS,gBAAgB,OAAO,IAAI,MAAM,EAAE,KAAK,IAAI,IAAI;AAAA,IAY/D,IAAI,WAAW,OAAO,eAAe;AAAA,MACnC,OAAO,OAAc,aAAK,IAAI,oBAAoB,EAAE,QAAQ,OAAO,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,IAC1F;AAAA,IACA,OAAO,OAAc,aAAK,OAAO,QAAQ,UAAU,mBAAmB,CAAC;AAAA,EACzE;AAAA,EACA,MAAM,UAAU,QAAQ,MAAM;AAAA,EAC9B,MAAM,SAAS,QAAQ,MAAM;AAAA,EAC7B,IAAI,OAAO,YAAY,YAAY,OAAO,WAAW,UAAU;AAAA,IAE7D,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,OAAO,eAAe,iEACvB,kCAAkC,OAAO,gDACzC,kFACJ,CACF;AAAA,EACF;AAAA,EACA,MAAM,QAAQ,QAAQ;AAAA,EACtB,MAAM,eAAe,OAAO,UAAU,WAAW,QAAQ;AAAA,EACzD,OAAO,EAAE,cAAc,QAAQ,QAAQ;AAAA,CACxC;AAQI,IAAM,gBAAgB,CAAC,YAA2B,WACvD,OAAO,WAAW,QACd,eAAe,WAAW,WAAW,WAAW,WAChD,eAAe,WAAW,WAAW,WAAW;;;AD9FtD,IAAM,wBAAwB;AAmB9B,IAAM,QAAQ,CAAC,QAAmB,UAA6B;AAAA,EAC7D,OAAO,OAAO;AAAA,EACd;AAAA,EACA,QAAQ,OAAO;AACjB;AAWO,IAAM,aAAa,CAAC,SACpB,eAAU,IAAI,KAAK,KAAK,MAAM,eAAe,wBACrC,iBAAQ,KAAK,MAAM,eAAe,qBAAqB,IACvD;AAcR,IAAM,aAAa,CAAO,YACzB,eAAS,SAAS,EAAE,UAAU,IAAI,mBAAmB,UAAU,WAAW,CAAC;AAEnF,IAAM,eAAe,CAAC,QACpB,IAAI,WAAW,QACX,EAAE,KAAK,iCAAiC,OAAO,IAAI,OAAO,QAAQ,MAAM,IACxE,EAAE,SAAS,CAAC,GAAG,OAAO,IAAI,OAAO,QAAQ,MAAM;AAErD,IAAM,SAAgB,gBAAQ,WAAW,CAAC,QAAQ,KAAK,aAAa,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;AAS7E,IAAM,SAAS,CAAC,QAAmB,SAAwB,UAAI,QAAQ,MAAM,QAAQ,IAAI,CAAC;;;AG3HjG;AAEA;AACA;AACA;AACA;AAKO,IAAM,eAAe;AAGrB,IAAM,aAAa,CAAC,WAAmB,WAAW,UAAU,OAAO,YAAY;AAgB/E,IAAM,iBAAiC;AAG9C,IAAM,kBAAkB,IAAI;AAKrB,IAAM,iBAAiB,CAAC,QAAmB,WAAmB;AAAA,EACnE,gBAAgB,IAAI,OAAO,OAAO,MAAM;AAAA;AAInC,IAAM,iBAAiB,CAAC,WAAyC;AAAA,EACtE,MAAM,YAAY,gBAAgB,IAAI,OAAO,KAAK;AAAA,EAClD,IAAI,cAAc,aAAa,CAAC,OAAO,QAAQ,SAAS,SAAS;AAAA,IAAG,OAAO,OAAO;AAAA,EAClF,OAAO,CAAC,WAAW,GAAG,OAAO,QAAQ,OAAO,CAAC,WAAW,WAAW,SAAS,CAAC;AAAA;AAG/E,IAAM,YAAY,CAAC,UAAuC;AAAA,EACxD,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAAA,IAC/C,IAAI,UAAU,SAAS,OAAO,MAAM,SAAS;AAAA,MAAU,OAAO,MAAM;AAAA,IACpE,IAAI,WAAW;AAAA,MAAO,OAAO,UAAW,MAA6B,KAAK;AAAA,EAC5E;AAAA,EACA;AAAA;AAGF,IAAM,iBAAiB,CAAC,UAA4B;AAAA,EAClD,MAAM,OAAO,UAAU,KAAK;AAAA,EAC5B,IAAI,SAAS,gBAAgB,SAAS,eAAe,SAAS,2BAA2B;AAAA,IACvF,OAAO;AAAA,EACT;AAAA,EACA,OAAO,iBAAiB,SAAS,qBAAqB,KAAK,MAAM,OAAO;AAAA;AAkB1E,IAAM,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,gBAAgB,aAAa,WAAW,CAAC;AAE9F,IAAM,oBAAoB,CAAC,SACzB,mFAAmF,KAAK,IAAI;AAE9F,IAAM,iBAAiB,CAAC,UAA4B;AAAA,EAClD,MAAM,OAAO,UAAU,KAAK;AAAA,EAC5B,OAAO,SAAS,cAAc,eAAe,IAAI,IAAI,KAAK,kBAAkB,IAAI;AAAA;AAW3E,IAAM,qBAAqB,CAAC,UAA4B;AAAA,EAC7D,IAAU,qBAAe,KAAK;AAAA,IAAG,OAAO;AAAA,EACxC,IAAI,CAAiB,kCAAkB,KAAK;AAAA,IAAG,OAAO;AAAA,EACtD,MAAM,MAAM,MAAM,OAAO;AAAA,EACzB,OAAO,QAAQ,oBAAoB,QAAQ,qBAAqB,QAAQ;AAAA;AASnE,IAAM,qBAAqB,CAAC,UAA4B;AAAA,EAC7D,IAAI,CAAiB,kCAAkB,KAAK;AAAA,IAAG,OAAO;AAAA,EACtD,QAAQ,WAAW;AAAA,EACnB,IAAI,OAAO,SAAS,qBAAqB,OAAO,SAAS;AAAA,IAAe,OAAO;AAAA,EAC/E,IAAI,OAAO,SAAS,kBAAkB;AAAA,IACpC,IAAI,eAAe,OAAO,KAAK;AAAA,MAAG,OAAO;AAAA,IACzC,OAAO,eAAe,OAAO,KAAK;AAAA,EACpC;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,oBAAoB,CAAC,UAA2B;AAAA,EAC3D,IAAU,qBAAe,KAAK;AAAA,IAAG,OAAO,mBAAmB,OAAO,cAAc;AAAA,EAChF,IAAoB,kCAAkB,KAAK;AAAA,IAAG,OAAO,MAAM;AAAA,EAC3D,OAAO,OAAO,KAAK;AAAA;AAwBd,IAAM,mBAAmB,CAC9B,QACA,QACA,MACA,OACA,WAA0B,mBAWnB,YAAI,UAAU,GAAG;AAAA,EActB,MAAM,SAAS,OAAkB;AAAA,EACjC,MAAM,UAAU,WAAW;AAAA,EAC3B,MAAM,WAA4B,CAAC;AAAA,EACnC,WAAW,UAAU,eAAe,MAAM,GAAG;AAAA,IAC3C,MAAM,UAAU,OAAO,OACpB,QAAQ,MAAM,WAAW,MAAM,CAAC,CAAC,EACjC,KAAY,gBAAQ,QAAO,GAAU,cAAM;AAAA,IAC9C,IAAW,iBAAU,OAAO,GAAG;AAAA,MAC7B,eAAe,QAAQ,MAAM;AAAA,MAC7B,OAAO,QAAQ;AAAA,IACjB;AAAA,IACA,MAAM,MAAM,kBAAkB,QAAQ,OAAO;AAAA,IAC7C,SAAS,KAAK,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC7B,MAAM,WAAW,UACb,mBAAmB,QAAQ,OAAO,IAClC,mBAAmB,QAAQ,OAAO;AAAA,IACtC,IAAI,CAAC,UAAU;AAAA,MACb,OAAO,OAAc,aAAK,EAAE,UAAU,QAAQ,MAAM,KAAK,UAAmB,CAAC;AAAA,IAC/E;AAAA,EACF;AAAA,EACA,OAAO,OAAc,aAAK,EAAE,UAAU,QAAQ,MAAM,KAAK,UAAmB,CAAC;AAAA,CAC9E;;;AJpII,MAAM,4BAA4B,MAAM;AAAA,EACxB;AAAA,EAArB,WAAW,CAAU,UAAoC;AAAA,IACvD,MAAM,uBAAuB,SAAS,IAAI,CAAC,MAAM,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG;AAAA,IADpE;AAAA,IAEnB,KAAK,OAAO;AAAA;AAEhB;AAeO,IAAM,aAAa,CACxB,QACA,YACA,SACA,IACA,WAA0B,mBAEnB,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,WAA4B,CAAC;AAAA,EACnC,WAAW,UAAU,eAAe,MAAM,GAAG;AAAA,IAC3C,MAAM,YAAY,wBAAwB;AAAA,MACxC,SAAS,WAAW,MAAM;AAAA,MAC1B,QAAQ,WAAW;AAAA,MACnB,SAAS,WAAW;AAAA,IACtB,CAAC;AAAA,IACD,MAAM,UAAU,OAAO,GAAG,KACX,mBACN,gBAAQ,SAAS,GACjB,gBAAQ,QAAO,GACf,cACT;AAAA,IACA,IAAW,kBAAU,OAAO,GAAG;AAAA,MAC7B,eAAe,QAAQ,MAAM;AAAA,MAC7B,OAAO,QAAQ;AAAA,IACjB;AAAA,IACA,MAAM,WAAW,UACb,mBAAmB,QAAQ,OAAO,IAClC,mBAAmB,QAAQ,OAAO;AAAA,IACtC,IAAI,CAAC;AAAA,MAAU,OAAO,OAAc,aAAK,QAAQ,OAAO;AAAA,IACxD,SAAS,KAAK,EAAE,QAAQ,KAAK,kBAAkB,QAAQ,OAAO,EAAE,CAAC;AAAA,EACnE;AAAA,EACA,OAAO,OAAc,aAAK,IAAI,oBAAoB,QAAQ,CAAC;AAAA,CAC5D;AAiBI,IAAM,SAAS,CACpB,QACA,MACA,SACA,OAMO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,aAAa,OAAO,OAAO,QAAQ,IAAI;AAAA,EAC7C,OAAO,OAAO,WAAW,QAAQ,YAAY,SAAS,EAAE;AAAA,CACzD;;;AKpIH;AAIO,IAAM,aAAa,OAAO,gBAAgB;AAc1C,IAAM,mBAAmB,CAC9B,WAEA,OAAO,KAAY,iBAAS,uBAAuB,MAAa,gBAAQ,UAAU,CAAC,CAAC;AAQ/E,IAAM,oBAAoB,CAAC,MAAc,cACvC,mBACL,GAAG,QAAQ,8EACT,2FACA,qDACJ;;;A3BsCK,IAAM,aAAa,SAAqB,aAAa;AAgB5D,IAAM,iBAAiB,CAAC,UACtB,iBAAiB,OAAO,MAAM,QAAQ,aAAa,OAAc,qBAAc,CAAC,CAAC,CAAC,CAAC,EAAE,KAC5E,YAAI,CAAC,SAAU,SAAS,aAAa,aAAa,aAAa,MAAM,KAAK,CAAE,CACrF;AAGF,IAAM,iBAAiB,CAAC,SACtB,SAAS,aAAa,YAAY;AAE7B,IAAM,qBAAqB,MACvB,gBACP,YACO,gBACL,WAAW,SAAS,GAAG;AAAA,EAErB,MAAM,MAAa,gBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAa,WAAG,UAAU,GAAG,QAAQ;AAAA,IACnC,OAAO,eAAe,OAAO,eAAe,IAAI,CAAC;AAAA,GAClD;AAAA,EAQD,MAAa,WAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,WAAW,aAAa,WAAW,IAAI,KAAK,SAAS,IAAI,MAAM,SAAS,MAAM,GAAG;AAAA,MACnF,OAAO,EAAE,QAAQ,UAAU;AAAA,IAC7B;AAAA,IACA,IAAI,CAAC,WAAW,IAAI;AAAA,MAAG;AAAA,IACvB,OAAO,WAAW,IAAI;AAAA,IACtB,IAAI,WAAW;AAAA,MAAW;AAAA,IAC1B,MAAM,OAAO,OAAO,eAAe,IAAI;AAAA,IAGvC,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,eAAe,SAAS,IAAI,CAAC;AAAA,MACtD,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IACA,OAAO,SAAS,aAAa,QAAQ,MAAM,IAAI,IAC1C,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EAOD,WAAkB,WAAG,UAAU,GAAG,QAAQ;AAAA,IAIxC,MAAM,SAAS,eAAe,OAAO,eAAe,IAAI,CAAC;AAAA,IACzD,OAAO,WAAW,IAAI;AAAA,IACtB,IAAI,WAAW,aAAa,CAAC,QAAQ,QAAQ,IAAI,GAAG;AAAA,MAClD,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAa,oBAAa,KAAK,IAAI,CAAC,CAAC;AAAA,IAC/E;AAAA,IACA,MAAM,QAAQ,eAAe,OAAO,eAAe,IAAI,CAAC;AAAA,IACxD,IAAI,UAAU,aAAa,CAAC,MAAM,OAAO;AAAA,MACvC,OAAO,OAAc,YACnB,IAAI,MACF,+CAA+C,SAAS,IAAI,oBAC1D,8EACA,kFACA,qDACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EASD,QAAe,WAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,MAAM,UAAsC,KAAK,MAAM,IAAI,GAAG,QAAQ,IAAI;AAAA,IAC1E,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAa,oBAAa,OAAO,CAAC;AAAA,GAC3E;AACH,CAAC,CACH,CACF;;A4BzJF,IAAM,UAAU,CAAC,OAAe,UAA0B;AAAA,EACxD,IAAI,SAAS,KAAK,KAAK,KAAK,UAAU,IAAI;AAAA,IACxC,MAAM,IAAI,MACR,0BAA0B,sDAC5B;AAAA,EACF;AAAA,EACA,OAAO,KAAK,UAAU,KAAK;AAAA;AAQ7B,IAAM,cAAc,CAAC,UAA0B;AAAA,EAC7C,MAAM,OAAO,QAAQ,gBAAgB,KAAK;AAAA,EAC1C,IAAI,WAAW;AAAA,EACf,IAAI;AAAA,IACF,WAAW,IAAI,IAAI,KAAK,EAAE;AAAA,IAC1B,MAAM;AAAA,EAGR,IAAI,aAAa,YAAY,aAAa,SAAS;AAAA,IACjD,MAAM,IAAI,MAAM,qEAAqE;AAAA,EACvF;AAAA,EACA,OAAO;AAAA;AAIT,IAAM,eAAqE;AAAA,EACzE,CAAC,YAAY,MAAM;AAAA,EACnB,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,aAAa,WAAW;AAAA,EACzB,CAAC,YAAY,UAAU;AACzB;AAeO,IAAM,wBAAwB,CAAC,UAAmC,CAAC,MAAc;AAAA,EACtF,MAAM,YAAY,QAAQ,aAAa,QAAQ,aAAa,iBAAiB;AAAA,EAC7E,MAAM,SAAS,QAAQ,UAAU,QAAQ,UAAU,KAAK;AAAA,EACxD,MAAM,SAAS,aAAa,IAC1B,EAAE,OAAO,WACP,sBAAsB,WAAW,0BAA0B,kBAC/D;AAAA,EACA,MAAM,OACJ,QAAQ,iBAAiB,YACrB,KACA;AAAA,sBAA0B,YAAY,QAAQ,YAAY;AAAA,EAChE,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK;AAAA,CAAI;AAAA;;AC3Eb,qBAAS;AACT,uBAAS;AACT;AACA;AACA;;;AC7BO,IAAM,MAAM,CAAC,OAAgB,aAClC,OAAO,UAAU,WAAW,QAAQ;AAE/B,IAAM,OAAO,CAAC,OAAgB,WAAW,OAC9C,OAAO,UAAU,WAAW,QAAQ;AA2B/B,IAAM,OAAO,CAAC,OAAgB,WAAW,UAC9C,UAAU,aAAa,UAAU,QAAQ,UAAU,KAC/C,WACA,UAAU,KAAK,UAAU,QAAQ,UAAU;AAS1C,IAAM,OAAO,CAAC,UAAqB,UAAU,YAAY,YAAY,QAAQ,MAAM;AAUnF,IAAM,MAAM,CAAC,WACjB,OAAO,UAAU,WAAW,MAAM,MAAM,GAAG,IAAK,SAAS,CAAC,GACxD,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,KAAK,EACL,KAAK,GAAG;AAYN,IAAM,YAAY,CAAC,UAA2B;AAAA,EACnD,MAAM,QACJ,OAAO,UAAU,WACb,MAAM,MAAM,GAAG,IACf,MAAM,QAAQ,KAAK,IACjB,MAAM,IAAI,CAAC,UAAmB,OAAO,KAAK,CAAC,IAC3C,CAAC;AAAA,EACT,OAAO,MACJ,IAAI,CAAC,SAAS,OAAO,KAAK,KAAK,CAAC,CAAC,EACjC,OAAO,CAAC,OAAO,OAAO,SAAS,EAAE,CAAC,EAClC,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK,EAClC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,EACtB,KAAK,GAAG;AAAA;AAIN,IAAM,iBAAiB,CAAC,QAAgB;AAAA,EAC7C,MAAM,UAAU,IAAI,KAAK,EAAE,YAAY;AAAA,EACvC,IAAI,CAAC,KAAK,OAAO,QAAQ,IAAI,EAAE,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EACzD,IAAI,CAAC,KAAK,MAAM,SAAS,KAAK,EAAE,SAAS,OAAO;AAAA,IAAG,OAAO;AAAA,EAC1D,OAAO;AAAA;AAmBF,IAAM,iBAAiB,CAAC,OAAgB,eAAgC;AAAA,EAC7E,MAAM,QACJ,OAAO,UAAU,WACb,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS;AAAA,IAC7B,OAAO,QAAQ,QAAQ,KAAK,MAAM,GAAG;AAAA,IACrC,OAAO,KAAK,WAAW,KAAK,eAAe,YACvC,CAAC,YAAY,OAAO,EAAE,IACtB,CAAC,OAAO,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,GAC/B,IACD,OAAO,UAAU,YAAY,UAAU,OACrC,OAAO,QAAQ,KAAK,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,KAAK,OAAO,KAAK,CAAC,CAAC,IAChE,CAAC;AAAA,EACT,OAAO,MACJ,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,KAAK,GAAG,eAAe,KAAK,CAAC,CAAU,EAClE,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,IAAI,EAAE,KAAK,WAAW,GAAG,OAAO,OAAO,EACvC,KAAK,EACL,KAAK,GAAG;AAAA;AAWN,IAAM,MAAM,CAAC,OAAgB,aAAqB;AAAA,EACvD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,MAAM,SAAS,OAAO,SAAS,KAAK,KAAK,GAAG,EAAE;AAAA,EAC9C,OAAO,OAAO,MAAM,MAAM,IAAI,WAAW;AAAA;AA6BpC,IAAM,aAAa,CACxB,QACA,UAC2B;AAAA,EAC3B,MAAM,UAAU,IAAI,IAAI,KAAK;AAAA,EAC7B,MAAM,OAA+B,CAAC;AAAA,EACtC,YAAY,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;AAAA,IACjD,IAAI,UAAU,aAAa,CAAC,QAAQ,IAAI,GAAG;AAAA,MAAG,KAAK,OAAO;AAAA,EAC5D;AAAA,EACA,OAAO,QAAQ,SAAS,IAAI,OAAO,KAAK,MAAM,QAAQ,CAAC,GAAG,OAAO,EAAE,KAAK,GAAG,EAAE;AAAA;;;AC/KxE,IAAM,mBAAmB;AAczB,IAAM,cAAc,CAAC,UAAyB,GAAG,MAAM,UAAU,MAAM;AAgBvE,IAAM,QAAQ,CAAC,WAA4D;AAAA,EAChF,SAAS,MAAM,WAAW;AAAA,EAC1B,QAAQ,OAAO,MAAM,MAAM;AAAA,EAC3B,SAAS,MAAM,UAAU,MAAM;AAAA,EAC/B,SAAS,MAAM;AAAA,EACf,QAAQ,MAAM;AAChB;AAaO,IAAM,gBAAe,CAC1B,MACA,UACmC;AAAA,EACnC,IAAI,KAAK,WAAW,aAAa,KAAK,YAAY;AAAA,IAAW;AAAA,EAC7D,OAAO;AAAA,IACL,SAAS,KAAK,KAAK,OAAO;AAAA,IAC1B,QAAQ,IAAI,KAAK,QAAQ,CAAC;AAAA,IAC1B,aAAa,YAAY,KAAK;AAAA,IAG9B,SAAS,KAAK,KAAK,SAAS,IAAI;AAAA,IAChC,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,EAChB;AAAA;AAQK,IAAM,WAAU,CAAC,YAAgC,UACtD,WAAW,aAAa,MAAM,WAAW,OACzC,WAAW,WAAW,MAAM,UAC5B,WAAW,YAAY,MAAM;;;AC3ExB,IAAM,UAAS,CAAC,SACrB,OAAO,YACL,OAAO,QAAQ,IAA+B,EAAE,OAC9C,CAAC,MAA6B,OAAO,EAAE,OAAO,QAChD,CACF;AAOK,IAAM,cAAa,CACxB,UACA,MACA,aACwB,UAAU,UAAU,QAAO,IAAI,GAAG,QAAQ;;;AHkG7D,IAAM,kBAAkB,UAA0B,oBAAoB;AAAA,EAC3E,sBAAsB;AACxB,CAAC;AAYD,IAAM,YAAY,CAAC,UAAyB;AAAA,EAC1C,MAAM,QAAQ,EAAE,SAAS,MAAM,SAAS,QAAQ,MAAM,OAAO;AAAA,EAC7D,OAAO,iBACL,OAAO,MAAM,QAAQ,aAAa,OAAc,2BAAmB,KAAK,CAAC,CAC3E,EAAE,KAAY,YAAI,CAAC,SAAU,SAAS,aAAa,aAAa,cAAa,MAAM,KAAK,CAAE,CAAC;AAAA;AAI7F,IAAM,kBAAiB,CAAC,SACtB,SAAS,aAAa,YAAY;AAQ7B,IAAM,0BAA0B,MAC5B,iBACP,iBACO,gBACL,gBAAgB,SAAS,GAAG;AAAA,EAM1B,MAAM,MAAa,gBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAa,WAAG,UAAU,GAAG,QAAQ;AAAA,IACnC,OAAO,gBAAe,OAAO,UAAU,IAAI,CAAC;AAAA,GAC7C;AAAA,EACD,MAAa,WAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,CAAC,YAAW,IAAI;AAAA,MAAG;AAAA,IACvB,OAAO,YAAW,kBAAkB,MAAM,IAAI,GAAG,KAAK;AAAA,IACtD,IAAI,WAAW;AAAA,MAAW;AAAA,IAC1B,MAAM,OAAO,OAAO,UAAU,IAAI;AAAA,IAGlC,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,oBAAoB,GAAG,KAAK,UAAU,KAAK,SAAS;AAAA,MAC7E,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IAKA,OAAO,SAAS,aAAa,SAAQ,MAAM,IAAI,IAC1C,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EACD,WAAkB,WAAG,UAAU,GAAG,QAAQ;AAAA,IAMxC,MAAM,SAAS,gBAAe,OAAO,UAAU,IAAI,CAAC;AAAA,IACpD,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,OAAc,YACnB,IAAI,MACF,GAAG,KAAK,UAAU,KAAK,4DACrB,kFACA,6EACA,kFACA,oFACA,uBACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO,YAAW,kBAAkB,MAAM,IAAI,GAAG,KAAK;AAAA,IACtD,IAAI,CAAC,SAAQ,QAAQ,IAAI,GAAG;AAAA,MAC1B,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAa,2BAAmB,MAAM,IAAI,CAAC,CAAC;AAAA,IACtF;AAAA,IACA,MAAM,QAAQ,gBAAe,OAAO,UAAU,IAAI,CAAC;AAAA,IACnD,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,OAAc,YACnB,IAAI,MACF,GAAG,KAAK,UAAU,KAAK,2DACrB,iFACA,+EACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EACD,QAAe,WAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,OACL,KAAK,QACL,aACA,MACO,8BAAsB,EAAE,SAAS,KAAK,SAAS,QAAQ,KAAK,OAAO,CAAC,CAC7E;AAAA,GACD;AACH,CAAC,CACH,CACF;;AIzNF,qBAAS;AACT;AACA;;;ACrBA,uBAAS;AAET;;;ACAA;AACA;AACA;AAMO,MAAM,iBAAiB,MAAM;AAAA,EAEvB;AAAA,EACA;AAAA,EACA;AAAA,EAHX,WAAW,CACA,QACA,QACA,MACT,QACA;AAAA,IACA,MAAM,OAAO,UAAU,WAAW,OAAO,MAAM,MAAM,QAAQ;AAAA,IALpD;AAAA,IACA;AAAA,IACA;AAAA,IAIT,KAAK,OAAO;AAAA;AAEhB;AAEA,IAAM,mBAAmB,CACvB,QACA,MACA,aAEA,IAAI,SACF,GACA,QACA,MACA,uBAAuB,SAAS,IAAI,CAAC,MAAM,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,GAChF;AAgBF,IAAM,SAAS,CAAC,SAA0B;AAAA,EACxC,MAAM,SAAS,IAAI;AAAA,EACnB,YAAY,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;AAAA,IAC/C,IAAI,OAAO,UAAU;AAAA,MAAU,OAAO,OAAO,KAAK,KAAK;AAAA,IAClD;AAAA,iBAAW,QAAQ;AAAA,QAAO,OAAO,OAAO,KAAK,IAAI;AAAA,EACxD;AAAA,EACA,OAAO,OAAO,SAAS;AAAA;AAGzB,IAAM,eAAe,CACnB,QACA,SACA,MACA,YACA,QACA,SACG;AAAA,EACH,MAAM,MAAM,GAAG,WAAW;AAAA,EAsB1B,OAAyB,wBAAK,MAAM,EAAE,GAAG,EAAE,KACvB,8BAAW,EAAE,eAAe,cAAc,YAAY,MAAM,EAAE,CAAC,GACjF,SAAS,YACL,CAAC,SAAS,OACQ,4BAAS,OAAO,IAAI,GAAG,mCAAmC,CAClF;AAAA;AAGF,IAAM,aAAa,CACjB,QACA,YACA,QACA,MACA,MACA,YAEO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,SAAS,OAAkB;AAAA,EACjC,MAAM,UAAU,aAAa,QAAQ,SAAS,MAAM,YAAY,QAAQ,IAAI;AAAA,EAC5E,OAAO,OAAO,OACX,QAAQ,OAAO,EACf,KAAY,iBAAS,CAAC,UAAU,IAAI,SAAS,GAAG,QAAQ,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,CACjF;AAEH,IAAM,eAAe,CACnB,UAKA,QACA,SAEO,YAAI,UAAU,GAAG;AAAA,EAOtB,IAAI,SAAS,SAAS,OAAO,SAAS,UAAU,KAAK;AAAA,IAGnD,MAAM,SAAS,OAAO,SAAS,KAAK,KAAY,sBAAc,MAAM,EAAE,CAAC;AAAA,IACvE,OAAO,OAAc,aAAK,IAAI,SAAS,SAAS,QAAQ,QAAQ,MAAM,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC;AAAA,EAC7F;AAAA,EACA,MAAM,OAAQ,OAAO,SAAS,KAAK,KAC1B,iBAAS,CAAC,UAAU,IAAI,SAAS,GAAG,QAAQ,MAAM,OAAO,KAAK,CAAC,CAAC,CACzE;AAAA,EACA,OAAO,KAAK;AAAA,CACb;AAGI,IAAM,UAAU,CACrB,QACA,YACA,QACA,MACA,SAEO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,WACJ,OAAO,WAAW,QACd,OAAO,iBAAiB,QAAQ,QAAQ,MAAM,CAAC,YAC7C,aAAa,QAAQ,SAAS,MAAM,YAAY,QAAQ,IAAI,CAC9D,EAAE,KACO,iBAAS,CAAC,YACf,QAAQ,QAAQ,YACZ,iBAAiB,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,IAC/D,IAAI,SAAS,GAAG,QAAQ,MAAM,OAAO,OAAO,CAAC,CACnD,CACF,IACA,OAAO,WAAW,QAAQ,YAAY,QAAQ,MAAM,MAAM,OAAO,GAAG;AAAA,EAC1E,OAAO,OAAO,aAAgB,UAAU,QAAQ,IAAI;AAAA,CACrD;AAQI,IAAM,kBAAkB,CAC7B,QACA,YACA,QACA,SAEO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,WAAW,OAAO,iBAAiB,QAAQ,QAAQ,MAAM,CAAC,YAC9D,aAAa,QAAQ,SAAS,MAAM,YAAY,MAAM,CACxD,EAAE,KACO,iBAAS,CAAC,YACf,QAAQ,QAAQ,YACZ,iBAAiB,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,QAAQ,IAC/D,IAAI,SAAS,GAAG,QAAQ,MAAM,OAAO,OAAO,CAAC,CACnD,CACF;AAAA,EACA,IAAI,SAAS,SAAS,OAAO,SAAS,UAAU,KAAK;AAAA,IACnD,MAAM,SAAS,OAAO,SAAS,KAAK,KAAY,sBAAc,MAAM,EAAE,CAAC;AAAA,IACvE,OAAO,OAAc,aAAK,IAAI,SAAS,SAAS,QAAQ,QAAQ,MAAM,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC;AAAA,EAC7F;AAAA,EACA,OAAQ,OAAO,SAAS,KAAK,KACpB,iBAAS,CAAC,UAAU,IAAI,SAAS,GAAG,QAAQ,MAAM,OAAO,KAAK,CAAC,CAAC,CACzE;AAAA,CACD;AAoBI,IAAM,MAAM,CACjB,QACA,MACA,QACA,MACA,SAEO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,aAAa,OAAO,OAAO,QAAQ,IAAI;AAAA,EAC7C,OAAO,OAAO,QAAW,QAAQ,YAAY,QAAQ,MAAM,IAAI;AAAA,CAChE;;;AClOH;AAIO,IAAM,aAAa,CACxB,SACG;AAAA,EAEH,MAAM,cAAc,CAAC,UACnB,OAAO,KAAK,aAAa,aAAa,KAAK,SAAS,KAAK,IAAI,KAAK;AAAA,EAqBpE,MAAM,cAAc,CAAC,OAAc,aAC1B,iBAAQ,MAAM;AAAA,IACnB,MAAM,SAAS,YAAY,KAAK,GAAG;AAAA,IACnC,OAAO,WAAW,YACP,gBACP,UAAU,QAAQ,KAAK,WAAW,KAAK,GAAG,QAAQ;AAAA,GACvD;AAAA,EAOH,MAAM,cAAc,CAAC,UACZ,iBAAQ,MAAM;AAAA,IACnB,MAAM,SAAS,YAAY,KAAK,GAAG;AAAA,IACnC,IAAI,WAAW;AAAA,MAAW,OAAc;AAAA,IACxC,MAAM,OAAO,KAAK,aAAa,KAAK;AAAA,IACpC,OAAO,SAAS,YAAmB,gBAAO,UAAU,QAAQ,MAAM,KAAK;AAAA,GACxE;AAAA,EAEH,OAAO,EAAE,aAAa,YAAY;AAAA;;;AClC7B,IAAM,aAAa,CACxB,UACA,MACA,OACA,SACsB,SAAQ,MAAM,KAAK,KAAK,OAAO,KAAK,IAAI,EAAE,WAAW,IAAI,YAAY;;;AHFtF,IAAM,gBAAgB,CAC3B,SACG;AAAA,EACH,QAAQ,aAAa,gBAAgB,WAAW,IAAI;AAAA,EAGpD,MAAM,OAAO,CAAC,UACZ,IACE,MAAM,QACN,KAAK,YAAY,QACjB,OACA,KAAK,KAAK,KAAK,CACjB,EAAE,KACO,aAAI,CAAC,SAAU,QAAQ,OAAO,YAAY,KAAK,WAAW,MAAM,KAAK,CAAE,GACvE,uBAAc,MAAG;AAAA,IAAG;AAAA,GAAS,CACtC;AAAA,EAEF,OAAO;AAAA,IAOL;AAAA,IACA;AAAA,IAEA;AAAA,IAKA,MAAM,CAAC,MAAoB,WAClB,aAAI,UAAU,GAAG;AAAA,MAItB,IAAI,CAAC,YAAW,IAAI;AAAA,QAAG;AAAA,MAOvB,OAAO,YAAY,MAAM,WAAW,SAAS;AAAA,MAC7C,OAAO,YAAY,IAAI;AAAA,MACvB,IAAI,WAAW;AAAA,QAAW;AAAA,MAC1B,MAAM,OAAO,OAAO,KAAK,IAAI;AAAA,MAG7B,IAAI,SAAS,WAAW;AAAA,QAMtB,OAAO,YAAY,MAAM,IAAI;AAAA,QAC7B,OAAO,EAAE,QAAQ,SAAS;AAAA,MAC5B;AAAA,MACA,IAAI,KAAK,QAAQ,MAAM,IAAI;AAAA,QAAG,OAAO,EAAE,QAAQ,OAAO;AAAA,MAEtD,OAAO,KAAK,eAAe,YACtB,EAAE,QAAQ,UAAU,IACpB,EAAE,QAAQ,SAAS;AAAA,KACzB;AAAA,IAEH,WAAW,CAAC,SACH,aAAI,UAAU,GAAG;AAAA,MACtB,MAAM,OAAO,OAAO,KAAK,IAAI;AAAA,MAM7B,OAAO,YAAY,MAAM,SAAS,SAAS;AAAA,MAC3C,OAAO,YAAY,IAAI;AAAA,MACvB,IAAI,SAAS,WAAW;AAAA,QACtB,OAAO,IACL,KAAK,QACL,aACA,QACA,KAAK,WAAW,IAAI,GACpB,KAAK,WAAW,IAAI,CACtB;AAAA,MACF,EAAO,SAAI,KAAK,eAAe,WAAW;AAAA,QAyBxC,MAAM,OAAO,WAAW,KAAK,SAAS,MAAM,MAAM,KAAK,WAAW,IAAI,CAAC;AAAA,QACvE,IAAI,SAAS,WAAW;AAAA,UACtB,OAAO,IAAI,KAAK,QAAQ,aAAa,OAAO,KAAK,KAAK,IAAI,GAAG,IAAI;AAAA,QACnE;AAAA,MACF;AAAA,MACA,MAAM,QAAQ,OAAO,KAAK,IAAI;AAAA,MAC9B,IAAI,UAAU,WAAW;AAAA,QAOvB,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,KAAK,KAAK,IAAI,oEACf,sFACA,4DACJ,CACF;AAAA,MACF;AAAA,MACA,OAAO;AAAA,KACR;AAAA,IAOH,SAAS,CAAC,SAAgB,IAAI,KAAK,QAAQ,aAAa,UAAU,KAAK,KAAK,IAAI,CAAC;AAAA,EACnF;AAAA;AAoCK,IAAM,cAAc,CACzB,SACG;AAAA,EACH,MAAM,MAAM,cAAc,IAAI;AAAA,EAC9B,OAAO;AAAA,IACL,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,IAC7B,MAAM,GAAG,WAA4B,IAAI,KAAK,IAAI;AAAA,IAClD,MAAM,GAAG,MAAM,aACb,IAAI,KAAK,MAAM,MAAM;AAAA,IACvB,WAAW,GAAG,WAA4B,IAAI,UAAU,IAAI;AAAA,IAC5D,QAAQ,GAAG,WAA4B,IAAI,QAAQ,IAAI;AAAA,EACzD;AAAA;;;AD5GK,IAAM,mBAAmB,UAA2B,mBAAmB;AAsB9E,IAAM,SAAQ,CAAC,WAA2B;AAAA,EACxC,KAAK,MAAM,QAAQ,OAAO,MAAM;AAAA,EAChC,SAAS,MAAM,YAAY,QAAQ,MAAM;AAAA,EACzC,MAAM,MAAM,QAAQ;AAAA,EACpB,qBAAqB,MAAM,wBAAwB;AAAA,EACnD,iBAAiB,MAAM,qBAAqB,OAAO,MAAM;AAAA,EACzD,UAAU,MAAM;AAAA,KACZ,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,KAC5D,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,MAAM,OAAO,EAAE;AAAA,KACvE,MAAM,aAAa,YAAY,CAAC,IAAI,EAAE,UAAU,MAAM,SAAS;AAAA,KAC/D,MAAM,sBAAsB,YAAY,CAAC,IAAI,EAAE,kBAAkB,MAAM,kBAAkB;AAAA,KACzF,MAAM,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,MAAM,KAAK;AAAA,KACnD,MAAM,qBAAqB,YAAY,CAAC,IAAI,EAAE,iBAAiB,MAAM,iBAAiB;AAAA,KACtF,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,KAC5D,MAAM,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,UAAU,MAAM,IAAI,EAAE;AACpE;AAEA,IAAM,WAAW,YAAiD;AAAA,EAQhE,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,KAAK,KAAK,KAAK,QAAQ,KAAK;AAAA,IAC5B,SAAS,KAAK,KAAK,YAAY,EAAE;AAAA,IACjC,SAAS,KAAK,KAAK,YAAY,IAAI;AAAA,IACnC,SAAS,UAAU,KAAK,UAAU;AAAA,IAClC,UAAU,eAAe,KAAK,aAAa,SAAS;AAAA,IACpD,IAAI,MAAM;AAAA,IACV,MAAM,KAAK,KAAK,SAAS,UAAU;AAAA,IACnC,YAAY,OAAO,KAAK,gBAAgB,WAAW,KAAK,cAAc;AAAA,IACtE,kBAAkB,KAAK,KAAK,mBAAmB,EAAE;AAAA,IACjD,qBAAqB,KAAK,KAAK,sBAAsB,MAAM;AAAA,IAC3D,MAAM,KAAK,KAAK,SAAS,EAAE;AAAA,IAC3B,iBAAiB,eAAe,KAAK,gBAAgB;AAAA,IACrD,iBAAiB,KAAK,KAAK,kBAAkB,KAAK;AAAA,IAClD,UAAU,KAAK,KAAK,aAAa,EAAE;AAAA,IACnC,SAAS,KAAK,KAAK,YAAY,EAAE;AAAA,IACjC,MAAM,UAAU,KAAK,OAAO;AAAA,EAC9B;AAAA,EACA,YAAY,MAAM;AAAA,EAElB,YAAY,CAAC,WAAW,KAAK,OAAM,KAAK,GAAG,IAAI,MAAM,GAAG;AAAA,EAGxD,UAAU,EAAE,QAAQ,4BAA4B,QAAQ,+BAA+B;AAAA,EACvF,SAAS,CAAC,YAAY,UACpB,WAAW,aAAa,MAAM,YAC9B,WAAW,aAAa,MAAM,YAAY,UAC1C,WAAW,SAAS,MAAM,QAAQ,SAClC,WAAW,UAAU,MAAM,QAAQ,eACnC,WAAW,0BAA0B,MAAM,wBAAwB,WACnE,WAAW,sBAAsB,MAAM,qBAAqB,UAC3D,MAAM,YAAY,aAAa,WAAW,YAAY,MAAM,aAC5D,MAAM,SAAS,aAAa,WAAW,SAAS,MAAM,UACtD,MAAM,YAAY,aAAa,WAAW,YAAY,MAAM,aAC5D,MAAM,SAAS,aAAa,WAAW,SAAS,UAAU,MAAM,IAAI,OACpE,MAAM,YAAY,aAAa,WAAW,YAAY,UAAU,MAAM,OAAO,OAC7E,MAAM,sBAAsB,aAC3B,WAAW,sBAAsB,MAAM,uBACxC,MAAM,qBAAqB,aAC1B,WAAW,qBAAqB,eAAe,MAAM,gBAAgB,OACtE,MAAM,aAAa,aAClB,WAAW,aAAa,eAAe,MAAM,UAAU,SAAS;AAAA,EACpE,MAAM,CAAC,UAAU,kBAAkB,MAAM;AAAA,EACzC,YAAY;AACd,CAAC;AAgBM,IAAM,2BAA2B,MAC7B,iBAAO,kBAAyB,iBAAQ,iBAAiB,SAAS,GAAG,QAAQ,CAAC,CAAC;;AKtK1F,qBAAS;AACT;AACA;;;ACDO,IAAM,mBAAmE;AAAA,EAC9E,KAAK,EAAE,QAAQ,yCAAyC;AAAA,EACxD,KAAK,EAAE,QAAQ,uCAAuC;AAAA,EACtD,KAAK,EAAE,QAAQ,0CAA0C;AAC3D;AAQO,IAAM,WAAW,CAAC,UAA2B,MAAM,QAAQ,MAAM;AAQjE,IAAM,iBAAiB,CAAC,UAA2B,SAAS,MAAM,aAAa,MAAM;AAGrF,IAAM,aAAa,CAAC,UAA2B,GAAG,eAAe,KAAK,KAAK,SAAS,KAAK;AAezF,IAAM,aAAa,CAAC,UAAmD;AAAA,EAC5E,IAAI,MAAM,SAAS,SAAS,MAAM,mBAAmB,WAAW;AAAA,IAC9D,OAAO,EAAE,eAAe,MAAM,eAAe;AAAA,EAC/C;AAAA,EACA,MAAM,aAAa,MAAM,SAAS,QAAQ,KAAK,MAAM,UAAU,IAAI;AAAA,EACnE,OAAO,eAAe,YAAY,CAAC,IAAI,EAAE,WAAW;AAAA;AAU/C,IAAM,UAAU,CAAC,MAAe,WACpC,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,GAC5B,OAAO,CAAC,QAAwC,OAAO,QAAQ,YAAY,QAAQ,IAAI,EACvF,KAAK,CAAC,QAAQ,IAAI,YAAY,SAAS,KAAK,CAAC;AAY3C,IAAM,mBAAmB,CAC9B,MACA,UACqC;AAAA,EACrC,MAAM,MAAM,QAAQ,MAAM,KAAK;AAAA,EAC/B,IAAI,QAAQ;AAAA,IAAW;AAAA,EACvB,OAAO;AAAA,IACL,MAAM,KAAK,IAAI,OAAO;AAAA,IACtB,QAAQ,KAAK,IAAI,UAAU;AAAA,IAC3B,MAAM,KAAK,IAAI,OAAO;AAAA,IACtB,MAAM,MAAM;AAAA,IACZ,MAAM,SAAS,KAAK;AAAA,IACpB,MAAM,MAAM;AAAA,IACZ,QAAQ,KAAK,IAAI,SAAS;AAAA,IAC1B,MAAM,IAAI,IAAI,SAAS,EAAE;AAAA,IACzB,SAAS,KAAK,IAAI,UAAU;AAAA,IAC5B,eAAe,KAAK,IAAI,iBAAiB;AAAA,IACzC,OAAO,KAAK,IAAI,QAAQ;AAAA,IACxB,SAAS,KAAK,IAAI,qBAAqB;AAAA,EACzC;AAAA;;;AD0CK,IAAM,oBAAoB,UAA4B,sBAAsB;AAAA,EACjF,sBAAsB;AACxB,CAAC;AAED,IAAM,YAAW,YAAmD;AAAA,EAClE,YAAY;AAAA,EAEZ,YAAY;AAAA,EACZ;AAAA,EAEA,UAAU,CAAC,UAA2B,iBAAiB,MAAM;AAAA,EAiB7D,SAAS,MAAM;AAAA,EAEf,MAAM;AAER,CAAC;AAEM,IAAM,4BAA4B,MAC9B,iBACP,mBACO,iBACL,kBAAkB,SAAS,GAAG;AAAA,KACzB;AAAA,EAWH,QAAQ,GAAG,WACT,IAAI,KAAK,QAAQ,aAAa,UAAU,WAAW,IAAI,CAAC;AAC5D,CAAC,CACH,CACF;;AE7JF,qBAAS;AACT;AACA;AA2EO,IAAM,kBAAkB,UAA0B,kBAAkB;AAE3E,IAAM,YAAW,YAA+C;AAAA,EAsB9D,YAAY,CAAC,MAAM,WAAW,EAAE,MAAM,MAAM,MAAM,OAAO,KAAK,IAAI,EAAE;AAAA,EACpE,YAAY,MAAM;AAAA,EAMlB,YAAY,CAAC,WAAW,GAAG,MAAM,OAAO,KAAK,MAAM,KAAK,KAAK,IAAI;AAAA,EACjE,UAAU,EAAE,QAAQ,qCAAqC;AAAA,EAUzD,SAAS,CAAC,YAAY,UAAU,WAAW,UAAU,MAAM;AAAA,EAC3D,MAAM,CAAC,UAAU,sBAAsB,MAAM;AAAA,EAQ7C,YAAY,CAAC,WAAW,EAAE,OAAO,KAAK,MAAM,KAAK,KAAK,IAAI;AAC5D,CAAC;AAEM,IAAM,0BAA0B,MAC5B,iBACP,iBACO,iBACL,gBAAgB,SAAS,GAAG;AAAA,KASvB;AAAA,EAEH,QAAQ,MAAa;AAAA,EAWrB,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IACxC,MAAM,QAAQ,OAAO,UAAS,UAAU,EAAE,KAAK,CAAC;AAAA,IAChD,IAAI,MAAM,UAAU,KAAK,OAAO;AAAA,MAC9B,OAAO,OAAc,aACnB,IAAI,MACF,sBAAsB,KAAK,oDACzB,oBAAoB,MAAM,QAAQ,QAAQ,yBAC1C,GAAG,KAAK,QAAQ,QAAQ,yDACxB,4EACA,gFACA,yBACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AACH,CAAC,CACH,CACF;;AChMF,qBAAS;AACT,uBAAS;AACT;AACA;;;ACTA;AAiBO,IAAM,UAAU,CACrB,MACA,UACiC;AAAA,EACjC,MAAM,OAAO,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,GACxC,OACC,CAAC,UAA4C,OAAO,UAAU,YAAY,UAAU,IACtF,EACC,KAAK,CAAC,UAAU,MAAM,YAAY,MAAM,IAAI;AAAA,EAC/C,IAAI,QAAQ;AAAA,IAAW;AAAA,EACvB,OAAO;AAAA,IACL,WAAW,KAAK,IAAI,YAAY;AAAA,IAChC,YAAY,IACV,MAAM,QAAQ,IAAI,aAAa,IAC3B,IAAI,cAAc,IAAI,CAAC,UAAmB,OAAO,KAAK,CAAC,IACvD,CAAC,CACP;AAAA,IACA,eAAe,KAAK,IAAI,gBAAgB;AAAA,IACxC,kBAAkB,IAAI,IAAI,qBAAqB,EAAE;AAAA,IACjD,MAAM,MAAM;AAAA,EACd;AAAA;AAWF,IAAM,eAAe;AACrB,IAAM,gBAAgB;AAGf,IAAM,aAAa,CAAC,UAAuB,SAAS,MAAM,gBAAgB,MAAM;AAGvF,IAAM,QAAQ,CAAC,MAAc,UAC3B,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,MAAM;AAMtC,IAAM,cAAa,CAAC,WAAgD;AAAA,KACtE,MAAM,eAAe,KAAK,MAAM,cAAc,CAAC;AAAA,KAC/C,MAAM,UAAU,MAAM,WAAW,YAAY,YAAY,OAAO,MAAM,MAAM,CAAC;AAClF;AAGA,IAAM,cAAc,CAAC,UAAuB;AAAA,EAC1C,MAAM,QAAQ;AAAA,IACZ,MAAM,oBAAoB,OAAO,mBAAmB;AAAA,IACpD,MAAM,uBAAuB,OAAO,sBAAsB;AAAA,EAC5D,EAAE,OAAO,CAAC,SAAS,SAAS,SAAS;AAAA,EACrC,OAAO,MAAM,WAAW,IAAI,WAAW,KAAK,IAAI,GAAG,WAAW,KAAK,KAAK,MAAM,KAAK,GAAG;AAAA;AAWxF,IAAM,SAAS,CAAC,QAAmB,MAAc,MAAc,SACtD,aAAI,UAAU,GAAG;AAAA,EACtB,SAAS,UAAU,EAAG,UAAU,eAAe,WAAW,GAAG;AAAA,IAC3D,MAAM,SAAS,OAAO,IACpB,QACA,QACA,OACA,SAAS,cAAc,mBAAmB,IAAI,UAChD,EAAE,KAIO,uBAAc,MAAG;AAAA,MAAG;AAAA,KAAS,CACtC;AAAA,IACA,IAAI,QAAQ,WAAW,WAAW;AAAA,MAChC,MAAM,OAAO,KAAK,OAAO,UAAU;AAAA,MACnC,IAAI,SAAS;AAAA,QAAM;AAAA,MACnB,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,kBAAkB,uBAAuB,SAAS,KAAK,mBAAmB,YAC3E,wFACA,yBAAyB,cAAc,aAC3C,CACF;AAAA,IACF;AAAA,IAGA,OAAc,eAAM,eAAe,IAAI;AAAA,EACzC;AAAA,EACA,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,kBAAkB,kCACnB,GAAG,OAAO,gBAAgB,YAAY,gBACtC,wFACA,uBAAuB,qEACvB,0DACJ,CACF;AAAA,CACD;AAYI,IAAM,WAAW,CAAC,UAChB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,KACX,OAAO,IAAY,MAAM,QAAQ,aAAa,QAAQ,WAAW,KAAK,GAAG,YAAW,KAAK,CAAC,CAC5F;AAAA,EAIA,IAAI,SAAS,IAAI;AAAA,IACf,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,WAAW,KAAK,4DACjB,iEACJ,CACF;AAAA,EACF;AAAA,EACA,OAAO,OAAO,MAAM,QAAQ,MAAM,MAAM,MAAM,WAAW,KAAK,CAAC;AAAA,CAChE;AAYI,IAAM,YAAY,CAAC,UACjB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,KAAK,OAAO,IAAY,MAAM,QAAQ,aAAa,UAAU,YAAY,KAAK,CAAC,CAAC;AAAA,EAK7F,IAAI,SAAS;AAAA,IAAI,OAAO,OAAO,MAAM,QAAQ,MAAM,MAAM,MAAM,YAAY,KAAK,CAAC;AAAA,CAClF;AAWI,IAAM,aAAa,CAAC,UACzB,IAAI,MACF,GAAG,WAAW,KAAK,8DACjB,aAAa,MAAM,sEACnB,yCACJ;AAEK,IAAM,eAAe,CAAC,UAC3B,IAAI,MACF,GAAG,WAAW,KAAK,iEACjB,aAAa,MAAM,6EACnB,yDACJ;;;ADxGK,IAAM,gBAAgB,UAAwB,kBAAkB;AAAA,EACrE,sBAAsB;AACxB,CAAC;AAED,IAAM,MAAM,cAA6C;AAAA,EACvD,YAAY;AAAA,EAEZ,YAAY;AAAA,EACZ;AAAA,EACA,UAAU,EAAE,QAAQ,wCAAwC;AAAA,EAiB5D,SAAS,MAAM;AAAA,EAEf,MAAM,CAAC,UAAU,SAAS,MAAM;AAClC,CAAC;AAEM,IAAM,wBAAwB,MAC1B,iBACP,eACO,iBACL,cAAc,SAAS,GAAG;AAAA,EAMxB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAa,YAAG,UAAU,GAAG,QAAQ;AAAA,IACnC,OAAO,OAAO,IAAI,KAAK,IAAI;AAAA,GAC5B;AAAA,EAcD,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,WAAW,aAAa,YAAW,IAAI,KAAK,KAAK,SAAS,OAAO,MAAM;AAAA,MACzE,OAAO,EAAE,QAAQ,UAAU;AAAA,IAC7B;AAAA,IACA,OAAO,OAAO,IAAI,KAAK,MAAM,MAAM;AAAA,GACpC;AAAA,EAWD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IACxC,MAAM,OAAO,OAAO,IAAI,KAAK,IAAI;AAAA,IACjC,IAAI,SAAS;AAAA,MAAW,OAAO;AAAA,IAC/B,OAAO,SAAS,IAAI;AAAA,IACpB,MAAM,QAAQ,OAAO,IAAI,KAAK,IAAI;AAAA,IAClC,IAAI,UAAU;AAAA,MAAW,OAAO,OAAc,aAAI,WAAW,IAAI,CAAC;AAAA,IAClE,OAAO;AAAA,GACR;AAAA,EASD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IAWrC,KAAK,OAAO,IAAI,KAAK,IAAI,OAAO;AAAA,MAAW;AAAA,IAC3C,OAAO,UAAU,IAAI;AAAA,IACrB,MAAM,QAAQ,OAAO,IAAI,KAAK,IAAI;AAAA,IAClC,IAAI,UAAU;AAAA,MAAW,OAAO,OAAc,aAAI,aAAa,IAAI,CAAC;AAAA,GACrE;AACH,CAAC,CACH,CACF;;AErNF,qBAAS;AACT,uBAAS;AAET;AACA;;;ACkBA;AAQA,IAAM,WAAW,CAAC,UACf,MAAM,QAAQ,KAAK,WAAW,IAAI,KAAK,cAAc,CAAC,GAAG,OACxD,CAAC,UAA8B,OAAO,UAAU,YAAY,UAAU,IACxE;AAeK,IAAM,YAAY,CAAC,SAAiC;AAAA,EACzD,MAAM,OAAO,KAAK;AAAA,EAClB,MAAM,QAAmB,OAAO,SAAS,YAAY,SAAS,OAAQ,OAAqB,CAAC;AAAA,EAC5F,MAAM,OAAO,CAAC,SAAiC;AAAA,IAC7C,GAAI,KAAK,YAAY,QAAQ,CAAC,IAAI,IAAI,CAAC;AAAA,IACvC,GAAG,SAAS,IAAI,EAAE,QAAQ,IAAI;AAAA,EAChC;AAAA,EACA,OAAO,KAAK,KAAK;AAAA;AAoBZ,IAAM,UAAU,CAAC,MAAiB,UACvC,UAAU,IAAI,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,OAAO,OAAO,GAAG,MAAM,KAAK;AAkD/D,IAAM,gBAAgB,CAAC,MAAiB,WAA4C;AAAA,EACzF,cAAc,KAAK,KAAK,qBAAqB;AAAA,EAC7C,cAAc,IAAI,KAAK,iBAAiB,CAAC;AAAA,EACzC,cAAc,KAAK,KAAK,eAAe;AAAA,EACvC,MAAM,KAAK,KAAK,OAAO;AAAA,EACvB,IAAI,KAAK,KAAK,KAAK;AAAA,EACnB,MAAM,KAAK,KAAK,SAAS,OAAO,OAAO,MAAM,KAAK,GAAG;AAAA,EACrD,OAAO,IAAI,KAAK,OAAO,MAAM,KAAK;AAAA,EAClC,SAAS,KAAK,KAAK,UAAU;AAAA,EAC7B,KAAK,IAAI,KAAK,QAAQ,CAAC;AAAA,EACvB,UAAU,IAAI,KAAK,aAAa,CAAC;AAAA,EACjC,QAAQ,KAAK,KAAK,SAAS;AAAA,EAC3B,aAAa,IAAI,KAAK,gBAAgB,CAAC;AACzC;AAWO,IAAM,UAAU,CAAC,UACtB,IAA6B,MAAM,QAAQ,QAAQ,OAAO,SAAS,MAAM,eAAe,EAAE,KACjF,aAAI,CAAC,MAAM;AAAA,EAChB,MAAM,OAAO,MAAM,YAAY,YAAY,QAAQ,GAAG,MAAM,KAAK;AAAA,EACjE,OAAO,SAAS,YAAY,YAAY,cAAc,MAAM,KAAK;AAAA,CAClE,CACH;;;ACnLF;AAmBO,IAAM,sBAAmC;AAEhD,IAAM,WAAW,CAAC,UAAwB,OAAO,OAAO,MAAM,KAAK,QAAQ,MAAM;AAM1E,IAAM,gBAAgB,CAAC,OAAqB,SAAyC;AAAA,EAC1F;AAAA,KACI,MAAM,iBAAiB,YAAY,CAAC,IAAI,EAAE,sBAAsB,MAAM,aAAa;AACzF;AAEO,IAAM,YAAmB,YAAG,UAAU,CAAC,MAAoB;AAAA,EAChE,IAAI,KAAK,QAAQ,WAAW;AAAA,IAC1B,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,SAAS,IAAI,oEACd,kFACA,oFACA,qFACA,cACJ,CACF;AAAA,EACF;AAAA,EACA,MAAM,OAAO,cAAc,MAAM,KAAK,GAAG;AAAA,EAGzC,OAAO,UAAU,qBAAqB,MAAM,IAAI;AAAA,EAChD,OAAO,IAAI,KAAK,QAAQ,aAAa,QAAQ,SAAS,KAAK,iBAAiB,IAAI;AAAA,EAChF,MAAM,UAAU,OAAO,QAAQ,IAAI;AAAA,EACnC,IAAI,YAAY,WAAW;AAAA,IACzB,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,SAAS,IAAI,2CAA2C,OAAO,KAAK,KAAK,UAC1E,sFACA,wFACA,uDACJ,CACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,CACR;AAoBM,IAAM,aAAa,CAAC,SACzB,IACE,KAAK,QACL,aACA,UACA,SAAS,KAAK,iBAAiB,OAAO,KAAK,KAAK,KAChD,KAAK,YAAY,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,CAC9C;;;AFYK,IAAM,iBAAiB,UAAyB,mBAAmB;AAAA,EACxE,sBAAsB;AACxB,CAAC;AAuBD,IAAM,UAAU,CAAC,MAAyB,WACvC,MAAM,SAAS,aAAa,MAAM,SAAS,KAAK,UAChD,MAAM,iBAAiB,aAAa,MAAM,iBAAiB,KAAK;AAEnE,IAAM,YAAW,CAAC,UAChB,OAAO,OAAO,MAAM,KAAK,qBAAqB,MAAM;AAetD,IAAM,YAAW;AAAA,EAOf,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAE7B,MAAa,YAAG,UAAU,GAAG,QAAgC;AAAA,IAC3D,OAAO,OAAO,QAAQ,IAAI;AAAA,GAC3B;AAAA,EAUD,MAAa,YAAG,UAAU;AAAA,IACxB;AAAA,IACA;AAAA,KAIC;AAAA,IACD,IAAI,WAAW,aAAa,CAAC,YAAW,IAAI;AAAA,MAAG;AAAA,IAC/C,MAAM,OAAO,OAAO,QAAQ,IAAI;AAAA,IAChC,IAAI,SAAS;AAAA,MAAW,OAAO,EAAE,QAAQ,SAAS;AAAA,IAQlD,IAAI,OAAO,UAAU,KAAK;AAAA,MAAO,OAAO,EAAE,QAAQ,SAAS;AAAA,IAC3D,OAAO,QAAQ,MAAM,IAAI,IAAK,EAAE,QAAQ,OAAO,IAAe,EAAE,QAAQ,SAAS;AAAA,GAClF;AAAA,EAOD,WAAkB,YAAG,UAAU,GAAG,QAAgC;AAAA,IAChE,MAAM,OAAO,OAAO,QAAQ,IAAI;AAAA,IAChC,IAAI,SAAS,WAAW;AAAA,MAUtB,OAAO,OAAO,UAAU,IAAI;AAAA,IAC9B;AAAA,IACA,IAAI,CAAC,QAAQ,MAAM,IAAI,GAAG;AAAA,MACxB,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,UAAS,IAAI,8CAA8C,KAAK,UACjE,gBAAgB,KAAK,8DACrB,wFACA,6DACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAOD,QAAe,YAAG,UAAU,GAAG,QAAgC;AAAA,IAC7D,OAAO,WAAW,IAAI;AAAA,GACvB;AACH;AAEO,IAAM,yBAAyB,MAC3B,iBAAO,gBAAuB,iBAAQ,eAAe,SAAS,GAAG,SAAQ,CAAC,CAAC;;AG9MtF,qBAAS;AACT;AACA;;;ACyGO,IAAM,SAAS,CAAC,UAAyB,SAAS,MAAM,kBAAkB,MAAM;AAChF,IAAM,aAAa,CAAC,UAAyB,SAAS,MAAM;AAQ5D,IAAM,QAAQ;AAGd,IAAM,eAAe,CAAC,UAC3B,IAAI,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,UAAmB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AAQvE,IAAM,OAAO,CAAI,UAAyB,MAAS,SAAS,UACjE,aAAa,aAAa,UAAU,aAAa;AAc5C,IAAM,OAAO,CAAC,UAA+B,UAAU,IAAI,YAAY;AAG9E,IAAM,SAAQ,CAAC,MAAc,UAC3B,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,MAAM;AAG7C,IAAM,UAAU,CAAC,UAA+B,UAAU,YAAY,YAAY,OAAO,KAAK;AAmCvF,IAAM,aAAa,CAAC,WAAkD;AAAA,KACxE,OAAM,cAAc,MAAM,UAAU;AAAA,KACpC,OAAM,YAAY,QAAQ,MAAM,QAAQ,CAAC;AAAA,KACzC,OAAM,qBAAqB,MAAM,iBAAiB;AAAA,KAClD,OAAM,cAAc,QAAQ,MAAM,UAAU,CAAC;AAAA,KAC7C,OAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,KACjC,OAAM,eAAe,QAAQ,MAAM,WAAW,CAAC;AAAA,KAC/C,OAAM,qBAAqB,QAAQ,MAAM,iBAAiB,CAAC;AAChE;AAYO,IAAM,aAAa,CAAC,WAAkD;AAAA,KACxE,WAAW,KAAK;AAAA,KAChB,OAAM,eAAe,MAAM,WAAW;AAAA,KACtC,OAAM,UAAU,QAAQ,MAAM,MAAM,CAAC;AAAA,EACxC,cAAc;AAAA,EACd,MAAM,MAAM;AACd;;;AChPA;AAuBO,IAAM,gBAAgB,CAAC,OAAsB,aAAoB,cACtE,IAA8B,MAAM,QAAQ,QAAQ,OAAO,WAAU,EAAE,KAC9D,iBAAQ,CAAC,UACb,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,cAAc,MAAM,IAAI,IAC5C,aACL,IAAI,MACF,GAAG,8EACD,oFACA,oFACA,6CACJ,CACF,IACO,aACb,CACF;AAYK,IAAM,UAAS,CACpB,OACA,MACA,SAEO,aAAI,UAAU,GAAG;AAAA,EACtB,SAAS,UAAU,EAAG,UAAU,IAAI,WAAW,GAAG;AAAA,IAChD,MAAM,OAAO,OAAO,KAAK,KAAK;AAAA,IAC9B,IAAI,KAAK,IAAI;AAAA,MAAG,OAAO;AAAA,IACvB,OAAc,eAAM,WAAW;AAAA,EACjC;AAAA,EACA,OAAO,OAAO,KAAK,KAAK;AAAA,CACzB;;;AFAI,IAAM,kBAAkB,UAA0B,oBAAoB;AAAA,EAC3E,sBAAsB;AACxB,CAAC;AAED,IAAM,OAAmD;AAAA,EAQvD,YAAY,CAAC,MAAM,UAAU;AAAA,IAC3B,IAAI,OAAO,KAAK,YAAY;AAAA,MAAU;AAAA,IACtC,OAAO;AAAA,MACL,cAAc,aAAa,KAAK,mBAAmB;AAAA,MACnD,YAAY,KAAK,KAAK,aAAa;AAAA,MACnC,IAAI,IAAI,KAAK,OAAO,KAAK;AAAA,MACzB,UAAU,IAAI,KAAK,aAAa,KAAK;AAAA,MACrC,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,UAAU,KAAK,KAAK,WAAW;AAAA,MAC/B,YAAY,KAAK,KAAK,aAAa;AAAA,MACnC,cAAc,KAAK,KAAK,eAAe;AAAA,MACvC,mBAAmB,KAAK,KAAK,oBAAoB;AAAA,MACjD,QAAQ,IAAI,KAAK,WAAW,KAAK;AAAA,MACjC,YAAY,IAAI,KAAK,eAAe,KAAK;AAAA,MACzC,MAAM,IAAI,KAAK,SAAS,KAAK;AAAA,MAC7B,aAAa,IAAI,KAAK,gBAAgB,KAAK;AAAA,MAC3C,mBAAmB,IAAI,KAAK,sBAAsB,KAAK;AAAA,IACzD;AAAA;AAAA,EAEF;AAAA,EACA,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EAYA,SAAS,CAAC,YAAY,UACpB,KAAK,MAAM,MAAM,WAAW,MAAM,WAAW,YAAY,KACzD,KAAK,MAAM,UAAU,WAAW,UAAU,WAAW,YAAY,KACjE,KAAK,MAAM,mBAAmB,WAAW,iBAAiB,KAC1D,KAAK,KAAK,MAAM,UAAU,GAAG,WAAW,YAAY,WAAW,UAAU,KACzE,KAAK,MAAM,YAAY,WAAW,YAAY,WAAW,eAAe,EAAE,KAC1E,KAAK,KAAK,MAAM,WAAW,GAAG,WAAW,WAAW;AAAA,EAUtD,MAAM,CAAC,UAAU,GAAG,OAAO,KAAK;AAAA,EAChC,YAAY;AACd;AAEA,IAAM,OAAM,cAAc,IAAI;AAEvB,IAAM,0BAA0B,MAC5B,iBACP,iBACO,iBACL,gBAAgB,SAAS,GAAG;AAAA,EAE1B,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAM,GAAG,WAAW,KAAI,KAAK,IAAI;AAAA,EACjC,MAAM,GAAG,MAAM,aAAa,KAAI,KAAK,MAAM,MAAM;AAAA,EAMjD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IACxC,MAAM,OAAO,OAAO,KAAI,KAAK,IAAI;AAAA,IACjC,IAAI;AAAA,IACJ,IAAI,SAAS,WAAW;AAAA,MAItB,OAAO,KAAI,YAAY,MAAM,IAAI;AAAA,MACjC,OAAO,cAAc,MAAM,KAAK,WAAW,IAAI,GAAG,OAAO,IAAI,CAAC;AAAA,MAC9D,OAAO,OAAO,IACZ,KAAK,QACL,aACA,QACA,WAAW,IAAI,GACf,WAAW,IAAI,CACjB;AAAA,IACF,EAAO;AAAA,MAQL,MAAM,OAAO,WAAW,KAAK,SAAS,MAAM,MAAM,WAAW,IAAI,CAAC;AAAA,MAClE,IAAI,SAAS,WAAW;AAAA,QACtB,OAAO,KAAI,YAAY,IAAI;AAAA,QAC3B,OAAO,OAAO,IAAY,KAAK,QAAQ,aAAa,OAAO,OAAO,IAAI,GAAG,IAAI;AAAA,MAC/E;AAAA;AAAA,IAEF,MAAM,QAAQ,OAAO,QACnB,MACA,KAAI,MACJ,CAAC,QAAQ,QAAQ,aAAa,KAAK,QAAQ,KAAK,IAAI,CACtD;AAAA,IACA,IAAI,UAAU,aAAa,CAAC,KAAK,QAAQ,OAAO,IAAI,GAAG;AAAA,MACrD,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,OAAO,IAAI,sEACZ,qDAAqD,QAAQ,sBAC7D,8EACA,UACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAYD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,IAAY,KAAK,QAAQ,aAAa,UAAU,OAAO,IAAI,CAAC;AAAA,IACnE,MAAM,OAAO,OAAO,QAAO,MAAM,KAAI,MAAM,CAAC,QAAQ,QAAQ,SAAS;AAAA,IACrE,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,OAAO,IAAI,uEACZ,iFACA,mCACJ,CACF;AAAA,IACF;AAAA,GACD;AACH,CAAC,CACH,CACF;;AGtIF,qBAAS;AACT,uBAAS;AACT;AACA;;;AChEO,IAAM,OAAO,CAAC,SAAiB,KAAK,KAAK,EAAE,YAAY;AAyBvD,IAAM,OAAO,CAAC,UAAmB;AAAA,EACtC,MAAM,MAAM,KAAK,KAAK,EAAE,KAAK;AAAA,EAC7B,MAAM,OAAO,IAAI,SAAS,GAAG,IAAI,SAAS;AAAA,EAC1C,OAAO,IAAI,SAAS,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,KAAK,MAAM,IAAI;AAAA;AAwBpD,IAAM,UAAU,CAAC,UAAmB;AAAA,EACzC,MAAM,UAAU,KAAK,KAAK,EAAE,KAAK;AAAA,EACjC,OAAO,YAAY,MAAM,KAAK;AAAA;AAqBzB,IAAM,OAAO,CAAC,UAAsD;AAAA,EACzE,MAAM,OAAO,QAAQ,MAAM,OAAO;AAAA,EAClC,OAAO,EAAE,MAAM,KAAK,MAAM,IAAI,MAAO,SAAS,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,EAAG;AAAA;;;ADkCtE,IAAM,uBAAuB,UAA+B,uBAAuB;AAE1F,IAAM,YAAW,YAAyD;AAAA,EAQxE,YAAY,CAAC,MAAM,UAAU;AAAA,IAC3B,MAAM,UAAU,KAAK,KAAK,OAAO;AAAA,IACjC,OAAO,YAAY,KACf,YACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS,QAAQ,KAAK,UAAU;AAAA,MAChC,WAAW,IAAI,KAAK,cAAc,CAAC;AAAA,MAEnC,MAAM,KAAK,KAAK,SAAS,MAAM,IAAI;AAAA,IACrC;AAAA;AAAA,EAEN,YAAY,MAAM;AAAA,EAClB,YAAY,CAAC,WAAW,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,KAAK;AAAA,EAO3D,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS,CAAC,YAAY,UACpB,WAAW,SAAS,KAAK,MAAM,IAAI,KAAK,WAAW,YAAY,QAAQ,MAAM,OAAO;AAAA,EAKtF,MAAM,CAAC,UAAU,4BAA4B,MAAM;AAAA,EACnD,YAAY;AACd,CAAC;AASM,IAAM,+BAA+B,MACjC,iBACP,sBACO,iBACL,qBAAqB,SAAS,GAAG;AAAA,KAC5B;AAAA,EACH,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAI3C,IAAI,WAAW,aAAa,YAAW,IAAI,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,IAAI,GAAG;AAAA,MACrF,OAAO,EAAE,QAAQ,UAAU;AAAA,IAC7B;AAAA,IACA,OAAO,OAAO,UAAS,KAAK,EAAE,MAAM,OAAO,CAAC;AAAA,GAC7C;AACH,CAAC,CACH,CACF;;AE/IF,qBAAS;AACT,uBAAS;AACT;AACA;AACA;;;ACpEA;AACA;AAMO,IAAM,eAAe;AACrB,IAAM,eAAe;AAWrB,IAAM,gBAAgB,CAAC,aAAgC;AAAA,EAC5D,MAAM,QAAQ,YAAW;AAAA,EACzB,OAAO,UAAU,MAAM,KAAK;AAAA;AAI9B,IAAM,aAAa,CAAC,SAAsC;AAAA,EACxD,MAAM,SAAS,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC;AAAA,EACrD,OAAO,WAAW,KAAK,CAAC,IAAI,OAAO,MAAM,GAAG;AAAA;AAGvC,IAAM,cAAa,CAAC,WAAwD;AAAA,EACjF,SAAS,cAAc,MAAM,OAAO;AAAA,EACpC,SAAS,MAAM;AACjB;AAGO,IAAM,aAAa,CAAC,WAAqD;AAAA,EAC9E,SAAS,cAAc,MAAM,OAAO;AAAA,EACpC,SAAS,MAAM;AACjB;AAEA,IAAM,gBAAe,CAAC,MAAqC,WAAwC;AAAA,EAKjG,SAAS,KAAK,KAAK,OAAO;AAAA,EAE1B,SAAS,MAAM;AAAA,EACf,SAAS,WAAW,KAAK,OAAO;AAClC;AAMO,IAAM,WAAU,CAAC,YAA6B,UACnD,WAAW,YAAY,cAAc,MAAM,OAAO;AAuB7C,IAAM,kBAAkB,CAAC,UAC9B,iBACE,OAAO,MAAM,QAAQ,QAAQ,OAAc,uBAAe,EAAE,SAAS,MAAM,QAAQ,CAAC,CAAC,CACvF,EAAE,KACO,aAAI,CAAC,SACV,SAAS,aACL,aACA,KAAK,YAAY,YACf,YACA,cAAa,MAAM,KAAK,CAChC,CACF;AAeK,IAAM,YAAY,CAAC,UACxB,gBAAgB,KAAK,EAAE,KAAY,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CAAC;AAG5D,IAAM,kBAAiB,CAAC,SAC7B,SAAS,aAAa,YAAY;;;ADM7B,IAAM,eAAe,WAAuB,iBAAiB;AAAA,EAClE,sBAAsB;AACxB,CAAC;AAEM,IAAM,uBAAuB,MACzB,kBACP,cACO,iBACL,aAAa,SAAS,GAAG;AAAA,EAKvB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAY7B,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,OAAO,gBACL,OAAO,WAAW,YAAY,UAAU,IAAI,IAAI,gBAAgB,IAAI,CACtE;AAAA,GACD;AAAA,EACD,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,CAAC,YAAW,IAAI;AAAA,MAAG;AAAA,IACvB,OAAO,YAAW,cAAc,YAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACtE,OAAO,YAAW,cAAc,WAAW,IAAI,GAAG,KAAK;AAAA,IACvD,IAAI,WAAW;AAAA,MAAW;AAAA,IAI1B,MAAM,OAAO,OAAO,gBAAgB,IAAI;AAAA,IAGxC,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,iBAAiB,KAAK,OAAO;AAAA,MACtD,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,SAAS,WAAW;AAAA,MAEtB,OAAO,YAAW,cAAc,YAAW,IAAI,GAAG,IAAI;AAAA,MACtD,OAAO,EAAE,QAAQ,SAAS;AAAA,IAC5B;AAAA,IACA,OAAO,SAAQ,MAAM,IAAI,IACpB,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EACD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IAOxC,MAAM,SAAS,gBAAe,OAAO,UAAU,IAAI,CAAC;AAAA,IACpD,OAAO,YAAW,cAAc,YAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACtE,OAAO,YAAW,cAAc,WAAW,IAAI,GAAG,KAAK;AAAA,IACvD,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,OACL,KAAK,QACL,aACA,MACO,0BAAkB,YAAW,IAAI,CAAC,CAC3C;AAAA,IACF,EAAO,SAAI,CAAC,SAAQ,QAAQ,IAAI,GAAG;AAAA,MACjC,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAa,uBAAe,WAAW,IAAI,CAAC,CAAC;AAAA,IACvF;AAAA,IACA,MAAM,QAAQ,gBAAe,OAAO,UAAU,IAAI,CAAC;AAAA,IACnD,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,OAAc,aACnB,IAAI,MACF,iBAAiB,KAAK,2DACpB,iFACA,+EACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EACD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,OACL,KAAK,QACL,aACA,MACO,0BAAkB,EAAE,SAAS,KAAK,QAAQ,CAAC,CACpD;AAAA,GACD;AACH,CAAC,CACH,CACF;;AE5KF,qBAAS;AACT;AACA;AAmDO,IAAM,oBAAoB,WAA4B,oBAAoB;AAGjF,IAAM,OAAO,CAAC,QAAgB,IAAI,MAAM,GAAG,EAAE,MAAM;AAOnD,IAAM,SAAQ,CAAC,WAA4B;AAAA,EACzC,SAAS,MAAM,WAAW;AAAA,EAC1B,cAAc,OAAO,MAAM,gBAAgB,CAAC;AAAA,EAC5C,aAAa,OAAO,MAAM,eAAe,CAAC;AAAA,EAC1C,OAAO,MAAM,SAAS;AACxB;AAEA,IAAM,YAAW,YAAmD;AAAA,EAClE,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,SAAS,OAAO,KAAK,eAAe,WAAW,KAAK,aAAa;AAAA,IACjE,cAAc,IAAI,KAAK,iBAAiB,CAAC;AAAA,IACzC,aAAa,IAAI,KAAK,gBAAgB,CAAC;AAAA,IACvC,KAAK,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS,MAAM;AAAA,IAC3D,OAAO,OAAO,KAAK,aAAa,WAAW,KAAK,WAAW;AAAA,IAC3D,MAAM,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU,KAAK,MAAM,GAAG;AAAA,EACxE;AAAA,EAMA,YAAY,MAAM;AAAA,EAClB,YAAY,CAAC,WAAW,KAAK,OAAM,KAAK,GAAG,KAAK,MAAM,IAAI;AAAA,EAS1D,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS,CAAC,YAAY,UACpB,WAAW,WAAW,MAAM,SAAS,cACrC,WAAW,aAAa,MAAM,WAAW,OACzC,WAAW,iBAAiB,MAAM,eAAe,MACjD,WAAW,kBAAkB,MAAM,gBAAgB;AAAA,EAMrD,MAAM,CAAC,UAAU,wBAAwB,MAAM;AAAA,EAC/C,YAAY;AACd,CAAC;AAiBM,IAAM,4BAA4B,MAC9B,kBAAO,mBAA0B,iBAAQ,kBAAkB,SAAS,GAAG,SAAQ,CAAC,CAAC;;ACpG5F,qBAAS;AACT;AACA;;;ACzCO,IAAM,WAAW,CAAC,UAAkD;AAAA,EACzE,MAAM,SAAS,IAAI;AAAA,EACnB,WAAW,SAAS,OAAO,UAAU,WAAW,MAAM,MAAM,GAAG,IAAK,SAAS,CAAC,GAAI;AAAA,IAChF,OAAO,MAAM,YAAY,MAAM,KAAK,EAAE,MAAM,GAAG;AAAA,IAC/C,IAAI,SAAS,aAAa,SAAS;AAAA,MAAI;AAAA,IACvC,MAAM,OAAO,OAAO,SAAS,YAAY,KAAK,EAAE;AAAA,IAChD,OAAO,IAAI,MAAM,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI;AAAA,EAChD;AAAA,EACA,OAAO,CAAC,GAAG,OAAO,KAAK,CAAC,EACrB,KAAK,EACL,IAAI,CAAC,SAAS;AAAA,IACb,MAAM,OAAO,OAAO,IAAI,IAAI,KAAK;AAAA,IACjC,OAAO,SAAS,IAAI,OAAO,GAAG,QAAQ,OAAO,IAAI;AAAA,GAClD,EACA,KAAK,GAAG;AAAA;AAYN,IAAM,WAAW,CAAC,UACvB,OAAO,UAAU,YAAY,UAAU,OACnC,OAAO,QAAQ,KAAK,EACjB,IAAI,EAAE,QAAQ,aAAa,GAAG,WAAW,OAAO,OAAO,GAAG,EAC1D,KAAK,EACL,KAAK,IAAI,IACZ;AAqBC,IAAM,cAAc,CAAC,QAC1B,IAAI,QAAQ,yBAAyB,CAAC,YAAY;AAAA,EAChD,IAAI;AAAA,IACF,OAAO,mBAAmB,OAAO;AAAA,IACjC,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,CAEV;AAuBI,IAAM,WAAW,CAAC,WAA4D;AAAA,EACnF,SAAS,MAAM,YAAY,aAAa,MAAM,YAAY,KAAK,YAAY,MAAM;AAAA,EACjF,SAAS,MAAM,YAAY,OAAO,MAAM;AAAA,KACpC,MAAM,SAAS,kBAAkB,EAAE,QAAQ,MAAM,WAAW,OAAO,MAAM,UAAU,IAAI,CAAC;AAC9F;AA8BA,IAAM,WAAW,CAAC,WAAgD;AAAA,EAChE,UAAU,MAAM;AAAA,EAChB,WAAW,IAAI,MAAM,SAAS;AAAA,EAC9B,MAAM,MAAM;AAAA,KACR,MAAM,SAAS,kBAAkB,EAAE,OAAO,SAAS,MAAM,KAAK,EAAE,IAAI,CAAC;AAC3E;AAEO,IAAM,QAAO,CAAC,UAAuB;AAAA,EAC1C,MAAM,SAAS,SAAS,KAAK;AAAA,EAC7B,YAAY,QAAQ,UAAU,OAAO,QAAQ,SAAS,KAAK,CAAC,GAAG;AAAA,IAC7D,IAAI,UAAU;AAAA,MAAW,OAAO,UAAU;AAAA,EAC5C;AAAA,EACA,OAAO;AAAA;AAiBF,IAAM,YAAY,CAAC,UACxB,OAAO,QAAQ,SAAS,KAAK,CAAC,EAC3B,OAAO,IAAI,WAAW,UAAU,SAAS,EACzC,IAAI,EAAE,YAAY,MAAM;;;ADtBtB,IAAM,gBAAgB,WAAwB,gBAAgB;AAErE,IAAM,YAAW,YAA2C;AAAA,EAC1D,YAAY,CAAC,MAAM,UAAU;AAAA,IAO3B,MAAM,WAAW,KAAK,KAAK,OAAO;AAAA,IAClC,IAAI,aAAa,MAAM,aAAa,MAAM;AAAA,MAAM;AAAA,IAChD,OAAO;AAAA,MACL,UAAU,KAAK,KAAK,WAAW;AAAA,MAC/B,SAAS,KAAK,KAAK,UAAU;AAAA,MAO7B,SAAS,KAAK,KAAK,YAAY,KAAK;AAAA,MACpC,QAAQ,SAAS,KAAK,SAAS;AAAA,MAC/B,OAAO,SAAS,OAAO,KAAK,aAAa,WAAW,KAAK,WAAW,SAAS;AAAA,MAC7E,OAAO,IAAI,KAAK,UAAU,CAAC;AAAA,MAC3B,WAAW,IAAI,OAAO,KAAK,iBAAiB,WAAW,KAAK,eAAe,SAAS;AAAA,MACpF,MAAM,KAAK,KAAK,SAAS,MAAM,IAAI;AAAA,MACnC,QAAQ,KAAK,KAAK,WAAW,KAAK;AAAA,MAClC,MAAM,MAAM;AAAA,IACd;AAAA;AAAA,EAEF,YAAY,MAAM;AAAA,EAGlB,YAAY,CAAC,WAAW,KAAK,MAAK,KAAK,GAAG,MAAM,MAAM,KAAK;AAAA,EAa3D,UAAU,EAAE,QAAQ,8BAA8B,QAAQ,mCAAmC;AAAA,EAC7F,SAAS,CAAC,YAAY,UACpB,WAAW,cAAc,IAAI,MAAM,SAAS,KAC5C,WAAW,aAAa,MAAM,YAC9B,WAAW,YAAY,YAAY,MAAM,WAAW,EAAE,KACtD,WAAW,aAAa,MAAM,YAAY,UACzC,MAAM,SAAS,mBACb,WAAW,UAAU,SAAS,MAAM,KAAK,KACxC,WAAW,YAAY,MAAM,WAAW;AAAA,EAE9C,MAAM,CAAC,UAAU,oBAAoB,MAAM;AAAA,EAO3C,YAAY,CAAC,UAAU;AAAA,IACrB,MAAM,QAAQ,UAAU,KAAK;AAAA,IAC7B,MAAM,SAAS,MAAK,KAAK;AAAA,IACzB,OAAO,WAAW,QAAQ,KAAK;AAAA;AAEnC,CAAC;AASM,IAAM,wBAAwB,MAC1B,kBAAO,eAAsB,iBAAQ,cAAc,SAAS,GAAG,SAAQ,CAAC,CAAC;;AErNpF,qBAAS;AACT,uBAAS;AAET;AACA;;;ACvBA;AACA;AACA,kBAAS;AACT;AACA;;;ACiBA;AACA;AACA;AACA;AAEA,IAAM,SAAS;AACf,IAAM,aAAa;AAEnB,IAAM,OAAO,CAAC,KAAa,eAClB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,MAAM,OAAc,uBAAc,SAAS;AAAA,EACjD,IAAW,eAAO,GAAG;AAAA,IAAG,OAAO,IAAI,MAAM,IAAI,KAAK,UAAU;AAAA,CAC7D;AAEH,IAAM,QAAQ,CAAC,KAAa,eACnB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,MAAM,OAAc,uBAAc,SAAS;AAAA,EACjD,IAAW,eAAO,GAAG;AAAA,IAAG,OAAO;AAAA,EAC/B,QAAQ,OAAO,IAAI,MAAM,IAAY,GAAG,OAAO;AAAA,CAChD;AAOI,IAAM,iBAAiB,CAAC,eACtB,YAAG,KAAK,YAAY,UAAU,GAAG,SAAS;AAQ5C,IAAM,aAAa,CACxB,YACA,cAEO,aAAI,UAAU,GAAG;AAAA,EACtB,OAAO,eAAe,UAAU;AAAA,EAChC,MAAM,WAAW,MAAa,iBAAQ,SAAS;AAAA,EAC/C,MAAM,QAAQ,OAAO,UAAU,KAAY,eAAM,QAAQ,GAAU,qBAAY,QAAQ,CAAC;AAAA,EACxF,IAAI,UAAU,aAAa,UAAU,QAAQ,QAAQ,GAAG,KAAK;AAAA,IAAG;AAAA,EAChE,OAAO,KAAK,QAAQ,UAAU;AAAA,CAC/B;AAGI,IAAM,UAAU,CAAC,eAA+C,MAAM,QAAQ,UAAU;AAGxF,IAAM,aAAa,CAAC,eACzB,MAAM,YAAY,UAAU;AAuBvB,IAAM,iBAAiB,CAAsB,YAAkB;AAAA,EACpE,QAAQ,MAAM,SAAS;AAAA,EACvB,IAAI,SAAS,aAAa,SAAS;AAAA,IAAW,OAAO;AAAA,EACrD,MAAM,UAA6B,CAAC,UAC3B,aAAI,UAAU,GAAG;AAAA,IACtB,IAAI,MAAM,WAAW,WAAW;AAAA,MAC9B,OAAO,WAAW,MAAM,YAAY,KAAK,KAAK,OAAO,QAAQ,UAAU,CAAC,CAAC;AAAA,IAC3E;AAAA,IACA,OAAO,OAAO,KAAK,KAAK;AAAA,GACzB;AAAA,EAEH,OAAO,KAAK,SAAS,MAAM,QAAQ;AAAA;;;ACxGrC,kBAAS;AACT;AACA;AACA;;;ACIA;AACA;AACA;AAEA,IAAM,SAAS,CAAC,UAA4B,UAAU,aAAa,UAAU;AAE7E,IAAM,gBAAgB,CAAC,UAAqD;AAAA,EAC1E,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO;AAAA,EAChF,MAAM,QAAiB,OAAO,eAAe,KAAK;AAAA,EAClD,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA;AAO1C,IAAM,UAAU,CAAC,UAAmB,aAA+B;AAAA,EACxE,IAAI,OAAO,QAAQ;AAAA,IAAG,OAAO;AAAA,EAC7B,IAAI,OAAO,QAAQ;AAAA,IAAG,OAAO;AAAA,EAC7B,IAAI,MAAM,QAAQ,QAAQ,GAAG;AAAA,IAC3B,IAAI,CAAC,MAAM,QAAQ,QAAQ;AAAA,MAAG,OAAO;AAAA,IACrC,OAAO,SAAS,MAAM,CAAC,MAAM,UAAU,QAAQ,MAAM,SAAS,MAAM,CAAC;AAAA,EACvE;AAAA,EACA,IAAI,cAAc,QAAQ,GAAG;AAAA,IAC3B,IAAI,CAAC,cAAc,QAAQ;AAAA,MAAG,OAAO;AAAA,IACrC,OAAO,OAAO,QAAQ,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAU,QAAQ,MAAM,SAAS,IAAI,CAAC;AAAA,EACrF;AAAA,EACA,OAAO;AAAA;AASF,IAAM,mBAAmB,CAAC,KAAa,UACrC,aAAW,uBAAc,KAAK,GAAG,CAAC,UAAU;AAAA,EACjD,MAAM,WAAkB,eAAO,KAAK,IAAI,MAAM,MAAM,UAAU,OAAO;AAAA,EACrE,OAAO,aAAa,aAAa,QAAQ,SAAS,OAAO,KAAK;AAAA,CAC/D;;;ADtCH,IAAM,UAAiB,aAAI,UAAU,GAAG;AAAA,EACtC,MAAM,QAAQ,OAAc,uBAAc,MAAK;AAAA,EAC/C,MAAM,QAAQ,OAAc,uBAAc,KAAK;AAAA,EAC/C,IAAW,eAAO,KAAK,KAAY,eAAO,KAAK;AAAA,IAAG;AAAA,EAClD,MAAM,QAAsB,OAAO,MAAM;AAAA,EACzC,MAAM,QAAe,EAAE,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,EACzE,OAAO,EAAE,WAAW,MAAM,MAAM,WAAW,OAAO,MAAM;AAAA,CACzD;AAED,IAAM,QAAQ,CAAC,OAAqB,OAAc,QAChD,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC,EAAE,KAAY,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CAAC;AAczE,IAAM,eAAe,CAAC,KAAc,eAA+C;AAAA,EACjF,IAAI,KAAK;AAAA,EACT,OAAO,OAAO,OAAO,YAAY,OAAO,QAAQ,CAAC,cAAc,EAAW,GAAG;AAAA,IAC3E,MAAM,aAAa;AAAA,IACnB,IAAI,WAAW,eAAe;AAAA,MAAY,OAAO;AAAA,IACjD,KAAK,WAAW;AAAA,EAClB;AAAA,EACA;AAAA;AAIK,IAAM,qBAAqB,CAChC,KACA,eAEO,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAO;AAAA,EACrB,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,WAAW,MAAM,CAAC,KAAK,GAAI,MAAM,UAAU,MAAM,cAAc,CAAC,CAAE,GAAG;AAAA,IACnE,MAAM,aAAa,aAAa,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,EAAE,GAAG,UAAU;AAAA,IACtF,IAAI,eAAe;AAAA,MAAW,OAAO;AAAA,EACvC;AAAA,EACA;AAAA,CACD;AAcI,IAAM,mBAAmB,CAAC,KAAa,eACrC,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,aAAa,OAAO,mBAAmB,KAAK,UAAU;AAAA,EAC5D,IAAI,eAAe;AAAA,IAAW,OAAO;AAAA,EACrC,QAAQ,OAAO,iBAAiB,KAAK,WAAW,KAAK,KAAK,UAAU;AAAA,CACrE;AAQI,IAAM,WAAW,CAAC,KAAa,eAC7B,aACL,mBAAmB,KAAK,UAAU,GAClC,CAAC,eAAe,YAAY,WAAW,UACzC;AAaK,IAAM,sBAAsB,CAAC,KAAa,eACxC,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAO;AAAA,EACrB,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,GAAG;AAAA,EACtD,MAAM,OAAO;AAAA,EACb,IAAI,MAAM,WAAW,cAAc,KAAK,eAAe,cAAc,KAAK,SAAS,WAAW;AAAA,IAC5F;AAAA,EACF;AAAA,EACA,OAAO,MAAM,MAAM,OAAO,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE,KAAY,eAAM;AAAA,CACtE;;;AFxFI,IAAM,eAAe,CAAC,QACpB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAc,uBAAc,MAAK;AAAA,EAC/C,MAAM,SAAgB,eAAO,KAAK,IAAI,MAAM,MAAM,UAAU,MAAM,QAAQ;AAAA,EAC1E,IAAI,WAAW;AAAA,IAAW,OAAO;AAAA,EACjC,MAAM,SAAS,OAAc,uBAAc,WAAW;AAAA,EACtD,IAAW,eAAO,MAAM;AAAA,IAAG,OAAO,OAAO;AAAA,EACzC,MAAM,UAAU,OAAc,uBAAc,cAAc;AAAA,EAC1D,OAAc,eAAO,OAAO,IAAI,QAAQ,MAAM,QAAQ;AAAA,CACvD;AAqBH,IAAM,YAAY,CAAC,UACV,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,OAAO,SAAS,MAAM,KAAK,MAAM,UAAU;AAAA,IAAG,OAAO;AAAA,EACzD,OAAO,OAAO,WAAW,MAAM,UAAU;AAAA,CAC1C;AAGI,IAAM,gBAAgB,CAAC,UACrB,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,EAAE,OAAO,aAAa,MAAM,GAAG;AAAA,IAAI,OAAO;AAAA,EAC9C,OAAO,OAAO,UAAU,KAAK;AAAA,CAC9B;AAuBI,IAAM,iBAAiB,CAAC,OAAc,SACpC,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,MAAM,WAAW;AAAA,IAAW;AAAA,EAChC,IAAI,OAAO,QAAQ,MAAM,UAAU;AAAA,IAAG;AAAA,EACtC,MAAM,MAAM,OAAO,UAAU,KAAK;AAAA,EAClC,IAAI,QAAQ,OAAO,aAAa,MAAM,GAAG;AAAA,IAAI;AAAA,EAC7C,OAAO,oBAAoB,MAAM,KAAK,MAAM,UAAU;AAAA,EACtD,MAAM,SAAS,MACX,mGACA;AAAA,EACJ,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,yFACD,0FACA,+BAA+B,QACnC,CACF;AAAA,CACD;AAGI,IAAM,WACX,CAAC,UACD,CAAC,SACC,eAAe,OAAO,IAAI;;;AIjG9B,oBAAS;AACT;AAcO,IAAM,aAAa,CACxB,KACA,aAEO,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,WAAW,OAAO,iBAAiB,IAAI,KAAK,IAAI,UAAU;AAAA,EAChE,IAAI,aAAa;AAAA,IAAU,OAAO;AAAA,EAClC,IAAI,aAAa,WAAW;AAAA,IAC1B,OAAc,oBACZ,GAAG,IAAI,mFACL,iFACJ;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,CAAC,WACT,YACE,oBACL,GAAG,IAAI,+EACL,IAAI,kBAAkB,QAAQ,OAAO,UAAU,OAAO,MAAM,kCAChE,GACA,KACF;AAAA,EACF,OAAO,OAAO,SAAQ,KAAY,eAAM,QAAQ,GAAU,qBAAY,QAAQ,CAAC;AAAA,CAChF;AAOI,IAAM,YAAY,CACvB,KACA,OACA,aAEO,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,UAAU,aAAa,IAAI,WAAW;AAAA,IAAW,OAAO;AAAA,EAC5D,QAAQ,OAAO,WAAW,KAAK,QAAO,KAAK,QAAQ,SAAQ,KAAK;AAAA,CACjE;;;AC3DI,IAAM,QAAQ,CAAC,OAAe,eACnC,MACG,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,IAAI,CAAC,SAA2B;AAAA,EAC/B,MAAM,KAAK,KAAK,QAAQ,GAAG;AAAA,EAC3B,IAAI,OAAO;AAAA,IAAI,OAAO,CAAC,cAAc,MAAM,eAAe,YAAY,KAAK,IAAI;AAAA,EAC/E,OAAO,CAAC,KAAK,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC,EAAE,KAAK,CAAC;AAAA,CAC5D;AAOL,IAAM,WAAuE;AAAA,EAC3E,KAAK,EAAE,cAAc,IAAI;AAAA,EACzB,UAAU,EAAE,cAAc,KAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,KAAK,SAAS,IAAI;AAAA,EAChF,KAAK,EAAE,UAAU,KAAK,gBAAgB,KAAK,WAAW,KAAK,MAAM,OAAO;AAAA,EACxE,QAAQ,EAAE,QAAQ,KAAK,WAAW,KAAK,OAAO,KAAK,WAAW,KAAK,IAAI,KAAK,QAAQ,IAAI;AAC1F;AAGA,IAAM,QAAQ,IAAI,IAAI;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,IAAM,OAAO,IAAI,IAAI,CAAC,SAAS,cAAc,CAAC;AAG9C,IAAM,iBAAiB,CAAC,KAAa,UAAkB;AAAA,EACrD,IAAI,MAAM,IAAI,GAAG;AAAA,IAAG,OAAO,eAAe,KAAK;AAAA,EAC/C,IAAI,KAAK,IAAI,GAAG;AAAA,IACd,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG;AAAA,EAClF,IAAI,QAAQ;AAAA,IAAU,OAAO,MAAM,YAAY;AAAA,EAC/C,OAAO;AAAA;AAIF,IAAM,YAAY,CACvB,OACA,QACA,eACwB;AAAA,EACxB,MAAM,WAAW,SAAS,WAAW,CAAC;AAAA,EACtC,MAAM,MAAM,IAAI;AAAA,EAChB,YAAY,KAAK,QAAQ,MAAM,OAAO,UAAU,GAAG;AAAA,IACjD,MAAM,YAAY,eAAe,KAAK,GAAG;AAAA,IACzC,IAAI,SAAS,SAAS;AAAA,MAAW,IAAI,IAAI,KAAK,SAAS;AAAA,EACzD;AAAA,EACA,OAAO;AAAA;AAGF,IAAM,UAAU,CAAC,MAA2B,UACjD,KAAK,SAAS,MAAM,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,WAAW,MAAM,IAAI,GAAG,MAAM,KAAK;AAGjF,IAAM,aAAa,CAAC,SACzB,CAAC,GAAG,IAAG,EACJ,IAAI,EAAE,KAAK,WAAW,GAAG,OAAO,OAAO,EACvC,KAAK,EACL,KAAK,GAAG;AAGN,IAAM,WAAW,CAAC,MAA0B,OAA0B,CAAC,MAC5E,CAAC,GAAG,KAAK,OAAO,CAAC,QAAQ,KAAI,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,KAAI,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EACxF,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAI,IAAI,GAAG,KAAK,IAAI,EAC3C,KAAK,GAAG;AAMN,IAAM,UAAU,CAAC,UAAkB,SAAiB;AAAA,EACzD,MAAM,OAAO,UAAU,UAAU,KAAK;AAAA,EACtC,MAAM,OAAO,UAAU,MAAM,KAAK;AAAA,EAClC,IAAI,CAAC,KAAK,IAAI,QAAQ;AAAA,IAAG,KAAK,OAAO,QAAQ;AAAA,EAC7C,OAAO,EAAE,MAAM,KAAK;AAAA;AAQf,IAAM,WAAW,CAAC,UAAkB,SAA6B;AAAA,EACtE,MAAM,OAAO,IAAI,IAAI,MAAM,QAAQ,CAAC;AAAA,EACpC,MAAM,MAAM,SAAS,YAAY,YAAY,IAAI,IAAI,MAAM,IAAI,CAAC,EAAE,IAAI,QAAQ;AAAA,EAC9E,IAAI,CAAC,KAAK,IAAI,QAAQ,KAAK,QAAQ;AAAA,IAAW,KAAK,IAAI,UAAU,GAAG;AAAA,EACpE,OAAO,SAAS,MAAM,CAAC,MAAM,CAAC;AAAA;AAIzB,IAAM,SAAS,CAAC,UACrB,CAAC,GAAG,IAAI,IAAI,MAAM,MAAM,SAAS,EAAE,OAAO,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,EAC5D,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,EAC9B,KAAK,EACL,KAAK,GAAG;AAGN,IAAM,cAAc,CAAC,UAC1B,MACG,MAAM,SAAS,EACf,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,KAAK,GAAG;AAMN,IAAM,kBAAkB,CAAC,UAAkB,MAAM,QAAQ,QAAQ,EAAE;AAGnE,IAAM,eAA8E;AAAA,EACzF,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,KAAK;AACP;AAGO,IAAM,YAAiC,IAAI,IAAI;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,kBAAoD;AAAA,EAC/D,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,KAAK;AACP;AAGO,IAAM,aAAa,CAAC,KAAa,UAA0B;AAAA,EAChE,MAAM,QAAO,aAAa;AAAA,EAC1B,IAAI,UAAS;AAAA,IAAU,OAAO,OAAO,OAAO,KAAK,CAAC;AAAA,EAClD,IAAI,UAAS;AAAA,IAAQ,OAAO,eAAe,KAAK;AAAA,EAChD,IAAI,QAAQ;AAAA,IAAe,OAAO,gBAAgB,KAAK;AAAA,EACvD,IAAI,QAAQ;AAAA,IAAY,OAAO,WAAW,UAAU,OAAO,UAAU,CAAC;AAAA,EACtE,IAAI,QAAQ,gBAAgB,QAAQ;AAAA,IAAgB,OAAO,YAAY,KAAK;AAAA,EAC5E,IAAI,QAAQ;AAAA,IAAW,OAAO,eAAe,OAAO,OAAO;AAAA,EAC3D,IAAI,QAAQ;AAAA,IAAQ,OAAO,OAAO,KAAK;AAAA,EACvC,OAAO;AAAA;;;ACrFF,IAAM,WAAgC,IAAI,IAAI;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,UAAU;AAAA,EACrB,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AACP;AAKO,IAAM,aAAa,CAAC,QAA8D;AAAA,EACvF,MAAM,QAAQ,6BAA6B,KAAK,GAAG;AAAA,EACnD,IAAI,UAAU;AAAA,IAAM;AAAA,EACpB,MAAM,SAAS,MAAM;AAAA,EACrB,MAAM,QAAQ,OAAO,MAAM,EAAE;AAAA,EAC7B,OAAO,QAAQ,QAAQ,UAAU,CAAC,QAAQ,KAAK,IAAI;AAAA;AAI9C,IAAM,aAAkC,IAAI,IAAI;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,gBAAgB,CAAC,OAAiB,QAC5C,MAA6C;AAGzC,IAAM,eAAe,CAAC,UAC3B,OAAO,KAAK,KAAK,EACd,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG,KAAK,cAAc,OAAO,GAAG,MAAM,SAAS,EAC/E,KAAK;AAGH,IAAM,YAAY,CAAC,UACxB,UAAU,OAAO,MAAM,UAAU,QAAQ,MAAM,OAAO,KAAK;AAStD,IAAM,eAAe,CAAC,QAC3B,aAAa,SAAS,aACtB,QAAQ,kBACR,QAAQ,YACR,WAAW,GAAG,MAAM;AAUf,IAAM,eAAe,CAAC,SAA0D;AAAA,EACrF,MAAM,MAA8B,CAAC;AAAA,EACrC,YAAY,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;AAAA,IAC/C,IAAI,CAAC,aAAa,GAAG,KAAK,SAAS,IAAI,GAAG;AAAA,MAAG;AAAA,IAC7C,IAAI,UAAU,QAAQ,UAAU,aAAa,OAAO,UAAU;AAAA,MAAU;AAAA,IACxE,IAAI,OAAO,UAAU,KAAK;AAAA,EAC5B;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,YAAY,CAAC,SAA4C;AAAA,EACpE,MAAM,MAAM,KAAK;AAAA,EACjB,IAAI,CAAC,MAAM,QAAQ,GAAG;AAAA,IAAG,OAAO,CAAC;AAAA,EACjC,OAAO,IACJ,IAAI,CAAC,SAAmB,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAK,EAAE,IAAI,EAAG,EACnE,OAAO,CAAC,QAAQ,QAAQ,EAAE;AAAA;;;AC9L/B,IAAM,WAAW;AAEjB,IAAM,QAA0C;AAAA,EAC9C,GAAG,QAAQ;AAAA,EACX,GAAG;AAAA,EACH,GAAG,QAAQ;AAAA,EACX,GAAG,QAAQ;AACb;AAGO,IAAM,YAAY,CAAC,UAAqC;AAAA,EAC7D,MAAM,QAAQ,6BAA6B,KAAK,MAAK,KAAK,CAAC;AAAA,EAC3D,IAAI,UAAU;AAAA,IAAM;AAAA,EACpB,OAAO,KAAK,MAAM,OAAO,MAAM,EAAE,KAAK,MAAM,OAAO,YAAY,IAAK,MAAM,MAAM,OAAO,EAAG;AAAA;AAkBrF,IAAM,cAAc,CAAC,UAAyB;AAAA,EACnD,OAAO,SAAS,MAAM,OAAM,QAAQ;AAAA,EACpC,MAAM,QAAO,QAAQ,OAAO,WAAW,MAAM,KAAK;AAAA,EAClD,MAAM,UAAU,UAAU,OAAM,UAAU,QAAQ;AAAA,EAClD,QAAQ,OAAO,QAAQ;AAAA,EACvB,MAAM,WAAW,QAAQ,IAAI,MAAM;AAAA,EACnC,QAAQ,OAAO,MAAM;AAAA,EACrB,MAAM,QAAQ,SAAS,KAAK,KAAI;AAAA,EAChC,IAAI,UAAU,MAAM;AAAA,IAClB,MAAM,MAAM,GAAG,MAAM,MAAM;AAAA,IAC3B,OAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA,MAAM,UAAU,GAAG;AAAA,MACnB,UAAU;AAAA,MACV,QAAQ,MAAM,MAAM;AAAA,MACpB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,MAAM,OAAO,aAAa,YAAY,YAAY,UAAU,QAAQ;AAAA,EACpE,IAAI,MAAK,WAAW,GAAG,GAAG;AAAA,IACxB,MAAM,QAAO,MAAK,WAAW,OAAO,IAAI,WAAW;AAAA,IACnD,OAAO,EAAE,aAAM,SAAS,MAAM,UAAU,QAAQ,OAAM,SAAS,GAAG;AAAA,EACpE;AAAA,EACA,MAAM,KAAK,MAAK,QAAQ,GAAG;AAAA,EAC3B,OAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,OAAO,KAAK,QAAO,MAAK,MAAM,GAAG,EAAE;AAAA,IAC3C,SAAS,OAAO,KAAK,KAAK,MAAK,MAAM,KAAK,CAAC;AAAA,EAC7C;AAAA;AAaK,IAAM,aAAa,CAAC,WAAmB,OAAO,SAAS,UAAU,OAAO,SAAS;AAOxF,IAAM,UAAU,CAAC,MAAc,aAAqB;AAAA,EAClD,MAAM,QAAQ,CAAC,GAAG,KAAK,UAAU,KAAK,SAAS;AAAA,EAC/C,YAAY,KAAK,UAAU,SAAS;AAAA,IAAS,MAAM,KAAK,GAAG,OAAO,OAAO;AAAA,EACzE,IAAI,KAAK,aAAa;AAAA,IAAW,MAAM,KAAK,QAAQ,KAAK,UAAU;AAAA,EACnE,OAAO,MAAM,KAAK,GAAG;AAAA;AAGhB,IAAM,cAAc,CAAC,KAAa,UAAkB,SAAgC;AAAA,EACzF,MAAM,OAAO,YAAY,QAAQ;AAAA,EACjC,MAAM,OAAO,YAAY,IAAI;AAAA,EAC7B,IAAI,WAAW,IAAI,KAAK,WAAW,IAAI,GAAG;AAAA,IACxC,MAAM,QACJ,KAAK,SAAS,KAAK,QAAQ,KAAK,WAAW,KAAK,UAAU,QAAQ,KAAK,SAAS,KAAK,OAAO;AAAA,IAC9F,OAAO,QAAO,CAAC,IAAI,EAAE,UAAU,KAAK;AAAA,EACtC;AAAA,EACA,IAAI,KAAK,WAAW,KAAK,QAAQ;AAAA,IAC/B,OAAO;AAAA,MACL,QACE,GAAG,yBAAyB,KAAK,uBAAuB,KAAK,0BAC7D;AAAA,IACJ;AAAA,EACF;AAAA,EACA,IAAI,KAAK,SAAS,YAAY,KAAK,YAAY,KAAK,SAAS;AAAA,IAC3D,OAAO;AAAA,MACL,QACE,GAAG,wBAAwB,KAAK,2BAA2B,KAAK,+BAChE;AAAA,IACJ;AAAA,EACF;AAAA,EACA,IAAI;AAAA,EACJ,IAAI,KAAK,SAAS,aAAa,KAAK,SAAS,aAAa,KAAK,SAAS,KAAK,MAAM;AAAA,IACjF,IAAI,KAAK,OAAO,KAAK,MAAM;AAAA,MACzB,OAAO;AAAA,QACL,QACE,GAAG,iBAAiB,KAAK,YAAY,kCACrC,GAAG,KAAK,YAAY,uEACpB;AAAA,MACJ;AAAA,IACF;AAAA,IACA,SAAS,KAAK;AAAA,EAChB;AAAA,EACA,MAAM,MAAM,QAAQ,KAAK,SAAS,KAAK,OAAO,IAAI,YAAY,QAAQ,MAAM,IAAI;AAAA,EAChF,OAAO;AAAA,OACD,QAAQ,YAAY,CAAC,IAAI,EAAE,IAAI;AAAA,OAC/B,WAAW,YAAY,CAAC,IAAI,EAAE,OAAO;AAAA,EAC3C;AAAA;;;ACnGF,IAAM,QAAO,CAAC,UACZ,UAAU,aAAa,UAAU,OAAO,YAAY,UAAU,KAAK;AAG9D,IAAM,WAAW,CAAC,MAAc,KAAa,OAAe,QACjE,GAAG,QAAQ,kFACX,aAAa,OAAO,IAAI,KAAK,UAAU,KAAK,YAAY,QAAQ,KAAK,QAAQ,gBAC7E;AAGF,IAAM,cAAc,CAAC,UACnB,IAAI,IACF,MAAM,KAAK,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,KAAK,QAAQ,UAAU,QAAQ,eAAe,KAAK,CAAC,CAAC,CAC3F;AASK,IAAM,mBAAmB,CAC9B,MACA,MACA,iBACY;AAAA,EACZ,IAAI,CAAC;AAAA,IAAc,OAAO;AAAA,EAC1B,MAAM,OAAO,YAAY,IAAI;AAAA,EAC7B,IAAI,SAAS;AAAA,IAAW,OAAO,EAAE,KAAK,SAAS,KAAM,KAAK,SAAS,KAAK,KAAK,IAAI,SAAS;AAAA,EAC1F,MAAM,OAAO,YAAY,IAAI;AAAA,EAC7B,MAAM,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC;AAAA,EACrD,OAAO,CAAC,GAAG,IAAI,EAAE,KACf,CAAC,QAAQ,QAAQ,cAAc,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,IAAI,GAAG,KAAK,GAC5E;AAAA;AAGK,IAAM,aAAa,CAAC,iBACzB,eAAe,kCAAkC;AAE5C,IAAM,QAAQ,CAAC,OAAiB,SAA6C;AAAA,EAClF,MAAM,MAA8B,CAAC;AAAA,EACrC,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,SAA2C,CAAC;AAAA,EAClD,MAAM,SAAmB,CAAC;AAAA,EAC1B,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,eAAe,KAAK,KAAK,iBAAiB,KAAK;AAAA,EAErD,WAAW,OAAO,aAAa,KAAK,GAAG;AAAA,IACrC,MAAM,OAAO,UAAU,cAAc,OAAO,GAAG,CAAC;AAAA,IAChD,MAAM,OAAO,MAAK,KAAK,IAAI;AAAA,IAC3B,MAAM,UAAU,WAAW,GAAG;AAAA,IAE9B,IAAI,QAAQ,gBAAgB;AAAA,MAC1B,IAAI,eAAe,IAAI,MAAM,eAAe,QAAQ,GAAG,GAAG;AAAA,QACxD,MAAM,IAAI,GAAG;AAAA,QACb,OAAO,KACL,sBAAsB,QAAQ,iBAAiB,6CAC7C,uFACJ;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,IAEA,IAAI,QAAQ,YAAY,UAAU,OAAO,MAAM;AAAA,MAC7C,IAAI,SAAS,IAAI;AAAA,QACf,IAAI,SAAS;AAAA,UAAW;AAAA,QACxB,MAAM,IAAI,GAAG;AAAA,QACb,OAAO,KACL,GAAG,4EACL;AAAA,MACF,EAAO,SAAI,SAAS,WAAW;AAAA,QAC7B,MAAM,IAAI,GAAG;AAAA,QACb,IAAI,WAAW,YAAY,IAAI,CAAC,GAAG;AAAA,UACjC,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,MAAM,+BAA+B,CAAC;AAAA,QAC9E,EAAO;AAAA,cAAI,OAAO;AAAA,MACpB,EAAO;AAAA,QACL,MAAM,UAAU,YAAY,KAAK,MAAM,IAAI;AAAA,QAC3C,IAAI,QAAQ,WAAW;AAAA,UAAW,OAAO,KAAK,QAAQ,MAAM;AAAA,QAC5D,IAAI,QAAQ,aAAa,MAAM;AAAA,UAC7B,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,MAAM,+BAA+B,CAAC;AAAA,QAC9E;AAAA,QACA,IAAI,QAAQ,QAAQ;AAAA,UAAW,IAAI,OAAO,QAAQ;AAAA,QAClD,IAAI,QAAQ,WAAW;AAAA,UAAW,OAAO,KAAK,EAAE,MAAM,KAAK,MAAM,QAAQ,OAAO,CAAC;AAAA,QACjF,IAAI,OAAO,KAAK,OAAO,EAAE,SAAS;AAAA,UAAG,MAAM,IAAI,GAAG;AAAA;AAAA,MAEpD;AAAA,IACF;AAAA,IAEA,IAAI,UAAU,OAAO,OAAO;AAAA,MAC1B,MAAM,QAAO,SAAS,KAAK,SAAS,YAAY,SAAS,aAAa,QAAQ,MAAM,IAAI;AAAA,MACxF,IAAI,CAAC,OAAM;AAAA,QACT,MAAM,IAAI,GAAG;AAAA,QACb,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,MAAM,qBAAqB,CAAC;AAAA,MACpE;AAAA,MACA;AAAA,IACF;AAAA,IAEA,IAAI,UAAU,OAAO,OAAO;AAAA,MAC1B,IAAI,SAAS,IAAI;AAAA,QACf,IAAI,SAAS,WAAW;AAAA,UACtB,MAAM,IAAI,GAAG;AAAA,UACb,MAAM,KAAK,GAAG;AAAA,QAChB;AAAA,MACF,EAAO,SAAI,SAAS,WAAW;AAAA,QAC7B,MAAM,IAAI,GAAG;AAAA,QACb,IAAI,OAAO;AAAA,MACb,EAAO;AAAA,QACL,MAAM,OAAO,QAAQ,MAAM,IAAI;AAAA,QAC/B,IAAI,CAAC,QAAQ,KAAK,MAAM,KAAK,IAAI,GAAG;AAAA,UAClC,MAAM,IAAI,GAAG;AAAA,UACb,IAAI,OAAO,SAAS,MAAM,IAAI;AAAA,QAChC;AAAA;AAAA,MAEF;AAAA,IACF;AAAA,IAEA,IAAI,CAAC,aAAa,GAAG,GAAG;AAAA,MACtB,MAAM,IAAI,GAAG;AAAA,MACb,OAAO,KAAK,GAAG,8CAA8C;AAAA,MAC7D;AAAA,IACF;AAAA,IAEA,MAAM,SAAS,SAAS,KAAK,KAAK,WAAW,KAAK,IAAI;AAAA,IACtD,MAAM,UAAU,QAAQ,gBAAgB;AAAA,IACxC,MAAM,MAAM,YAAY,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,IAChE,IAAI,WAAW;AAAA,MAAK;AAAA,IACpB,MAAM,IAAI,GAAG;AAAA,IAEb,MAAM,OAAO,QAAQ,aAAa,SAAS;AAAA,IAC3C,IAAI,QAAQ,cAAc,iBAAiB,QAAQ,IAAI,QAAQ,WAAW,YAAY,GAAG;AAAA,MACvF,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,MAAM,WAAW,YAAY,CAAC,CAAC;AAAA,IACvE,EAAO,SAAI,SAAS,MAAM,UAAU,IAAI,GAAG,GAAG;AAAA,MAC5C,MAAM,KAAK,GAAG;AAAA,IAChB,EAAO,SAAI,SAAS,IAAI;AAAA,MACtB,OAAO,KAAK,GAAG,2DAA2D;AAAA,IAC5E,EAAO;AAAA,UAAI,OAAO;AAAA,EACpB;AAAA,EACA,OAAO,EAAE,OAAO,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,QAAQ,OAAO;AAAA;AAIhE,IAAM,UAAU,CAAC,MAAc,SAC7B,WAAW,UAAU,MAAM,OAAO,MAAM,CAAC,MAAM,WAAW,UAAU,MAAM,OAAO,MAAM,CAAC;;;ACtK1F,IAAM,iBAAiB,CAAC,KAAa,UACnC,GAAG,QAAQ,kFACX,gGACA;AAGK,IAAM,iBAAiB,CAAC,UAA8B;AAAA,EAC3D,MAAM,SAAmB,CAAC;AAAA,EAC1B,IAAI,MAAM,eAAe,aAAa,MAAM,eAAe,IAAI;AAAA,IAC7D,OAAO,KACL,MAAM,OAAO,MAAM,IAAI,uBAAuB,MAAM,sCAClD,kFACJ;AAAA,EACF;AAAA,EACA,MAAM,eAAe,MAAM,iBAAiB,YAAY,OAAO,KAAK,MAAM,YAAY;AAAA,EACtF,WAAW,OAAO,aAAa,KAAK,GAAG;AAAA,IACrC,MAAM,QAAQ,UAAU,cAAc,OAAO,GAAG,CAAC;AAAA,IACjD,MAAM,SAAS,WAAW,GAAG,IAAI;AAAA,IAGjC,IAAI,CAAC,aAAa,GAAG;AAAA,MAAG,OAAO,KAAK,GAAG,8CAA8C;AAAA,IACrF,IAAI,UAAU;AAAA,MAAI;AAAA,IAClB,IAAI,WAAW;AAAA,MAAO,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,OAAO,qBAAqB,CAAC;AAAA,IACzF,MAAM,SAAS,WAAW,QAAQ,QAAQ,WAAW,YAAY,KAAK,IAAI;AAAA,IAC1E,IAAI,WAAW,aAAa,WAAW,MAAM,GAAG;AAAA,MAC9C,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,OAAO,+BAA+B,CAAC;AAAA,IAC/E;AAAA,IACA,IAAI,QAAQ,SAAS;AAAA,MAAU,OAAO,KAAK,eAAe,KAAK,KAAK,CAAC;AAAA,IACrE,IAAI,QAAQ,cAAc,iBAAiB,IAAI,OAAO,YAAY,GAAG;AAAA,MACnE,OAAO,KAAK,SAAS,MAAM,MAAM,KAAK,OAAO,WAAW,YAAY,CAAC,CAAC;AAAA,IACxE;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,cAAa,CAAC,UAA4C;AAAA,EACrE,MAAM,OAA+B,EAAE,MAAM,OAAO,MAAM,IAAI,EAAE;AAAA,EAChE,IAAI,MAAM,eAAe;AAAA,IAAW,KAAK,gBAAgB,MAAM;AAAA,EAC/D,IAAI,MAAM,UAAU;AAAA,IAAW,KAAK,WAAW,UAAU,MAAM,KAAK;AAAA,EACpE,WAAW,OAAO,aAAa,KAAK,GAAG;AAAA,IACrC,MAAM,QAAQ,UAAU,cAAc,OAAO,GAAG,CAAC;AAAA,IACjD,IAAI,UAAU;AAAA,MAAI;AAAA,IAClB,KAAK,OAAO,QAAQ,aAAa,WAAW,KAAK,KAAK,IAAI;AAAA,EAC5D;AAAA,EACA,OAAO;AAAA;;;ACnET,IAAM,QAAQ,CAAC,MAAe,QAAyB;AAAA,EACrD,MAAM,QAAkB,KAAiC;AAAA,EACzD,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,QAAQ;AAAA;AAcnE,IAAM,mBAAmB,CAC9B,MACA,MACA,WACa;AAAA,EACb,MAAM,MAAM,QAAQ,QAAQ,KAAK;AAAA,EACjC,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,EAC/B,MAAM,WAAW,MAAM,MAAM,YAAY;AAAA,EACzC,MAAM,UAAoB,CAAC;AAAA,EAC3B,IAAI,SAAS,aAAa,SAAS,KAAK;AAAA,IACtC,QAAQ,KACN,SAAS,OAAO,GAAG,QAAQ,OAAO,IAAI,iDACpC,2DACJ;AAAA,EACF;AAAA,EACA,IAAI,aAAa,aAAa,KAAK,eAAe,aAAa,aAAa,KAAK,YAAY;AAAA,IAC3F,QAAQ,KAAK,2EAA2E;AAAA,EAC1F;AAAA,EACA,OAAO;AAAA;;;ACtBT;;;ACKA;AAWO,IAAM,WAAW,CACtB,OACA,aAEO,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,MAAM,WAAW;AAAA,IAAW,OAAO;AAAA,EACvC,MAAM,aAAa,OAAO,mBAAmB,MAAM,KAAK,MAAM,UAAU;AAAA,EACxE,IAAI,eAAe,aAAa,WAAW,aAAa;AAAA,IAAM,OAAO;AAAA,EACrE,IAAI,WAAW,SAAS,aAAa,WAAW,SAAS;AAAA,IAAM,OAAO;AAAA,EACtE,OAAO,EAAE,OAAO,WAAW,OAAO,SAAQ,WAAW,KAAK,CAAC;AAAA,CAC5D;;;ACpBH;;;ACYA;AA2BA,IAAM,aAAa,CAAC,QAAmB,SAC9B,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,SAAS;AAAA,EAQtB,MAAM,aAAa,OAAO,OAAO,QAAQ,MAAM;AAAA,EAC/C,MAAM,WAAY,OAAO,gBAAgB,QAAQ,YAAY,OAAO,IAAI;AAAA,EACxE,OAAO,KAAK,SAAS,OAAO;AAAA,CAC7B;AAYI,IAAM,eAAe,CAAC,SAAiB;AAAA,EAC5C,IAAI,SAAS;AAAA,IAAI,OAAO;AAAA,EACxB,MAAM,UAAU,KACb,MAAM;AAAA,CAAI,EACV,OACC,CAAC,UACE,KAAK,WAAW,GAAG,KAAK,KAAK,WAAW,GAAG,MAC5C,CAAC,KAAK,WAAW,KAAK,KACtB,CAAC,KAAK,WAAW,KAAK,CAC1B,EAAE;AAAA,EACJ,OAAO,KAAK,IAAI,SAAS,CAAC;AAAA;AAIrB,IAAM,eAAe,CAAC,QAAmB,SAC9C,WAAW,QAAQ,IAAI,EAAE,KAAY,aAAI,YAAY,CAAC;AAmBxD,IAAM,gBAAgB,CAAC,WACrB,IAAiB,QAAQ,QAAQ,OAAO,gBAAgB,EAAE,KACjD,aAAI,CAAC,SAAS;AAAA,EACnB,MAAM,MAAM,QAAQ,CAAC;AAAA,EACrB,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,SAAS;AAAA,EACxD,OAAO;AAAA,IACL,SAAS,IACN,OAAO,CAAC,QAAQ,IAAI,SAAS,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC,EACxD,IAAI,CAAC,QAAQ,KAAK,IAAI,MAAM,WAAW,CAAC;AAAA,IAC3C,SAAS,YAAY,YAAY,OAAO,KAAK,QAAQ,OAAO;AAAA,EAC9D;AAAA,CACD,CACH;AAgBK,IAAM,iBAAiB,CAAC,WAC7B,cAAc,MAAM,EAAE,KACb,aAAI,CAAC,WACV,OAAO,WAAW,OAAO,QAAQ,WAAW,IACxC,YACA,WAAW,OAAO,OAAO,OAAO,cAAc,OAAO,QAAQ,KAAK,IAAI,IAC5E,CACF;AAMK,IAAM,cACX;AACF,IAAM,gBAAgB;AAStB,IAAM,WAAW;AAgBV,IAAM,YAAY,CACvB,QACA,YACA,MACA,MAEA,WAAmB,aAEZ,aAAI,UAAU,GAAG;AAAA,EAUtB,MAAM,OAAO,SAAS,cAAc;AAAA,EACpC,SAAS,UAAU,EAAG,UAAU,UAAU,WAAW,GAAG;AAAA,IAWtD,MAAM,SAAS,OAAO,QAAoB,QAAQ,YAAY,OAAO,IAAI,EAAE,KAClE,uBAAc,MAAG;AAAA,MAAG;AAAA,KAAS,CACtC;AAAA,IACA,IAAI,WAAW;AAAA,MAAW,OAAO;AAAA,IACjC,IAAI,OAAO,WAAW;AAAA,MAAW,OAAO,KAAK,OAAO,YAAY,4BAA4B;AAAA,IAC5F,OAAc,eAAM,UAAU;AAAA,EAChC;AAAA,EACA,OAAO;AAAA,CACR;;;AD9LI,MAAM,wBAAwB,MAAM;AAAA,EACvB,OAAO;AAC3B;AAKO,IAAM,YAAY,CAAC,UAAoB,SAAS,MAAM,YAAY,OAAO,MAAM,IAAI;AAgB1F,IAAM,gBAAgB;AAAA,EACpB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AACV;AAGA,IAAM,eAAe;AACrB,IAAM,aAAa;AAEnB,IAAM,gBAAgB,CAAC,UACrB,iBAAiB,YAAY,MAAM,WAAW;AAMzC,IAAM,WAAW,CAAC,UAChB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,SAAS,OAAO,IACpB,MAAM,QACN,QACA,OACA,GAAG,UAAU,KAAK,UACpB,EAAE,KACO,aAAI,CAAC,UAAU,EAAE,MAAM,OAAO,UAAU,EAAE,GAC1C,iBAAQ,eAAe,CAAC,UAAiB,iBAAQ,EAAE,MAAM,WAAW,MAAM,CAAC,CAAC,CACrF;AAAA,EACA,IAAI,OAAO,SAAS,aAAa,OAAO,SAAS;AAAA,IAAM,OAAO,OAAO;AAAA,EACrE,MAAM,OAAO,OAAO,IAClB,MAAM,QACN,QACA,OACA,2BACF;AAAA,EAGA,MAAM,SAAS,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,OAAO,IAAI,IAAI,MAAM,MAAM,IAAI;AAAA,EACxE,IAAI,UAAU,aAAa,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,OAAO;AAAA,IAC5E,OAAO,OAAc,cACnB,OAAO,SACL,IAAI,gBAAgB,MAAM,OAAO,MAAM,IAAI,wCAAwC,CACvF;AAAA,EACF;AAAA,EACA,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO,OAAc,cACnB,IAAI,gBACF,QAAQ,OAAO,MAAM,IAAI,UAAU,KAAK,MAAM,MAAM,OAAO,UACzD,GAAG,KAAK,MAAM,MAAM,GAAG,yBAAyB,MAAM,iCACtD,oFACJ,CACF;AAAA,EACF;AAAA,EACA;AAAA,CACD;AAEI,IAAM,gBAAe,CAAC,OAAiB,UAAkD;AAAA,EAC9F,QAAQ,aAAa,IAAI;AAAA,EACzB,MAAM,MAAM;AAAA,EACZ,SAAS,UAAU,IAAI;AAAA,EACvB,MAAM,MAAM;AACd;AAGA,IAAM,OAAO,CACX,OACA,QACA,MACA,MACA,OACA,SAEO,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,aAAa,OAAO,KAAK,MAAM,QAAQ,WAAW;AAAA,EACxD,MAAM,OAAO,KAAK,OAAO,QAAgB,MAAM,QAAQ,YAAY,QAAQ,MAAM,IAAI,CAAC;AAAA,EACtF,IAAI,SAAS,IAAI;AAAA,IACf,OAAO,OAAc,cACnB,IAAI,gBACF,GAAG,qFACL,CACF;AAAA,EACF;AAAA,EACA,MAAM,OAAO,OAAO,UAAU,MAAM,QAAQ,YAAY,MAAM,MAAM,MAAM,KAAK;AAAA,EAC/E,IAAI,SAAS,MAAM;AAAA,IACjB,OAAO,OAAc,cACnB,IAAI,gBACF,GAAG,cAAc,eAAe,kCAAkC,MAAM,gBACtE,GAAG,6CACP,CACF;AAAA,EACF;AAAA,CACD;AAGI,IAAM,cAAc,CAAC,UACnB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,YAAW,KAAK;AAAA,EAQ7B,OAAO,UAAU,cAAc,QAAQ,MAAM,IAAI;AAAA,EACjD,OAAO,OAAO,KACZ,OACA,QACA,SAAS,MAAM,YACf,aAAa,OAAO,MAAM,IAAI,KAC9B,cACA,IACF;AAAA,CACD;AAYI,IAAM,cAAc,CAAC,OAAiB,QAAmB,WACvD,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,OAAO,KAAK,OAAO,GAAG,EAAE,SAAS,KAAK,OAAO,MAAM,SAAS,GAAG;AAAA,IACjE,MAAM,OAAO,WACX,KAAK,OAAO,QAAS,WAAW,KAAK,CAAC,IAAI,EAAE,OAAO,EAAG,GACtD,OAAO,KACT;AAAA,IAEA,OAAO,UAAU,cAAc,QAAQ,MAAM,KAAK;AAAA,IAClD,OAAO,IAAI,MAAM,QAAQ,aAAa,OAAO,GAAG,UAAU,KAAK,YAAY,IAAI;AAAA,EACjF;AAAA,EACA,WAAW,QAAQ,OAAO,QAAQ;AAAA,IAChC,MAAM,QAAQ,EAAE,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK;AAAA,IAGjD,OAAO,UAAU,cAAc,QAAQ,OAAO,IAAI;AAAA,IAClD,OAAO,KACL,OACA,OACA,GAAG,UAAU,KAAK,YAClB,QAAQ,KAAK,cAAc,OAAO,MAAM,IAAI,QAAQ,KAAK,QACzD,YACA,KACF;AAAA,EACF;AAAA,CACD;AAYI,IAAM,eAAe,CAAC,OAAiB,aACrC,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,OAAO,SAAS,KAAK;AAAA,EAClC,IAAI,SAAS;AAAA,IAAW;AAAA,EACxB,MAAM,QAAQ,MAAM,UAAU,IAAI,EAAE;AAAA,EACpC,IAAI,MAAM,SAAS,GAAG;AAAA,IACpB,OAAO,OAAc,cACnB,IAAI,gBACF,cAAc,OAAO,MAAM,IAAI,mBAAmB,MAAM,qCACtD,gBAAgB,MAAM,KAAK,IAAI,qDAC/B,8EACJ,CACF;AAAA,EACF;AAAA,EACA,OAAO,KAAK,OAAO,UAAU,UAAU,KAAK,GAAG,cAAc,OAAO,MAAM,IAAI,KAAK,UAAU;AAAA,CAC9F;;;AFpNI,IAAM,kBAAkB,CAAC,OAAiB,UAC/C,MAAM,OAAO,MAAM,IAAI,QAAQ,MAAM,kCAAkC,MAAM,KAAK,IAAI,WACtF,gGACA,+FACA;AAMK,IAAM,qBAAqB,CAChC,OACA,OACA,MACA,WAEO,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,OAAO,MAAM,WAAW;AAAA,IAAG;AAAA,EAC/B,MAAM,WAAU,CAAC,aACR,cAAK,MAAM,MAAM,UAAsB,IAAI,EAAE,MAAM,WAAW,CAAC;AAAA,EACxE,IAAI,EAAE,OAAO,SAAS,OAAO,QAAO;AAAA,IAAI;AAAA,EACxC,OAAO,OAAc,cAAK,IAAI,gBAAgB,gBAAgB,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,CACpF;;;AZeI,IAAM,aAAa,WAAqB,eAAe,EAAE,sBAAsB,SAAS,CAAC;AAKhG,IAAM,UAAU,CAAC,YACR,cAAK,IAAI,gBAAgB,QAAQ,KAAK;AAAA,CAAI,CAAC,CAAC;AAQrD,IAAM,OAAO,CAAC,OAAiB,MAAuB,SAC7C,aAAI,UAAU,GAAG;AAAA,EACtB,QAAQ,WAAW;AAAA,EACnB,MAAM,YAAW,iBAAiB,MAAM,MAAM,MAAM;AAAA,EACpD,IAAI,UAAS,SAAS;AAAA,IAAG,OAAO,OAAO,QAAQ,SAAQ;AAAA,EACvD,IAAI,WAAW;AAAA,IAAW;AAAA,EAC1B,IAAI,CAAC,YAAW,IAAI;AAAA,IAAG;AAAA,EACvB,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,EAKjC,IAAI,SAAS,WAAW;AAAA,IACtB,MAAM,WAAW,eAAe,IAAI;AAAA,IACpC,IAAI,SAAS,SAAS;AAAA,MAAG,OAAO,OAAO,QAAQ,QAAQ;AAAA,IACvD,OAAc,oBACZ,eAAe,KAAK,QAAQ,OAAO,KAAK,IAAI,6CAC1C,6EACJ;AAAA,IACA,OAAO,EAAE,QAAQ,SAAS;AAAA,EAC5B;AAAA,EACA,MAAM,SAAS,MAAM,MAAM,IAAI;AAAA,EAC/B,OAAO,mBAAmB,OAAO,MAAM,MAAM,MAAM;AAAA,EACnD,IAAI,OAAO,OAAO,SAAS;AAAA,IAAG,OAAO,OAAO,QAAQ,OAAO,MAAM;AAAA,EACjE,MAAM,QAAQ,KAAK,SAAS,OAAO;AAAA,EACnC,IAAI,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,IAAO,OAAO,EAAE,QAAQ,OAAO;AAAA,EACjE,MAAM,OACJ,OAAO,MAAM,WAAW,IACpB,mBAAmB,KAAK,iBAAiB,OAAO,qCAChD,qBACA,+CAA+C,OAAO,MAAM,KAAK,IAAI,YACrE;AAAA,EACN,OAAc,oBAAW,eAAe,KAAK,QAAQ,OAAO,KAAK,IAAI,MAAM,MAAM;AAAA,EACjF,OAAO,EAAE,QAAQ,SAAS;AAAA,CAC3B;AAoBH,IAAM,YAAY,CAAC,OAAiB,SAC3B,aAAI,UAAU,GAAG;AAAA,EACtB,QAAQ,WAAW;AAAA,EACnB,MAAM,YAAW,iBAAiB,MAAM,MAAM,MAAM;AAAA,EACpD,IAAI,UAAS,SAAS;AAAA,IAAG,OAAO,OAAO,QAAQ,SAAQ;AAAA,EACvD,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,EACjC,IAAI,SAAS,WAAW;AAAA,IACtB,MAAM,WAAW,eAAe,IAAI;AAAA,IACpC,IAAI,SAAS,SAAS;AAAA,MAAG,OAAO,OAAO,QAAQ,QAAQ;AAAA,IACvD,OAAO,YAAY,IAAI;AAAA,EACzB,EAAO;AAAA,IACL,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,eAAe,OAAO,kBAAkB,OAAO,KAAK,IAAI,QAAQ,KAAK,MAAM;AAAA,IACpF;AAAA,IACA,MAAM,SAAS,MAAM,MAAM,IAAI;AAAA,IAC/B,IAAI,WAAW,aAAa,OAAO,MAAM,SAAS,GAAG;AAAA,MACnD,OAAO,OAAO,QAAQ;AAAA,QACpB,MAAM,OAAO,KAAK,IAAI,uBAAuB,KAAK,yBAChD,GAAG,OAAO,MAAM,KAAK,IAAI,gEACzB;AAAA,MACJ,CAAC;AAAA,IACH;AAAA,IACA,OAAO,mBAAmB,OAAO,MAAM,MAAM,MAAM;AAAA,IACnD,IAAI,OAAO,OAAO,SAAS;AAAA,MAAG,OAAO,OAAO,QAAQ,OAAO,MAAM;AAAA,IACjE,IAAI,OAAO,MAAM,SAAS;AAAA,MAAG,OAAO,YAAY,MAAM,QAAQ,KAAK,KAAK,SAAS,CAAC;AAAA;AAAA,EAEpF,MAAM,QAAQ,OAAO,SAAS,IAAI;AAAA,EAClC,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO,OAAO,QAAQ;AAAA,MACpB,MAAM,OAAO,KAAK,IAAI;AAAA,IACxB,CAAC;AAAA,EACH;AAAA,EACA,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE;AAAA,EAChC,IAAI,KAAK,SAAS,GAAG;AAAA,IACnB,OAAO,OAAO,QAAQ;AAAA,MACpB,MAAM,OAAO,KAAK,IAAI,uBAAuB,KAAK,KAAK,IAAI,6BACzD,yFACA;AAAA,IACJ,CAAC;AAAA,EACH;AAAA,EACA,OAAO,cAAa,MAAM,KAAK;AAAA,CAChC;AAEH,IAAM,UAAU,CAAC,MAAgB,YAAiD;AAAA,EAChF,MAAM,QAAQ,QAAQ,KAAK;AAAA,EAC3B,QAAQ,KAAK;AAAA,EACb,MAAM,QAAQ,QAAQ,KAAK;AAC7B;AAeA,IAAM,OAAO,CAAC,OAAiB,SACtB,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,QAAQ,MAAM,MAAM,MAAM;AAAA,EACxC,MAAM,OAAO,OAAO,SAAS,KAAK;AAAA,EAClC,IAAI,SAAS;AAAA,IAAW;AAAA,EACxB,MAAM,WAAiB,cAAK,MAAM,MAAM,MAAM,IAAI,EAAE,MAAM,WAAW,CAAC;AAAA,EACtE,OAAO,OAAO,UAAU,OAAO,cAAa,OAAO,IAAI,GAAG,QAAO;AAAA,CAClE;AAUH,IAAM,YAAW;AAAA,EACf,QAAQ,GAAG,MAAM,aACf,aAAa,QAAQ,MAAM,MAAM,GAAG,IAAI;AAAA,EAC1C,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,QAEA,KAAK,EAAE,KAAK,YAAY,OAAO,GAAG,MAAM,IAAI;AAAA,EAC9C,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,QAEA,KAAK,EAAE,KAAK,YAAY,OAAO,GAAG,IAAI;AAAA,EACxC,WAAW;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,QAEA,UAAU,EAAE,KAAK,YAAY,OAAO,GAAG,IAAI;AAC/C;AAEO,IAAM,qBAAqB,MACvB,kBACP,YACO,iBAAQ,WAAW,SAAS,GAAG,SAAQ,CAAC,EAAE,KAAY,aAAI,cAAc,CAAC,CAClF;;AgBrNF,qBAAS;AACT;AACA;;;ACVO,IAAM,SAAQ;AAErB,IAAM,MAAM,CAAC,UAA+B,UAAU,YAAY,YAAY,OAAO,KAAK;AAuBnF,IAAM,YAAW,CAAC,UAAiE;AAAA,EACxF,QAAQ,MAAM;AAAA,SACP;AAAA,MACH,OAAO,EAAE,KAAK,IAAI,MAAM,GAAG,GAAG,MAAM,MAAM,MAAM,SAAS,IAAI,MAAM,OAAO,EAAE;AAAA,SACzE;AAAA,MACH,OAAO;AAAA,QACL,mBAAmB,MAAM;AAAA,QACzB,QAAQ,MAAM;AAAA,QACd,eAAe,MAAM;AAAA,QACrB,iBAAiB,IAAI,MAAM,gBAAgB;AAAA,QAC3C,KAAK,IAAI,MAAM,GAAG;AAAA,QAClB,cAAc,MAAM;AAAA,QACpB,SAAS,IAAI,MAAM,OAAO;AAAA,MAC5B;AAAA,SACG;AAAA,MACH,OAAO;AAAA,QACL,oBAAoB,MAAM;AAAA,QAC1B,sBAAsB,IAAI,MAAM,qBAAqB;AAAA,QACrD,aAAa,MAAM;AAAA,QACnB,iBAAiB,MAAM;AAAA,QACvB,gBAAgB,IAAI,MAAM,eAAe;AAAA,MAC3C;AAAA;AAAA;AAWN,IAAM,eAAe,CAAC,UAAqD;AAAA,EACzE,QAAQ,MAAM;AAAA,SACP;AAAA,MACH,OAAO,CAAC;AAAA,SACL;AAAA,MACH,OAAO,EAAE,sBAAsB,MAAM,0BAA0B,QAAQ,MAAM,IAAI;AAAA,SAC9E;AAAA,MACH,OAAO,EAAE,mBAAmB,MAAM,uBAAuB,QAAQ,MAAM,IAAI;AAAA;AAAA;AAcjF,IAAM,YAAW,CAAC,WAAsD;AAAA,EACtE,SAAS,MAAM,YAAY,OAAO,MAAM;AAAA,EACxC,MAAM,OAAO,MAAM,IAAI;AAAA,EACvB,QAAQ,MAAM;AAAA,KACX,aAAa,KAAK;AACvB;AAEO,IAAM,QAAO,CAAC,UAA6B;AAAA,EAChD,MAAM,SAAS,UAAS,KAAK;AAAA,EAC7B,YAAY,QAAQ,UAAU,OAAO,QAAQ,UAAS,KAAK,CAAC,GAAG;AAAA,IAC7D,IAAI,UAAU;AAAA,MAAW,OAAO,UAAU;AAAA,EAC5C;AAAA,EACA,OAAO;AAAA;AAUF,IAAM,SAAS,CAAC,UAA6B;AAAA,EAClD,MAAM,QAAQ,OAAO,QAAQ,UAAS,KAAK,CAAC,EACzC,OAAO,IAAI,WAAW,UAAU,SAAS,EACzC,IAAI,EAAE,YAAY,MAAM;AAAA,EAC3B,OAAO,WAAW,MAAK,KAAK,GAAG,KAAK;AAAA;AAW/B,IAAM,cAAa,CAAC,WAA8B,KAAK,MAAK,KAAK,GAAG,MAAM,MAAM,KAAK;;;AChErF,IAAM,iBAAiB,CAAC,UAA+D;AAAA,EAC5F,oBAAoB,KAAK,KAAK,mBAAmB;AAAA,EACjD,sBAAsB,IAAI,KAAK,uBAAuB,MAAK;AAAA,EAC3D,aAAa,KAAK,KAAK,YAAY;AAAA,EACnC,iBAAiB,KAAK,KAAK,gBAAgB;AAAA,EAC3C,gBAAgB,IAAI,KAAK,iBAAiB,MAAK;AAAA,EAC/C,mBAAmB,KAAK,KAAK,oBAAoB,IAAI;AACvD;AASO,IAAM,cAAc,CACzB,YACA,UAEA,WAAW,yBAAyB,MAAM,uBAAuB,OACjE,WAAW,2BAA2B,MAAM,yBAAyB,WACrE,WAAW,kBAAkB,MAAM,gBAAgB,OACnD,WAAW,sBAAsB,MAAM,oBAAoB,OAC3D,WAAW,qBAAqB,MAAM,mBAAmB,WACzD,WAAW,wBAAwB,MAAM,uBAAuB;;;AF+B3D,IAAM,sBAAsB,WAA8B,sBAAsB;AAWvF,IAAM,cAAc,CAAC,YAAoC,UAAsC;AAAA,EAC7F,IAAI,MAAM,SAAS;AAAA,IAAiB,OAAO,YAAY,YAAY,KAAK;AAAA,EACxE,MAAM,SACJ,WAAW,SAAS,MAAM,OAAO,WAAU,WAAW,aAAa,MAAM,WAAW;AAAA,EACtF,IAAI,MAAM,SAAS;AAAA,IAAY,OAAO,UAAU,WAAW,UAAU,MAAM,QAAQ;AAAA,EACnF,OACE,UACA,WAAW,mBAAmB,MAAM,iBAAiB,OACrD,WAAW,kBAAkB,MAAM,gBAAgB,OACnD,WAAW,YAAY,MAAM,UAAU,OACvC,WAAW,wBAAwB,MAAM,sBAAsB,OAC/D,WAAW,sBAAsB,MAAM,oBAAoB,WAC3D,WAAW,2BAA2B,MAAM,0BAA0B;AAAA;AAI1E,IAAM,YAAW,YAAuD;AAAA,EACtE,YAAY,CAAC,MAAM,UAAU;AAAA,IAQ3B,MAAM,WAAW,KAAK,KAAK,OAAO;AAAA,IAClC,IAAI,aAAa,MAAM,aAAa,MAAM;AAAA,MAAM;AAAA,IAChD,OAAO;AAAA,SACF,eAAe,IAAI;AAAA,MACtB,mBAAmB,KAAK,KAAK,kBAAkB;AAAA,MAC/C,QAAQ,KAAK,KAAK,SAAS;AAAA,MAC3B,SAAS,KAAK,KAAK,YAAY,KAAK;AAAA,MACpC,IAAI,MAAM;AAAA,MACV,eAAe,KAAK,KAAK,gBAAgB;AAAA,MACzC,iBAAiB,IAAI,KAAK,kBAAkB,MAAK;AAAA,MACjD,KAAK,IAAI,KAAK,QAAQ,MAAK;AAAA,MAC3B,cAAc,KAAK,KAAK,eAAe;AAAA,MACvC,MAAM,KAAK,KAAK,OAAO;AAAA,MACvB,MAAM,IAAI,KAAK,SAAS,CAAC;AAAA,MACzB,QAAQ,KAAK,KAAK,SAAS;AAAA,MAC3B,SAAS,IAAI,KAAK,YAAY,MAAK;AAAA,MACnC,MAAM,MAAM;AAAA,MACZ,sBAAsB,KAAK,KAAK,uBAAuB,IAAI;AAAA,IAC7D;AAAA;AAAA,EAGF,YAAY,CAAC,UAAU,0BAA0B,MAAM;AAAA,EAEvD,YAAY;AAAA,EAMZ,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EAKA,SAAS,CAAC,YAAY,UACpB,WAAW,WAAW,MAAM,UAC5B,WAAW,SAAS,MAAM,QAC1B,WAAW,aAAa,MAAM,YAAY,SAC1C,YAAY,YAAY,KAAK;AAAA,EAC/B,MAAM,CAAC,UAAU,0BAA0B,MAAM;AAAA,EAEjD,YAAY;AACd,CAAC;AAWM,IAAM,8BAA8B,MAChC,kBAAO,qBAA4B,iBAAQ,oBAAoB,SAAS,GAAG,SAAQ,CAAC,CAAC;;AG/KhG,qBAAS;AACT,uBAAS;AAET;AACA;;;AC5BO,IAAM,yBAAsC;AAM5C,IAAM,qBAAkC;AAExC,IAAM,oBAAyC,UAAU,wBAAwB,CAAC,GAAG,IAAI;AAEzF,IAAM,gBAAqC,UAAU,oBAAoB,CAAC,GAAG,IAAI;;;ADoFjF,IAAM,sBAAsB,WAA8B,sBAAsB;AAEvF,IAAM,QAAO,CAAC,UACZ,aAAa,MAAM,QAAQ,MAAM,IAAI,EAAE,KAC9B,aAAI,CAAC,aAAa,EAAE,MAAM,MAAM,MAAM,QAAQ,EAAE,CACzD;AAYF,IAAM,QAAO,CAAC,SACL,aAAI,UAAU,GAAG;AAAA,EACtB,IAAI,CAAC,YAAW,IAAI;AAAA,IAAG;AAAA,EACvB,QAAQ,YAAY,OAAO,MAAK,IAAI;AAAA,EACpC,OAAO,YAAY,IAAK,EAAE,QAAQ,OAAO,IAAe,EAAE,QAAQ,SAAS;AAAA,CAC5E;AAGH,IAAM,SAAS,CAAC,MAAc,QACrB,aAAI,IAAI,MAAM,wBAAwB,SAAS,KAAK,CAAC;AAE9D,IAAM,QAAQ,CAAC,UACN,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,OAAO,MAAM;AAAA,EACnB,MAAM,SAAS,OAAO,aAAa,MAAM,QAAQ,IAAI;AAAA,EASrD,IAAI,WAAW;AAAA,IAAG,OAAO,EAAE,MAAM,SAAS,EAAE;AAAA,EAE5C,MAAM,SAAS,OAAO,eAAe,MAAM,MAAM;AAAA,EACjD,IAAI,WAAW,WAAW;AAAA,IACxB,OAAO,OAAO,OACZ,MACA,wEAAwE,cACtE,0EACJ;AAAA,EACF;AAAA,EAWA,OAAO;AAAA,EACP,MAAM,aAAa,OAAO,KAAK,MAAM,QAAQ,WAAW;AAAA,EACxD,MAAM,OAAO,OAAO,QAAgB,MAAM,QAAQ,YAAY,OAAO,SAAS,cAAc;AAAA,EAC5F,IAAI,SAAS,WAAW;AAAA,IACtB,OAAO,OAAO,OACZ,MACA,+FACE,qFACJ;AAAA,EACF;AAAA,EAUA,MAAM,aAAa,OAAO,UAAU,MAAM,QAAQ,YAAY,MAAM,IAAI;AAAA,EACxE,IAAI,eAAe,MAAM;AAAA,IACvB,OAAO,OAAO,OACZ,MACA,qBAAqB,gBAAgB,yCACnC,sBAAsB,cAAc,wDACpC,yBACJ;AAAA,EACF;AAAA,EAEA,MAAM,QAAQ,OAAO,eAAe,MAAM,MAAM;AAAA,EAChD,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO,OAAO,OACZ,MACA,2DAA2D,sBACzD,2FACA,gEACJ;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,OAAO,aAAa,MAAM,QAAQ,IAAI;AAAA,EACnD,IAAI,SAAS,GAAG;AAAA,IACd,OAAO,OAAO,OACZ,MACA,8BAA8B,OAAO,IAAI,sDACvC,2FACJ;AAAA,EACF;AAAA,EACA,OAAO,EAAE,MAAM,SAAS,KAAK;AAAA,CAC9B;AAaH,IAAM,aAAW;AAAA,EACf,QAAQ,MAAa;AAAA,EACrB,MAAM,GAAG,WAA+C,MAAK,IAAI;AAAA,EACjE,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAM,GAAG,WAAwC,MAAK,IAAI;AAAA,EAC1D,WAAW,GAAG,WAAwC,MAAM,IAAI;AAClE;AAEO,IAAM,8BAA8B,MAChC,kBAAO,qBAA4B,iBAAQ,oBAAoB,SAAS,GAAG,UAAQ,CAAC,CAAC;;AEpLhG,qBAAS;AACT;AACA;;;AC/BO,IAAM,SAAQ;AAuBd,IAAM,YAAY,CAAC,UACxB,KAAK,KAAK,EACP,MAAM,SAAS,EACf,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,KAAK,EACL,KAAK,GAAG;AAYN,IAAM,WAAU,CAAC,UAAmB,KAAK,KAAK,EAAE,QAAQ,QAAQ,EAAE;AAGlE,IAAM,QAAO,CAAI,UAAyB,SAC/C,aAAa,aAAa,aAAa;AAElC,IAAM,WAAW,CAAC,UAA8B,SACrD,aAAa,aAAa,UAAU,QAAQ,MAAM;AAE7C,IAAM,cAAc,CAAC,UAA8B,SACxD,aAAa,aAAa,SAAQ,QAAQ,MAAM;AAElD,IAAM,SAAQ,CAAC,MAAc,UAC3B,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,MAAM;AAyBtC,IAAM,QAAO,CAAC,WAAqD;AAAA,KACrE,OAAM,aAAa,KAAK,MAAM,SAAS,CAAC;AAAA,KACxC,OAAM,gBAAgB,MAAM,eAAe;AAAA,KAC3C,OAAM,aAAa,MAAM,SAAS;AAAA,KAClC,OAAM,yBAAyB,MAAM,qBAAqB;AAAA,KAC1D,OAAM,gBAAgB,MAAM,YAAY;AAAA,KACxC,OAAM,eAAe,MAAM,WAAW;AAAA,KACtC,OAAM,qBAAqB,MAAM,sBAAsB,OAAO,MAAM,SAAS;AAAA,KAC7E,OAAM,QAAQ,MAAM,IAAI;AAAA,KACxB,OAAM,YAAY,MAAM,QAAQ;AAAA,KAChC,OAAM,WAAW,MAAM,OAAO;AAAA,KAC9B,OAAM,OAAO,MAAM,QAAQ,YAAY,YAAY,OAAO,MAAM,GAAG,CAAC;AAAA,KACpE,OAAM,UAAU,MAAM,MAAM;AAAA,KAC5B,OAAM,WAAW,MAAM,eAAe,YAAY,YAAY,OAAO,MAAM,UAAU,CAAC;AAAA,KACtF,OAAM,mBAAmB,MAAM,kBAAkB;AAAA,EACpD,MAAM,MAAM;AACd;AAgBO,IAAM,cAAa,CAAC,WAAqD;AAAA,KAC3E,MAAK,KAAK;AAAA,EACb,OAAO,MAAM;AACf;AAqBO,IAAM,cAAa,CAAC,UAAoD;AAAA,EAC7E,MAAM,QAAQ;AAAA,IACZ,GAAI,MAAM,SAAS,YAAY,CAAC,MAAM,IAAI,CAAC;AAAA,IAC3C,GAAI,MAAM,sBAAsB,QAAQ,CAAC,mBAAmB,IAAI,CAAC;AAAA,EACnE;AAAA,EACA,MAAM,SAAS,MAAK,KAAK;AAAA,EACzB,OAAO,WAAW,QAAQ,KAAK;AAAA;AAW1B,IAAM,kBAAiB,CAC5B,MACA,UACsC;AAAA,EAStC,MAAM,WAAW,KAAK,KAAK,OAAO;AAAA,EAClC,IAAI,aAAa,MAAM,aAAa,MAAM;AAAA,IAAM;AAAA,EAChD,OAAO;AAAA,IACL,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,WAAW,KAAK,KAAK,YAAY;AAAA,IACjC,gBAAgB,KAAK,KAAK,eAAe;AAAA,IACzC,aAAa,KAAK,KAAK,cAAc;AAAA,IACrC,WAAW,KAAK,KAAK,YAAY;AAAA,IACjC,uBAAuB,KAAK,KAAK,wBAAwB;AAAA,IACzD,WAAW,KAAK,KAAK,YAAY;AAAA,IACjC,cAAc,UAAU,KAAK,eAAe;AAAA,IAC5C,YAAY,KAAK,KAAK,aAAa;AAAA,IACnC,aAAa,UAAU,KAAK,cAAc;AAAA,IAC1C,mBAAmB,KAAK,KAAK,oBAAoB;AAAA,IAEjD,MAAM,KAAK,KAAK,OAAO;AAAA,IACvB,UAAU,SAAQ,KAAK,WAAW;AAAA,IAClC,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,UAAU,MAAM,QAAQ,KAAK,WAAW,IAAI,KAAK,YAAY,KAAK,GAAG,IAAI;AAAA,IACzE,SAAS,KAAK,KAAK,UAAU;AAAA,IAC7B,OAAO,MAAM;AAAA,IACb,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,KAAK,IAAI,KAAK,QAAQ,MAAK;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,UAAU,IAAI,KAAK,aAAa,MAAK;AAAA,IACrC,QAAQ,UAAU,KAAK,SAAS;AAAA,IAChC,MAAM,aAAa,KAAK,MAAM,OAAO;AAAA,IACrC,WAAW,IAAI,KAAK,YAAY,MAAK;AAAA,IACrC,mBAAmB,KAAK,KAAK,kBAAkB;AAAA,EACjD;AAAA;;;ADpCK,IAAM,qBAAqB,WAA6B,uBAAuB;AAAA,EACpF,sBAAsB;AACxB,CAAC;AAED,IAAM,aAAW,YAAqD;AAAA,EACpE,YAAY;AAAA,EACZ,YAAY,CAAC,UAAU,SAAS,MAAM;AAAA,EAGtC,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EAaA,SAAS,CAAC,YAAY,UACpB,WAAW,UAAU,MAAM,QAAQ,OACnC,MAAK,MAAM,SAAS,WAAW,OAAO,KACtC,MAAK,MAAM,WAAW,WAAW,SAAS,KAC1C,MAAK,MAAM,KAAK,WAAW,GAAG,KAC9B,YAAY,MAAM,UAAU,WAAW,QAAQ,KAC/C,SAAS,MAAM,cAAc,WAAW,YAAY,KACpD,SAAS,MAAM,aAAa,WAAW,WAAW,KAClD,MAAK,MAAM,mBAAmB,WAAW,iBAAiB,KAC1D,SAAS,MAAM,QAAQ,WAAW,MAAM,KACxC,MAAK,MAAM,WAAW,WAAW,SAAS,KAC1C,MAAK,MAAM,uBAAuB,WAAW,qBAAqB,KAClE,MAAK,MAAM,iBAAiB,WAAW,eAAe,KACtD,MAAK,MAAM,YAAY,WAAW,UAAU,KAC5C,MAAK,MAAM,oBAAoB,WAAW,kBAAkB;AAAA,EAC9D,MAAM,CAAC,UAAU,SAAS,MAAM,gBAAgB,MAAM;AAAA,EACtD,YAAY;AACd,CAAC;AASM,IAAM,6BAA6B,MAC/B,kBAAO,oBAA2B,iBAAQ,mBAAmB,SAAS,GAAG,UAAQ,CAAC,CAAC;;AE1N9F,qBAAS;AACT;AACA;;;AC0DA,IAAM,OAAO,CAAC,UACZ,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,SAAkB,OAAO,IAAI,CAAC,IAAI,CAAC;AAGvE,IAAM,QAAQ,CAAC,QAA2B,cACxC,OAAO,IAAI,CAAC,SAAS,UAAU,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAQ3E,IAAM,WAAW,CAAC,SAChB,KACG,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,KAAK,EACL,KAAK,GAAG;AAEb,IAAM,SAAQ,CAAC,SAAyB;AAAA,EACtC,IAAI,CAAC,KAAK,WAAW,QAAQ;AAAA,IAAG,OAAO;AAAA,EACvC,MAAM,KAAK,KAAK,QAAQ,GAAG;AAAA,EAC3B,IAAI,KAAK;AAAA,IAAG,OAAO;AAAA,EACnB,MAAM,SAAS,KAAK,MAAM,KAAK,CAAC,EAAE,MAAM,GAAG;AAAA,EAC3C,OAAO,GAAG,KAAK,MAAM,GAAG,EAAE,KAAK,OAAO,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAAE,KAAK,GAAG;AAAA;AAG7E,IAAM,QAAO,CAAC,SAAyB;AAGhC,IAAM,iBAAiB,CAAC,YAAuC;AAAA,EACpE,kBAAkB,MAAM,OAAO,qBAAqB,CAAC,GAAG,KAAI,EAAE,KAAK;AAAA,EACnE,eAAe,MAAM,OAAO,kBAAkB,CAAC,GAAG,MAAK,EAAE,KAAK;AAAA,EAC9D,kBAAkB,MAAM,OAAO,qBAAqB,CAAC,GAAG,QAAQ,EAAE,KAAK;AAAA,EACvE,SAAS,MAAM,OAAO,SAAS,KAAI,EAAE,KAAK;AAC5C;AAEO,IAAM,oBAAoB,CAC/B,MACA,UACmC;AAAA,EACnC,SAAS,KAAK,KAAK,UAAU;AAAA,EAC7B,SAAS,KAAK,KAAK,UAAU;AAAA,EAC7B,gBAAgB,KAAK,KAAK,eAAe;AAAA,EACzC,kBAAkB,MAAM,KAAK,KAAK,iBAAiB,GAAG,KAAI,EAAE,KAAK;AAAA,EACjE,eAAe,MAAM,KAAK,KAAK,cAAc,GAAG,MAAK,EAAE,KAAK;AAAA,EAC5D,kBAAkB,MAAM,KAAK,KAAK,iBAAiB,GAAG,QAAQ,EAAE,KAAK;AAAA,EAErE,MAAM,KAAK,KAAK,SAAS,KAAK,KAAK;AAAA,EACnC;AAAA,EACA,QAAQ,KAAK,KAAK,SAAS;AAAA,EAC3B,SAAS,MAAM,KAAK,KAAK,SAAS,GAAG,KAAI,EAAE,KAAK;AAClD;AAEA,IAAM,QAAQ,CAAC,GAAsB,MACnC,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,UAAU,SAAS,EAAE,MAAM;AAE9D,IAAM,iBAAiB,CAC5B,YACA,WACY;AAAA,EACZ,MAAM,QAAQ,eAAe,MAAM;AAAA,EACnC,OACE,WAAW,aAAa,OAAO,YAAY,SAC3C,WAAW,qBAAqB,OAAO,oBAAoB,SAC3D,WAAW,UAAU,OAAO,QAAQ,UACpC,MAAM,WAAW,SAAS,MAAM,OAAO,KACvC,MAAM,WAAW,mBAAmB,MAAM,iBAAiB,KAC3D,MAAM,WAAW,gBAAgB,MAAM,cAAc,KACrD,MAAM,WAAW,mBAAmB,MAAM,iBAAiB,MAC1D,OAAO,YAAY,aAAa,WAAW,YAAY,OAAO;AAAA;AAYnE,IAAM,SAAS,CAAC,YAAuC;AAAA,EACrD,SAAS,OAAO,YAAY,OAAQ,MAAiB;AAAA,EACrD,gBAAgB,OAAO,oBAAoB,OAAQ,MAAiB;AAAA,EACpE,MAAM,OAAO,QAAS;AACxB;AAEA,IAAM,QAAQ,CAAC,WAAiF;AAAA,EAC9F,MAAM,QAAQ,eAAe,MAAM;AAAA,EACnC,MAAM,MAAiD,CAAC;AAAA,EACxD,IAAI,MAAM,kBAAkB,SAAS;AAAA,IAAG,IAAI,oBAAoB,MAAM;AAAA,EACtE,IAAI,MAAM,eAAe,SAAS;AAAA,IAAG,IAAI,iBAAiB,MAAM;AAAA,EAChE,IAAI,MAAM,kBAAkB,SAAS;AAAA,IAAG,IAAI,oBAAoB,MAAM;AAAA,EACtE,IAAI,MAAM,QAAQ,SAAS;AAAA,IAAG,IAAI,SAAS,MAAM;AAAA,EACjD,OAAO;AAAA;AASF,IAAM,oBAAoB,CAAC,YAA0D;AAAA,KACvF,OAAO,MAAM;AAAA,KACb,MAAM,MAAM;AAAA,KACX,OAAO,YAAY,aAAa,OAAO,YAAY,KAAK,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ;AAAA,EAC3F,MAAM,OAAO;AACf;AAOO,IAAM,oBAAoB,CAAC,WAAyD;AAAA,EACzF,MAAM,UAAU,MAAM,MAAM;AAAA,EAC5B,MAAM,UACJ,CAAC,kBAAkB,eAAe,kBAAkB,QAAQ,EAC5D,OAAO,CAAC,QAAQ,QAAQ,SAAS,SAAS;AAAA,EAC5C,IAAI,OAAO,YAAY;AAAA,IAAI,QAAQ,KAAK,SAAS;AAAA,EACjD,OAAO;AAAA,OACF,OAAO,MAAM;AAAA,OACb;AAAA,OACC,OAAO,YAAY,aAAa,OAAO,YAAY,KAAK,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ;AAAA,OACvF,QAAQ,WAAW,IAAI,CAAC,IAAI,EAAE,QAAQ,QAAQ;AAAA,EACpD;AAAA;;;ADjKK,IAAM,6BAA6B,WACxC,6BACF;AAEA,IAAM,aAAW,YAAqE;AAAA,EACpF,YAAY,CAAC,MAAM,UAAU,kBAAkB,MAAM,MAAM,IAAI;AAAA,EAC/D,YAAY,MAAM;AAAA,EAClB,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,EACT,MAAM,CAAC,UAAU,kCAAkC,MAAM;AAAA,EACzD,YAAY;AACd,CAAC;AAEM,IAAM,qCAAqC,MACvC,kBACP,4BACO,iBAAQ,2BAA2B,SAAS,GAAG,UAAQ,CAAC,CACjE;;AE5BF,qBAAS;AACT;AACA;;;AC9BA,IAAM,YAA6E;AAAA,EACjF,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,iBAAiB,CAAC,UAC7B,UAAU,MAAM;;;AClBlB,IAAM,eAAe;AAGd,IAAM,SAAS,CAAC,UAA2B;AAAA,EAChD,MAAM,SAAS,OAAO,UAAU,WAAW,QAAQ,OAAO,SAAS,OAAO,SAAS,EAAE,GAAG,EAAE;AAAA,EAC1F,OAAO,OAAO,MAAM,MAAM,IAAI,IAAI;AAAA;AAGpC,IAAM,SAAS,CAAC,UACd,MACG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,KAAK,EACL,KAAK,GAAG;AAWN,IAAM,cAAc,CAAC,UAC1B,OACE,MAAM,QAAQ,KAAK,IACf,MAAM,IAAI,CAAC,SAAkB,OAAO,IAAI,CAAC,IACzC,OAAO,UAAU,WACf,MAAM,MAAM,SAAS,IACrB,CAAC,CACT;AAGK,IAAM,aAAa,CAAC,UACzB,OAAO,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,SAAkB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;AAE1F,IAAM,MAAM,CAAC,KAAa,UACxB,UAAU,YAAY,CAAC,IAAI,GAAG,MAAM,MAAM;AAoBrC,IAAM,SAAQ,CAAC,WAA4D;AAAA,EAChF,SAAS,MAAM,YAAY,OAAO,MAAM;AAAA,KACrC,IAAI,UAAU,MAAM,MAAM;AAAA,KAC1B,IAAI,QAAQ,MAAM,IAAI;AAAA,KACtB,IAAI,WAAW,MAAM,OAAO;AAAA,KAC5B,IAAI,gBAAgB,MAAM,eAAe;AAAA,KACzC,IAAI,UAAU,MAAM,WAAW,YAAY,YAAY,MAAM,OAAO,KAAK,YAAY,CAAC;AAAA,KACtF,IAAI,UAAU,MAAM,WAAW,YAAY,YAAY,YAAY,MAAM,MAAM,CAAC;AAAA,KAChF,IACD,eACA,MAAM,mBAAmB,YAAY,YAAY,YAAY,MAAM,cAAc,CACnF;AAAA,KACG,IAAI,UAAU,MAAM,MAAM;AAAA,KAC1B,IAAI,QAAQ,MAAM,IAAI;AAAA,KACtB,IAAI,QAAQ,MAAM,SAAS,YAAY,YAAY,OAAO,MAAM,IAAI,CAAC;AAAA,KACrE,IAAI,UAAU,MAAM,MAAM;AAAA,KAC1B,IAAI,OAAO,MAAM,GAAG;AAAA,KACpB,IAAI,YAAY,MAAM,QAAQ;AACnC;AAQO,IAAM,cAAc,CAAC,WAA4D;AAAA,KACnF,OAAM,KAAK;AAAA,EACd,MAAM,MAAM;AACd;;;AFsCO,IAAM,4BAA4B,WACvC,4BACF;AAEA,IAAM,aAAW,YAAmE;AAAA,EAOlF,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,MAAM,KAAK,KAAK,OAAO;AAAA,IACvB,SAAS,KAAK,KAAK,UAAU;AAAA,IAC7B,SAAS,KAAK,eAAe,KAAK,KAAK,eAAe;AAAA,IACtD,gBAAgB,KAAK,KAAK,eAAe;AAAA,IACzC,QAAQ,WAAW,KAAK,SAAS;AAAA,IACjC,QAAQ,YAAY,KAAK,SAAS;AAAA,IAClC,eAAe,YAAY,KAAK,cAAc;AAAA,IAC9C,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,MAAM,KAAK,KAAK,OAAO;AAAA,IACvB,MAAM,MAAM;AAAA,IACZ,MAAM,OAAO,KAAK,OAAO;AAAA,IACzB,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,KAAK,KAAK,KAAK,MAAM;AAAA,IACrB,UAAU,KAAK,KAAK,WAAW;AAAA,EACjC;AAAA,EACA,YAAY,CAAC,UAAU,mCAAmC,MAAM;AAAA,EAEhE,YAAY;AAAA,EAEZ,UAAU;AAAA,EAUV,SAAS,CAAC,YAAY,UACpB,WAAW,aAAa,MAAM,YAAY,UACzC,MAAM,YAAY,aAAa,WAAW,YAAY,MAAM,aAC5D,MAAM,WAAW,aAAa,WAAW,WAAW,MAAM,YAC1D,MAAM,SAAS,aAAa,WAAW,SAAS,MAAM,UACtD,MAAM,SAAS,aAAa,WAAW,SAAS,MAAM,UACtD,MAAM,aAAa,aAAa,WAAW,aAAa,MAAM,cAC9D,MAAM,oBAAoB,aAAa,WAAW,oBAAoB,MAAM,qBAC5E,MAAM,WAAW,aAAa,WAAW,WAAW,MAAM,YAC1D,MAAM,QAAQ,aAAa,WAAW,QAAQ,MAAM,SACpD,MAAM,WAAW,aAAa,WAAW,WAAW,MAAM,YAC1D,MAAM,SAAS,aAAa,WAAW,SAAS,MAAM,UACtD,MAAM,WAAW,aAAa,WAAW,WAAW,YAAY,MAAM,MAAM,OAC5E,MAAM,mBAAmB,aACxB,WAAW,mBAAmB,YAAY,MAAM,cAAc,OAC/D,MAAM,WAAW,aAAa,WAAW,WAAW,WAAW,MAAM,MAAM;AAAA,EAC9E,MAAM,CAAC,UAAU,mCAAmC,MAAM,QAAQ,MAAM;AAAA,EACxE,YAAY;AACd,CAAC;AAQM,IAAM,oCAAoC,MACtC,kBACP,2BACO,iBAAQ,0BAA0B,SAAS,GAAG,UAAQ,CAAC,CAChE;;AG9KF,qBAAS;AACT,uBAAS;AACT;AACA;;;ACrCA;AAmEO,IAAM,aAAa,CACxB,MACA,WAC4B;AAAA,EAC5B,SAAS,eAAe,KAAK,UAAU;AAAA,EACvC,SAAS,KAAK,KAAK,UAAU;AAAA,EAC7B,0BAA0B,KAAK,KAAK,yBAAyB,EAAE,KAAK;AAAA,EACpE,eAAe,KAAK,KAAK,cAAc,EAAE,KAAK;AAAA,EAC9C,cAAc,IAAI,KAAK,eAAe,CAAC;AAAA,EACvC,eAAe,IAAI,KAAK,gBAAgB,CAAC;AAAA,EACzC,aAAa,IAAI,KAAK,cAAc,CAAC;AAAA,EACrC,gBAAgB,IAAI,KAAK,iBAAiB,CAAC;AAAA,EAC3C,eAAe,IAAI,KAAK,gBAAgB,CAAC;AAAA,EACzC,eAAe,IAAI,KAAK,gBAAgB,CAAC;AAAA,EACzC,oBAAoB,eAAe,KAAK,qBAAqB,MAAM;AAAA,EACnE,MAAM,MAAM;AAAA,EACZ,2BAA2B,eAAe,KAAK,0BAA0B;AAAA,EACzE,QAAQ,eAAe,KAAK,SAAS;AAAA,EACrC,eAAe,KAAK,KAAK,cAAc;AAAA,EACvC,MAAM,KAAK,KAAK,OAAO;AAAA,EACvB,kBAAkB,KAAK,KAAK,iBAAiB,EAAE,KAAK;AAAA,EACpD,QAAQ,eAAe,KAAK,SAAS;AAAA,EACrC,cAAc,KAAK,KAAK,aAAa;AACvC;AAEA,IAAM,QAAO,CAAI,UAAyB,SAAY,aAAa,aAAa,aAAa;AAYtF,IAAM,WAAU,CAAC,MAA8B,UACpD,MAAK,MAAM,SAAS,KAAK,OAAO,KAChC,MAAK,MAAM,gBAAgB,KAAK,GAAG,KAAK,cAAc,KACtD,MAAK,MAAM,mBAAmB,KAAK,GAAG,KAAK,iBAAiB,KAC5D,MAAK,MAAM,cAAc,KAAK,YAAY,KAC1C,MAAK,MAAM,gBAAgB,KAAK,cAAc,KAC9C,MAAK,MAAM,eAAe,KAAK,aAAa,KAC5C,MAAK,MAAM,gBAAgB,KAAK,cAAc,KAC9C,MAAK,MAAM,iBAAiB,KAAK,eAAe,KAChD,MAAK,MAAM,gBAAgB,KAAK,cAAc,KAC9C,MAAK,MAAM,gBAAgB,KAAK,cAAc,KAC9C,MAAK,MAAM,2BAA2B,KAAK,GAAG,KAAK,yBAAyB,MAC3E,MAAM,+BAA+B,aACpC,eAAe,MAAM,0BAA0B,MAAM,KAAK,+BAC5D,MAAK,MAAM,eAAe,KAAK,aAAa,MAC3C,MAAM,WAAW,aAAa,eAAe,MAAM,MAAM,MAAM,KAAK,YACpE,MAAM,WAAW,aAAa,eAAe,MAAM,MAAM,MAAM,KAAK,YACpE,MAAM,wBAAwB,aAC7B,eAAe,MAAM,qBAAqB,MAAM,MAAM,KAAK;AAE/D,IAAM,OAAM,CAAC,KAAa,UACxB,UAAU,YAAY,CAAC,IAAI,GAAG,MAAM,MAAM;AAG5C,IAAM,QAAQ,CAAC,UAA+B,UAAU,YAAY,YAAY,OAAO,KAAK;AAY5F,IAAM,UAAU,CAAC,WAAsD;AAAA,KAClE,KAAI,WAAW,MAAM,OAAO;AAAA,KAC5B,KAAI,eAAe,MAAM,gBAAgB,KAAK,CAAC;AAAA,KAC/C,KAAI,cAAc,MAAM,MAAM,aAAa,CAAC;AAAA,KAC5C,KAAI,eAAe,MAAM,MAAM,cAAc,CAAC;AAAA,KAC9C,KAAI,aAAa,MAAM,MAAM,YAAY,CAAC;AAAA,KAC1C,KAAI,gBAAgB,MAAM,MAAM,eAAe,CAAC;AAAA,KAChD,KAAI,eAAe,MAAM,MAAM,cAAc,CAAC;AAAA,KAC9C,KAAI,eAAe,MAAM,MAAM,cAAc,CAAC;AAAA,KAC9C,KAAI,0BAA0B,MAAM,yBAAyB;AAAA,KAC7D,KAAI,oBAAoB,MAAM,mBAAmB;AAAA,KACjD,KAAI,2BAA2B,MAAM,0BAA0B;AAAA,KAC/D,KAAI,UAAU,MAAM,MAAM;AAAA,KAC1B,KAAI,eAAe,MAAM,cAAc;AAAA,KACvC,KAAI,kBAAkB,MAAM,mBAAmB,KAAK,CAAC;AAAA,KACrD,KAAI,UAAU,MAAM,MAAM;AAAA,KAC1B,KAAI,cAAc,KAAK,MAAM,aAAa,CAAC;AAChD;AAWO,IAAM,cAAa,CAAC,WAAuC;AAAA,KAC7D,QAAQ,KAAK;AAAA,EAChB,MAAM,MAAM;AAAA,EACZ,MAAM,MAAM;AAAA,KAKR,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAClE;AAqBO,IAAM,cAAa,CAAC,UAAsC,QAAQ,KAAK;AAEvE,IAAM,UAAS,CAAC,UAA6B,oBAAoB,MAAM;AAwBvE,IAAM,UAAU,CAAC,UACtB,IAA6B,MAAM,QAAQ,QAAQ,OAAO,QAAO,KAAK,CAAC,EAAE,KAChE,aAAI,CAAC,SACV,SAAS,aAAa,OAAO,KAAK,YAAY,WAAW,YAAY,WAAW,MAAM,KAAK,CAC7F,GACO,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CACtC;;;AC/OF;AAgBA,IAAM,WAAW,CAAC,MAAc,UAAkB;AAAA,EAChD,MAAM,OAAO,CAAC,UAAmB,MAAM,SAAS,IAAI,MAAM,QAAQ,QAAQ,EAAE,IAAI;AAAA,EAChF,OAAO,KAAK,IAAI,MAAM,KAAK,KAAK;AAAA;AAQ3B,IAAM,YAAY,CAAC,MAA8B,UACtD,KAAK,SAAS,MAAM,SAAS,KAAK,MAAM,MAAM,IAAI,IACvC,gBACA,aACL,IAAI,MACF,GAAG,QAAO,KAAK,oBAAoB,MAAM,sBAAsB,KAAK,oBAClE,sFACA,wFACA,0FACA,uCACJ,CACF;AAgBC,IAAM,eAAe,CAAC,MAA8B,UACzD,MAAM,YAAY,aAAa,eAAe,MAAM,OAAO,MAAM,KAAK,UAC3D,gBACA,aACL,IAAI,MACF,GAAG,QAAO,KAAK,uBAAuB,MAAM,2BAC1C,GAAG,KAAK,YAAY,KAAK,+BAA+B,KAAK,0BAC7D,yFACA,yFACA,iFACA,+BACJ,CACF;AAuBC,IAAM,UAAS,CAAU,OAA8B,SACrD,aAAI,UAAU,GAAG;AAAA,EACtB,SAAS,UAAU,EAAG,UAAU,IAAI,WAAW,GAAG;AAAA,IAChD,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,KAAK,IAAI;AAAA,MAAG,OAAO;AAAA,IACvB,OAAc,eAAM,WAAW;AAAA,EACjC;AAAA,EACA,OAAO,OAAO;AAAA,CACf;;;AC5FH;AAMO,IAAM,qBAAqF;AAAA,EAChG,QAAQ;AAAA,EACR,QAAQ;AACV;AAGO,IAAM,sBAAsB,CAAC,UAC3B,aAAI,UAAU,GAAG;AAAA,EACtB,OAAO,UAAU,mBAAmB,QAAQ,YAAW,KAAK,GAAG,IAAI;AAAA,EACnE,OAAO,UAAU,mBAAmB,QAAQ,YAAW,KAAK,GAAG,KAAK;AAAA,CACrE;;;AHoII,IAAM,eAAe,WAAuB,iBAAiB;AAAA,EAClE,sBAAsB;AACxB,CAAC;AAEM,IAAM,uBAAuB,MACzB,kBACP,cACO,iBACL,aAAa,SAAS,GAAG;AAAA,EAMvB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAM,GAAG,WAAW,QAAQ,IAAI;AAAA,EAOhC,MAAM,GAAG,MAAM,aACN,aAAI,UAAU,GAAG;AAAA,IACtB,IAAI,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IAGvB,OAAO,oBAAoB,IAAI;AAAA,IAC/B,IAAI,WAAW;AAAA,MAAW;AAAA,IAC1B,MAAM,OAAO,OAAO,QAAQ,IAAI;AAAA,IAGhC,IAAI,SAAS;AAAA,MAAW,OAAO,EAAE,QAAQ,SAAS;AAAA,IAClD,OAAO,UAAU,MAAM,IAAI;AAAA,IAC3B,OAAO,aAAa,MAAM,IAAI;AAAA,IAC9B,OAAO,SAAQ,MAAM,IAAI,IACpB,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EAMH,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IAExC,OAAO,oBAAoB,IAAI;AAAA,IAC/B,MAAM,OAAO,OAAO,QAAQ,IAAI;AAAA,IAChC,IAAI;AAAA,IACJ,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,OAAO,IACZ,KAAK,QACL,aACA,QACA,oBACA,YAAW,IAAI,CACjB;AAAA,IACF,EAAO;AAAA,MACL,OAAO,UAAU,MAAM,IAAI;AAAA,MAC3B,OAAO,aAAa,MAAM,IAAI;AAAA,MAE9B,MAAM,OAAO,WAAW,UAAS,MAAM,MAAM,YAAW,IAAI,CAAC;AAAA,MAC7D,IAAI,SAAS,WAAW;AAAA,QACtB,OAAO,IAAI,KAAK,QAAQ,aAAa,OAAO,QAAO,IAAI,GAAG,IAAI;AAAA,MAChE;AAAA;AAAA,IAEF,MAAM,QAAQ,OAAO,QACnB,QAAQ,IAAI,GACZ,CAAC,QAAQ,QAAQ,aAAa,SAAQ,KAAK,IAAI,CACjD;AAAA,IACA,IAAI,UAAU,aAAa,CAAC,SAAQ,OAAO,IAAI,GAAG;AAAA,MAKhD,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,QAAO,IAAI,qEACZ,4DAA4D,QAAQ,cACpE,gFACA,mFACA,2DACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAgBD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,IAAY,KAAK,QAAQ,aAAa,UAAU,QAAO,IAAI,CAAC;AAAA,IACnE,MAAM,OAAO,OAAO,QAAO,QAAQ,IAAI,GAAG,CAAC,QAAQ,QAAQ,SAAS;AAAA,IACpE,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,QAAO,IAAI,mEACZ,kFACA,kEACA,GAAG,KAAK,0EACZ,CACF;AAAA,IACF;AAAA,GACD;AACH,CAAC,CACH,CACF;;AI7OF,qBAAS;AACT;AACA;AAsBO,IAAM,yBAAyB,WAAiC,yBAAyB;AAEhG,IAAM,aAAW,YAAwE;AAAA,EACvF,YAAY,CAAC,MAAM,UAAU,kBAAkB,MAAM,MAAM,IAAI;AAAA,EAC/D,YAAY,MAAM;AAAA,EAClB,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,EACT,MAAM,CAAC,UAAU,iCAAiC,MAAM;AAAA,EACxD,YAAY;AACd,CAAC;AAEM,IAAM,iCAAiC,MACnC,kBACP,wBACO,iBAAQ,uBAAuB,SAAS,GAAG,UAAQ,CAAC,CAC7D;;ACzDF,qBAAS;AACT;AACA;;;ACjBA,uBAAS;AAET;;;ACYA,IAAM,aAAgF;AAAA,EACpF,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,oBAAoB,CAAC,UAChC,WAAU,MAAM;;;AChBlB,IAAM,eAAe;AAGrB,IAAM,kBACJ;AACF,IAAM,oBAAoB;AAEnB,IAAM,mBAAmB,CAAC,SAC/B,kBAAkB,KAAK,IAAI,KAAK,gBAAgB,KAAK,IAAI;AAE3D,IAAM,WAAU,CAAC,UAA2B,UAAU,MAAM,CAAC,aAAa,KAAK,KAAK;AAG7E,IAAM,2BAA2B,CACtC,WAEA,OAAO,QAAQ,UAAU,CAAC,CAAC,EACxB,OAAO,EAAE,MAAM,WAAW,OAAO,UAAU,YAAY,iBAAiB,IAAI,CAAC,EAC7E,OAAO,IAAI,WAAW,SAAQ,KAAe,CAAC,EAC9C,IAAI,EAAE,UAAU,IAAI,EACpB,KAAK;AAOH,IAAM,0BAA0B,CAAC,QAAsC;AAAA,EAC5E,IAAI,QAAQ;AAAA,IAAW,OAAO,CAAC;AAAA,EAC/B,MAAM,MAAgB,CAAC;AAAA,EACvB,MAAM,YAAY,oCAAoC,KAAK,GAAG,IAAI,MAAM;AAAA,EACxE,MAAM,KAAK,UAAU,YAAY,GAAG;AAAA,EACpC,IAAI,MAAM,GAAG;AAAA,IACX,MAAM,WAAW,UAAU,MAAM,GAAG,EAAE;AAAA,IACtC,MAAM,QAAQ,SAAS,QAAQ,GAAG;AAAA,IAClC,IAAI,SAAS,KAAK,SAAQ,SAAS,MAAM,QAAQ,CAAC,CAAC;AAAA,MAAG,IAAI,KAAK,UAAU;AAAA,EAC3E;AAAA,EAEA,MAAM,SAAS,IAAI,QAAQ,WAAW,EAAE;AAAA,EACxC,WAAW,QAAQ,OAAO,MAAM,OAAO,GAAG;AAAA,IACxC,MAAM,KAAK,KAAK,QAAQ,GAAG;AAAA,IAC3B,MAAM,OAAO,KAAK,IAAI,OAAO,KAAK,MAAM,GAAG,EAAE;AAAA,IAC7C,IAAI,MAAM,KAAK,iBAAiB,IAAI,KAAK,SAAQ,KAAK,MAAM,KAAK,CAAC,CAAC;AAAA,MAAG,IAAI,KAAK,IAAI,MAAM;AAAA,EAC3F;AAAA,EACA,OAAO;AAAA;;;ACtDT,mBAAS;;;ACYT;AACA;AAmBO,IAAM,aAAa,CACxB,MACA,MAAmB,QAAQ,QACoE;AAAA,EAC/F,MAAM,SAAiC,CAAC;AAAA,EACxC,MAAM,UAAoB,CAAC;AAAA,EAC3B,YAAY,KAAK,QAAQ,OAAO,QAAQ,IAAI,GAAG;AAAA,IAC7C,MAAM,QAAQ,IAAI,IAAI;AAAA,IACtB,IAAI,UAAU,aAAa,UAAU;AAAA,MAAI,QAAQ,KAAK,IAAI,OAAO;AAAA,IAC5D;AAAA,aAAO,OAAO;AAAA,EACrB;AAAA,EACA,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO;AAAA;AAQzD,IAAM,OAAO,EAAE,GAAG,OAAQ,QAAQ,KAAK,OAAO,MAAM,GAAG,GAAG,GAAG,EAAE;AAC/D,IAAM,SAAS;AAGf,IAAM,YAAY,CAAC,WACjB,KAAK,UACH,OAAO,KAAK,MAAM,EACf,KAAK,EACL,IAAI,CAAC,QAAQ,CAAC,KAAK,OAAO,IAAI,CAAC,CACpC;AAEF,IAAM,SAAS,CAAC,MAAc,WAC5B,WAAW,UAAU,MAAM,GAAG,MAAM,IAAI,IAAI;AASvC,IAAM,OAAO,CAAC,QAA0C,SAA0B;AAAA,EACvF,IAAI,OAAO,KAAK,MAAM,EAAE,WAAW;AAAA,IAAG,OAAO;AAAA,EAC7C,MAAM,QAAQ,SAAS,YAAY,YAAY,EAAE,IAAI,OAAO,KAAK,MAAM,MAAM;AAAA,EAC7E,OAAO,GAAG,UAAU,MAAM,SAAS,WAAW,KAAK,OAAO,OAAO,MAAM,EAAE,SAAS,WAAW;AAAA;AASxF,IAAM,cAAc,CAAC,QAAgB,WAAsD;AAAA,EAChG,IAAI,WAAW;AAAA,IAAI,OAAO,OAAO,KAAK,MAAM,EAAE,WAAW;AAAA,EACzD,OAAO,QAAQ,MAAM,QAAQ,SAAS,OAAO,MAAM,GAAG;AAAA,EACtD,IAAI,WAAW,UAAU,SAAS,aAAa,WAAW,aAAa,UAAU,WAAW;AAAA,IAC1F,OAAO;AAAA,EACT;AAAA,EACA,MAAM,WAAW,OAAO,KAAK,QAAQ,WAAW;AAAA,EAChD,MAAM,SAAS,OAAO,OAAO,KAAK,MAAM,WAAW,GAAG,MAAM;AAAA,EAC5D,OAAO,SAAS,WAAW,OAAO,UAAU,gBAAgB,UAAU,MAAM;AAAA;;;ADnFvE,IAAM,SAAS,CAAC,UAA0B,QAAO,KAAK,OAAO,MAAM,EAAE,SAAS,QAAQ;AAGtF,IAAM,WAAW,CAAC,UAA0B,QAAO,KAAK,OAAO,QAAQ,EAAE,SAAS,MAAM;AAQxF,IAAM,cAAc,CAAC,SAAmD;AAAA,EAC7E,MAAM,QAAgC,CAAC;AAAA,EACvC,WAAW,QAAQ,KAAK,MAAM,GAAG,GAAG;AAAA,IAClC,MAAM,KAAK,KAAK,QAAQ,GAAG;AAAA,IAC3B,IAAI,KAAK;AAAA,MAAG,MAAM,KAAK,MAAM,GAAG,EAAE,EAAE,KAAK,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE,KAAK;AAAA,EACxE;AAAA,EACA,MAAM,QAAQ,MAAM;AAAA,EACpB,OAAO,UAAU,YAAY,EAAE,MAAM,MAAM,WAAW,GAAG,IAAI,EAAE,MAAM,MAAM,WAAW,IAAI,MAAM;AAAA;AAI3F,IAAM,WAAW,CAAC,MAAc,UACrC,QAAQ,cAAc,OAAO,KAAK;AAEpC,IAAM,QAAO,CAAC,UACZ,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,SAAkB,OAAO,IAAI,CAAC,IAAI,CAAC;AAGhE,IAAM,QAAQ,CAAC,SACpB,CAAC,GAAG,IAAI,EACL,OAAO,CAAC,QAAQ,QAAQ,EAAE,EAC1B,KAAK,EACL,KAAK,GAAG;AAON,IAAM,eAAe,CAAC,QAAgB,WAC3C,KAAK,QAAO,8BAA8B,eAAe;AAMpD,IAAM,mBAAmB,CAC9B,MACA,UACoC;AAAA,EACpC,MAAM,UAAkC,CAAC;AAAA,EACzC,WAAW,QAAQ,MAAK,KAAK,SAAS,GAAG;AAAA,IACvC,QAAQ,MAAM,UAAU,YAAY,IAAI;AAAA,IACxC,IAAI,SAAS;AAAA,MAAI,QAAQ,QAAQ,SAAS,SAAS,EAAE;AAAA,EACvD;AAAA,EACA,MAAM,UAAU,MAAK,KAAK,SAAS,EAAE,IAAI,CAAC,SAAS,YAAY,IAAI,EAAE,IAAI;AAAA,EACzE,OAAO;AAAA,IACL,QAAQ,KAAK,KAAK,SAAS;AAAA,IAI3B,MAAM,SAAS,KAAK,KAAK,OAAO,CAAC;AAAA,IACjC,SAAS,KAAK,KAAK,UAAU;AAAA,IAC7B,SAAS,KAAK,KAAK,UAAU;AAAA,IAC7B,gBAAgB,KAAK,KAAK,eAAe;AAAA,IACzC,QAAQ,MAAM,OAAO,KAAK,OAAO,CAAC;AAAA,IAClC,cAAc,aAAa,MAAM,MAAM,OAAO;AAAA,IAC9C,QAAQ,YAAY,KAAK,SAAS;AAAA,IAClC,eAAe,YAAY,KAAK,cAAc;AAAA,IAC9C,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,MAAM,KAAK,KAAK,OAAO;AAAA,IACvB,MAAM,MAAM;AAAA,IAGZ,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,MAAM,OAAO,KAAK,OAAO;AAAA,IACzB,QAAQ,MAAM,OAAO;AAAA,IACrB,QAAQ;AAAA,IACR,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,KAAK,KAAK,KAAK,MAAM;AAAA,IACrB,UAAU,KAAK,KAAK,WAAW;AAAA,EACjC;AAAA;;;AE7EF,IAAM,QAAoE;AAAA,EACxE,QAAQ,CAAC,YAAY,MAAM;AAAA,EAC3B,MAAM,CAAC,SAAS;AAAA,EAChB,gBAAgB,CAAC,YAAY,MAAM;AAAA,EACnC,QAAQ,CAAC,SAAS;AAAA,EAClB,QAAQ,CAAC,YAAY,MAAM;AAAA,EAC3B,eAAe,CAAC,YAAY,MAAM;AAAA,EAClC,QAAQ,CAAC,SAAS;AAAA,EAClB,MAAM,CAAC,MAAM;AAAA,EACb,UAAU,CAAC,MAAM;AAAA,EACjB,MAAM,CAAC,MAAM;AAAA,EACb,QAAQ,CAAC,SAAS;AAAA,EAClB,QAAQ,CAAC,MAAM;AAAA,EACf,KAAK,CAAC,SAAS;AAAA,EACf,UAAU,CAAC,MAAM;AACnB;AAEA,IAAM,WAA8D;AAAA,EAClE,UAAU,CAAC;AAAA,EACX,MAAM,CAAC,UAAU,cAAc;AAAA,EAC/B,SAAS,CAAC,OAAO,QAAQ;AAC3B;AAGA,IAAM,aAAa;AAGnB,IAAM,aACJ;AAQK,IAAM,WAAW,CAAC,UAA2B;AAAA,EAClD,MAAM,MAAgB,CAAC;AAAA,EACvB,YAAY,QAAO,UAAU,OAAO,QAAQ,KAAK,GAA0C;AAAA,IACzF,IAAI,MAAM,YAAW,aAAa,CAAC,MAAM,SAAS,MAAM,IAAI,GAAG;AAAA,MAC7D,IAAI,KAAK,IAAI,sBAAqB,MAAM,KAAK,GAAG,kBAAkB,MAAM,MAAM;AAAA,IAChF;AAAA,EACF;AAAA,EACA,WAAW,UAAS,SAAS,MAAM,OAAO;AAAA,IACxC,IAAI,MAAM,YAAW,aAAa,MAAM,YAAW;AAAA,MACjD,IAAI,KAAK,GAAG,MAAM,eAAe,SAAQ;AAAA,EAC7C;AAAA,EACA,WAAW,OAAO,CAAC,GAAG,OAAO,KAAK,MAAM,UAAU,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG;AAAA,IAC1F,IAAI,CAAC,WAAW,KAAK,GAAG;AAAA,MAAG,IAAI,KAAK,IAAI,wCAAwC;AAAA,EAClF;AAAA,EAEA,WAAW,QAAQ,yBAAyB,MAAM,MAAM,GAAG;AAAA,IACzD,IAAI,KAAK,WAAW,qCAAqC,YAAY;AAAA,EACvE;AAAA,EACA,WAAW,SAAS,wBAAwB,MAAM,GAAG,GAAG;AAAA,IACtD,IAAI,KAAK,SAAS,qCAAqC,YAAY;AAAA,EACrE;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,YAAY,CAAC,UAA8C,OAAO,UAAU;AAG3E,IAAM,gBAAgB,CAAC,OAAc,MAAmB,QAAQ,QAAQ;AAAA,EAC7E,MAAM,aAAsC,CAAC;AAAA,EAC7C,MAAM,UAAkC,CAAC;AAAA,EACzC,YAAY,MAAM,UAAU,OAAO,QAAQ,MAAM,UAAU,CAAC,CAAC,GAAG;AAAA,IAC9D,IAAI,UAAU,KAAK;AAAA,MAAG,WAAW,QAAQ;AAAA,IACpC;AAAA,cAAQ,QAAQ;AAAA,EACvB;AAAA,EACA,MAAM,SAAS,WAAW,YAAY,GAAG;AAAA,EACzC,MAAM,aAAsC,CAAC;AAAA,EAC7C,YAAY,MAAM,QAAQ,OAAO,QAAQ,MAAM,UAAU,CAAC,CAAC;AAAA,IAAG,WAAW,UAAU,UAAU;AAAA,EAC7F,IAAI,MAAM,aAAa;AAAA,IAAW,WAAW,cAAc,MAAM;AAAA,EACjE,MAAM,SAAS,WAAW,YAAY,GAAG;AAAA,EACzC,OAAO;AAAA,IACL,QAAQ,EAAE,SAAS,OAAO,SAAS,QAAQ,KAAK,YAAY,OAAO,OAAO,EAAE;AAAA,IAC5E;AAAA,EACF;AAAA;AAMF,IAAM,QAAO,CAAC,UAA8B,SAC1C,aAAa,aAAa,aAAa;AAGlC,IAAM,eAAe,CAAC,MAAuC,UAClE,KAAK,aAAa,MAAM,YAAY,SACpC,MAAK,MAAM,SAAS,KAAK,OAAO,KAChC,MAAK,MAAM,QAAQ,KAAK,MAAM,KAC9B,MAAK,MAAM,iBAAiB,KAAK,eAAe,KAChD,MAAK,MAAM,QAAQ,KAAK,MAAM,MAC7B,MAAM,SAAS,aAAa,MAAM,SAAS,KAAK,SACjD,MAAK,MAAM,MAAM,KAAK,IAAI,KAC1B,MAAK,MAAM,UAAU,KAAK,QAAQ,KAClC,MAAK,MAAM,KAAK,KAAK,GAAG,KACxB,MAAK,MAAM,QAAQ,KAAK,MAAM,KAC9B,MAAK,MAAM,MAAM,KAAK,IAAI,MACzB,MAAM,WAAW,aAAa,YAAY,MAAM,MAAM,MAAM,KAAK,YACjE,MAAM,mBAAmB,aAAa,YAAY,MAAM,cAAc,MAAM,KAAK;AAE7E,IAAM,cAAc,CACzB,MACA,OACA,WACe;AAAA,EACf,IAAI,MAAM,WAAW;AAAA,IAAW,OAAO;AAAA,EACvC,IAAI,MAAM,OAAO,KAAK,MAAM,MAAM,CAAC,MAAM,KAAK;AAAA,IAAQ,OAAO;AAAA,EAC7D,IAAI,OAAO,OAAO,QAAQ,SAAS;AAAA,IAAG,OAAO;AAAA,EAC7C,OAAO,aAAa,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,KAAK,eAAe,UAAU;AAAA;AAGnF,IAAM,cAAc,CACzB,MACA,OACA,QACA,WACe;AAAA,EACf,IAAI,MAAM,WAAW,aAAa,MAAM,aAAa;AAAA,IAAW,OAAO;AAAA,EACvE,IAAI,MAAM,WAAW,aAAa,MAAM,OAAO,KAAK,MAAM,MAAM,CAAC,MAAM,KAAK;AAAA,IAC1E,OAAO;AAAA,EACT,IAAI,OAAO,OAAO,QAAQ,SAAS,KAAK,WAAW;AAAA,IAAI,OAAO;AAAA,EAC9D,OAAO,YAAY,QAAQ,OAAO,OAAO,MAAM,IAAI,UAAU;AAAA;AAS/D,IAAM,cAAc,CAAC,OAAc,WACjC,OAAO,KAAK,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,SACnC,SAAS,MAAM,OAAO,OAAO,OAAO,UAAU,WAAW,EAAE,CAC7D;AAEF,IAAM,cAAc,CAAC,OAAc,WACjC,OAAO,KAAK,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,SAAS,MAAM,OAAO,OAAO,OAAO,SAAS,EAAE,CAAC;AAGhG,IAAM,aAAa,CAAC,UAAyD;AAAA,EAC3E,CAAC,UAAU,MAAM,UAAU,EAAE;AAAA,EAC7B,CAAC,QAAQ,MAAM,SAAS,YAAY,KAAK,OAAO,MAAM,IAAI,CAAC;AAAA,EAC3D,CAAC,WAAW,MAAM,WAAW,EAAE;AAAA,EAC/B,CAAC,gBAAgB,MAAM,mBAAmB,EAAE;AAAA,EAC5C,CAAC,UAAU,MAAM,UAAU,EAAE;AAAA,EAC7B,CAAC,QAAQ,MAAM,QAAQ,EAAE;AAAA,EACzB,CAAC,QAAQ,MAAM,SAAS,YAAY,KAAK,OAAO,MAAM,IAAI,CAAC;AAAA,EAC3D,CAAC,UAAU,MAAM,UAAU,EAAE;AAAA,EAC7B,CAAC,OAAO,MAAM,OAAO,EAAE;AAAA,EACvB,CAAC,YAAY,MAAM,YAAY,EAAE;AAAA,EACjC,CAAC,UAAU,MAAM,WAAW,YAAY,CAAC,IAAI,YAAY,MAAM,MAAM,EAAE,MAAM,GAAG,CAAC;AAAA,EACjF;AAAA,IACE;AAAA,IACA,MAAM,mBAAmB,YAAY,CAAC,IAAI,YAAY,MAAM,cAAc,EAAE,MAAM,GAAG;AAAA,EACvF;AACF;AAEA,IAAM,WAAW,CAAC,OAAc,QAC7B,MAA6C,SAAS;AAEzD,IAAM,QAAQ,CAAC,UACb,OAAO,UAAU,WAAW,UAAU,KAAK,MAAM,OAAO,CAAC,SAAS,SAAS,EAAE,EAAE,WAAW;AAQrF,IAAM,aAAa,CACxB,OACA,QACA,OACA,SACY;AAAA,EACZ,MAAM,OAAmD;AAAA,IACvD,SAAS,MAAM,YAAY,OAAO,MAAM;AAAA,EAC1C;AAAA,EACA,MAAM,UAAoB,CAAC;AAAA,EAC3B,MAAM,MAAM,CAAC,KAAa,UAAsC;AAAA,IAC9D,IAAI,CAAC,MAAM,KAAK;AAAA,MAAG,KAAK,OAAO;AAAA,IAC1B,SAAI,SAAS;AAAA,MAAU,QAAQ,KAAK,GAAG;AAAA;AAAA,EAE9C,YAAY,KAAK,UAAU,WAAW,KAAK;AAAA,IAAG,IAAI,SAAS,OAAO,GAAG;AAAA,MAAG,IAAI,KAAK,KAAK;AAAA,EACtF,IAAI,MAAM,UAAU,MAAM,WAAW;AAAA,IAAW,IAAI,UAAU,YAAY,OAAO,MAAM,CAAC;AAAA,EACxF,IAAI,MAAM,UAAU,MAAM,WAAW;AAAA,IAAW,IAAI,UAAU,YAAY,OAAO,MAAM,CAAC;AAAA,EACxF,IAAI,MAAM,UAAU,MAAM,aAAa,WAAW;AAAA,IAChD,KAAK,cAAc,OAAO,OAAO,OAAO,eAAe;AAAA,EACzD;AAAA,EACA,IAAI,SAAS;AAAA,IAAU,KAAK,UAAU,MAAM;AAAA,EAC5C,IAAI,QAAQ,SAAS;AAAA,IAAG,KAAK,YAAY;AAAA,EACzC,OAAO;AAAA;;;AL5LT,IAAM,OAAO,CAAC,UAAiB,kCAAkC,MAAM,QAAQ,MAAM;AAMrF,IAAM,YAAW,CAAC,UAChB,IAA6B,MAAM,QAAQ,QAAQ,OAAO,KAAK,KAAK,CAAC,EAAE,KAC9D,aAAI,CAAC,SAAU,QAAQ,OAAO,YAAY,iBAAiB,MAAM,KAAK,CAAE,GACxE,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CACtC;AAEF,IAAM,UAAS,CAAC,UAAiB;AAAA,EAC/B,MAAM,UAAU,SAAS,KAAK;AAAA,EAC9B,OAAO,QAAQ,WAAW,IACf,gBACA,aAAI,IAAI,MAAM,GAAG,KAAK,KAAK,MAAM,QAAQ,KAAK,IAAI,IAAI,CAAC;AAAA;AAIpE,IAAM,UAAU,CAAC,MAAkB,OAAc,QAAgB,WAAmB;AAAA,EAClF,MAAM,SAAS,YAAY,MAAM,OAAO,MAAM,MAAM;AAAA,EACpD,MAAM,cAAc,YAAY,MAAM,OAAO,QAAQ,MAAM,MAAM;AAAA,EACjE,OAAO,aAAa,MAAM,KAAK,KAAK,CAAC,UAAU,CAAC,cAC5C,YACC,EAAE,QAAQ,QAAQ,YAAY;AAAA;AAIrC,IAAM,gBAAgB,CAAC,OAAc,QAAgB,UAAiB;AAAA,EACpE,MAAM,UAAU;AAAA,IACd,GAAI,MAAM,SAAS,OAAO,OAAO,UAAU,CAAC;AAAA,IAC5C,GAAI,MAAM,SAAS,OAAO,OAAO,UAAU,CAAC;AAAA,EAC9C;AAAA,EACA,OAAO,QAAQ,WAAW,IACf,gBACA,aACL,IAAI,MACF,GAAG,KAAK,KAAK,kDAAkD,QAAQ,KAAK,IAAI,OAC9E,6EACJ,CACF;AAAA;AAGC,IAAM,aAAW;AAAA,EAEtB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAiB7B,MAAM,GAAG,MAAM,cACZ,WAAW,YAAY,QAAO,IAAI,IAAW,eAAM,KAC3C,iBAAQ,UAAS,IAAI,CAAC,GACtB,aAAI,CAAC,SACV,SAAS,YAAY,YAAY,KAAK,MAAM,QAAQ,QAAQ,UAAU,GAAG,CAC3E,CACF;AAAA,EAOF,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,QAMO,aAAI,UAAU,GAAG;AAAA,IACtB,IAAI,WAAW,aAAa,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IAC/C,IAAI,SAAS,cAAc,KAAK,SAAS,KAAK,QAAQ,KAAK,SAAS,KAAK,OAAO;AAAA,MAC9E,OAAO,EAAE,QAAQ,WAAW,aAAa,KAAK,SAAS,KAAK,KAAK;AAAA,IACnE;AAAA,IACA,OAAO,QAAO,IAAI;AAAA,IAClB,MAAM,OAAO,OAAO,UAAS,IAAI;AAAA,IACjC,IAAI,SAAS;AAAA,MAAW,OAAO,EAAE,QAAQ,SAAS;AAAA,IAClD,OAAO,QAAQ,MAAM,MAAM,cAAc,IAAI,GAAG,OAAO,MAAM,MAAM,YAC9D,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EACH,WAAW,GAAG,MAAM,aACX,aAAI,UAAU,GAAG;AAAA,IACtB,OAAO,QAAO,IAAI;AAAA,IAClB,MAAM,SAAS,cAAc,IAAI;AAAA,IACjC,MAAM,OAAO,OAAO,UAAS,IAAI;AAAA,IACjC,IAAI,SAAS,QAAQ,UAAU;AAAA,IAC/B,IAAI,SAAS,WAAW;AAAA,MACtB,MAAM,QAAQ,EAAE,QAAQ,MAAM,QAAQ,KAAK;AAAA,MAC3C,OAAO,cAAc,MAAM,QAAQ,KAAK;AAAA,MACxC,MAAM,cAAa,kCAAkC,KAAK;AAAA,MAC1D,MAAM,OAAO,WAAW,MAAM,QAAQ,OAAO,QAAQ;AAAA,MAQrD,OAAO,UAAU,kBAAkB,IAAI,EAAE,QAAQ,MAAM,IAAI;AAAA,MAC3D,OAAO,IAAI,KAAK,QAAQ,aAAa,QAAQ,aAAY,IAAI;AAAA,MAC7D,SAAS,KAAK,OAAO,OAAO,MAAM;AAAA,IACpC,EAAO;AAAA,MACL,MAAM,QAAQ,QAAQ,MAAM,MAAM,QAAQ,MAAM;AAAA,MAChD,IAAI,UAAU,WAAW;AAAA,QACvB,OAAO,cAAc,MAAM,QAAQ,KAAK;AAAA,QACxC,MAAM,OAAO,WAAW,MAAM,QAAQ,OAAO,QAAQ;AAAA,QAErD,OAAO,UAAU,kBAAkB,IAAI,EAAE,QAAQ,MAAM,KAAK;AAAA,QAC5D,OAAO,IAAI,KAAK,QAAQ,aAAa,OAAO,KAAK,IAAI,GAAG,IAAI;AAAA,QAC5D,IAAI,MAAM;AAAA,UAAQ,SAAS,KAAK,OAAO,OAAO,MAAM;AAAA,MACtD;AAAA;AAAA,IAEF,MAAM,QAAQ,OAAO,UAAS,IAAI;AAAA,IAClC,IAAI,UAAU,WAAW;AAAA,MAEvB,OAAO,OAAc,aACnB,IAAI,MAAM,GAAG,KAAK,IAAI,gEAAgE,CACxF;AAAA,IACF;AAAA,IACA,OAAO,KAAK,OAAO,OAAO;AAAA,GAC3B;AAAA,EACH,QAAQ,GAAG,WAA4B,IAAI,KAAK,QAAQ,aAAa,UAAU,KAAK,IAAI,CAAC;AAC3F;;;ADlDO,IAAM,wBAAwB,WAAgC,wBAAwB;AAMtF,IAAM,gCAAgC,MAClC,kBACP,uBACO,iBAAQ,sBAAsB,SAAS,GAAG,UAAQ,CAAC,CAC5D;;AO5DF,qBAAS;AACT;AACA;;;ACzCO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKA,IAAM,WAAW,CAAC,UAAiD;AAAA,EACjE,MAAM,OAA+B,CAAC;AAAA,EACtC,WAAW,OAAO,WAAW;AAAA,IAC3B,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,UAAU;AAAA,MAAW,KAAK,OAAO,OAAO,KAAK;AAAA,EACnD;AAAA,EACA,OAAO;AAAA;AAYF,IAAM,iBAAiB,CAC5B,UACuC;AAAA,EACvC,cAAc,IAAI,KAAK,eAAe,CAAC;AAAA,EACvC,eAAe,IAAI,KAAK,gBAAgB,CAAC;AAAA,EACzC,aAAa,IAAI,KAAK,cAAc,CAAC;AAAA,EACrC,gBAAgB,IAAI,KAAK,iBAAiB,CAAC;AAAA,EAC3C,eAAe,IAAI,KAAK,gBAAgB,CAAC;AAAA,EACzC,eAAe,IAAI,KAAK,gBAAgB,CAAC;AAC3C;AASO,IAAM,aAAa,CAAC,aAA+C,UACxE,UAAU,MAAM,CAAC,QAAQ,MAAM,SAAS,aAAa,MAAM,SAAS,YAAW,IAAI;AA2BrF,IAAM,iBAAiB,CAAC,UAAyB,UAAU,KAAK,CAAC,QAAQ,MAAM,SAAS,SAAS;AAEjG,IAAM,eAAe,CAAC,UAAyB;AAAA,EAC7C,IAAI,eAAe,KAAK;AAAA,IAAG;AAAA,EAC3B,MAAM,IAAI,MACR,gBAAgB,MAAM,uEACpB,cAAc,MAAM,wEACpB,gGACA,uFACJ;AAAA;AAIF,IAAM,SAAQ,CAAC,MAAc,UAC3B,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,MAAM;AAG7C,IAAM,UAAU,CAAC,UAA+B,UAAU,YAAY,YAAY,OAAO,KAAK;AAoB9F,IAAM,SAAQ,CAAC,WAAkD;AAAA,KAC5D,SAAS,KAAK;AAAA,KACd,OAAM,WAAW,MAAM,OAAO;AAAA,KAC9B,OAAM,WAAW,KAAK,MAAM,OAAO,CAAC;AAAA,KACpC,OAAM,aAAa,QAAQ,MAAM,YAAY,CAAC;AAAA,KAC9C,OAAM,MAAM,MAAM,EAAE;AAAA,EACvB,UAAU,MAAM;AAAA,EAChB,OAAO,MAAM;AACf;AAWO,IAAM,cAAa,CAAC,UAAiD;AAAA,EAC1E,aAAa,KAAK;AAAA,EAClB,OAAO,KAAK,OAAM,KAAK,GAAG,IAAI,MAAM,GAAG;AAAA;AA+BlC,IAAM,cAAa,CAAC,UAAiD;AAAA,EAC1E,aAAa,KAAK;AAAA,EAClB,OAAO,OAAM,KAAK;AAAA;;;AD9Cb,IAAM,cAAc,WAAsB,cAAc;AAG/D,IAAM,QAAO,CAAI,WAAyB,SAAY,cAAa,aAAa,cAAa;AAE7F,IAAM,aAAW,YAA+C;AAAA,EAU9D,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,SAAS,KAAK,KAAK,YAAY,EAAE;AAAA,IACjC,SAAS,KAAK,KAAK,YAAY,KAAK;AAAA,IACpC,IAAI,MAAM;AAAA,OACP,eAAe,IAAI;AAAA,IACtB,aAAa,IAAI,KAAK,cAAc,EAAE;AAAA,IACtC,IAAI,KAAK,KAAK,OAAO,EAAE;AAAA,IACvB,UAAU,KAAK,KAAK,aAAa,EAAE;AAAA,IACnC,OAAO,KAAK,KAAK,UAAU,MAAM,KAAK;AAAA,EACxC;AAAA,EACA,YAAY,MAAM;AAAA,EAClB,YAAY;AAAA,EAWZ,UAAU,EAAE,QAAQ,0BAA0B,QAAQ,6BAA6B;AAAA,EACnF,SAAS,CAAC,aAAY,UACpB,YAAW,aAAa,MAAM,YAC9B,YAAW,UAAU,MAAM,SAC3B,MAAK,MAAM,IAAI,YAAW,EAAE,KAC5B,MAAK,MAAM,cAAc,YAAW,YAAY,KAChD,MAAK,MAAM,SAAS,YAAW,OAAO,KACtC,MAAK,MAAM,SAAS,YAAW,OAAO,KACtC,WAAW,aAAY,KAAK;AAAA,EAC9B,MAAM,CAAC,UAAU,gBAAgB,MAAM;AAAA,EACvC,YAAY;AACd,CAAC;AAmBM,IAAM,sBAAsB,MACxB,kBAAO,aAAoB,iBAAQ,YAAY,SAAS,GAAG,UAAQ,CAAC,CAAC;;AE9KhF,qBAAS;AACT;AACA;;;ACvBO,IAAM,SAAQ;AAGrB,IAAM,SAAgC;AAAA,EACpC,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AACP;AAkBO,IAAM,QAAQ,CAAC,UAA2B;AAAA,EAC/C,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,MAAM,MAAM,KAAK,KAAK,EAAE,KAAK;AAAA,EAC7B,MAAM,QAAQ,wCAAwC,KAAK,GAAG;AAAA,EAC9D,IAAI,UAAU;AAAA,IAAM,OAAO;AAAA,EAC3B,MAAM,OAAO,OAAM,MAAM,MAAM;AAAA,EAC/B,OAAO,SAAS,YAAY,SAAQ,KAAK,MAAM,OAAO,MAAM,MAAM,GAAG,IAAI,IAAI;AAAA;AAYxE,IAAM,UAAU,CAAC,UACtB,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,UAAmB,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,KAAK;AAsB9F,IAAM,SAAQ,CAAC,WAAyB;AAAA,EACtC,gBAAgB,MAAM;AAAA,EACtB,mBAAmB,MAAM,uBAAuB,OAAO,MAAM;AAAA,EAC7D,OAAO,MAAM;AAAA,KACT,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,KAC5D,MAAM,iBAAiB,YAAY,CAAC,IAAI,EAAE,aAAa,OAAO,MAAM,YAAY,EAAE;AAAA,KAClF,MAAM,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,MAAM,GAAG;AAAA,KAC7C,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,KACtD,MAAM,eAAe,YAAY,CAAC,IAAI,EAAE,WAAW,OAAO,MAAM,UAAU,EAAE;AAAA,KAC5E,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,MAAM,OAAO;AAAA,KACzD,MAAM,iBAAiB,YAAY,CAAC,IAAI,EAAE,aAAa,MAAM,aAAa;AAAA,KAC1E,MAAM,aAAa,YAAY,CAAC,IAAI,EAAE,UAAU,MAAM,SAAS;AAAA,KAC/D,MAAM,qBAAqB,YAC3B,CAAC,IACD,EAAE,iBAAiB,MAAM,mBAAmB,MAAM,IAAI;AAAA,KACtD,MAAM,qBAAqB,YAC3B,CAAC,IACD,EAAE,iBAAiB,OAAO,MAAM,gBAAgB,EAAE;AACxD;AAYO,IAAM,cAAa,CAAC,WAAiD;AAAA,KACvE,OAAM,KAAK;AAAA,EACd,IAAI,MAAM;AAAA,KACN,MAAM,sBAAsB,YAAY,CAAC,IAAI,EAAE,kBAAkB,MAAM,kBAAkB;AAC/F;AAUO,IAAM,cAAa,CAAC,UAAgD,OAAM,KAAK;AAE/E,IAAM,aAAW,YAA6C;AAAA,EAiBnE,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,SAAS,KAAK,KAAK,YAAY,EAAE;AAAA,IACjC,gBAAgB,QAAQ,KAAK,eAAe;AAAA,IAC5C,IAAI,MAAM;AAAA,IACV,aAAa,IAAI,KAAK,cAAc,MAAK;AAAA,IACzC,IAAI,KAAK,KAAK,OAAO,EAAE;AAAA,IACvB,OAAO,KAAK,KAAK,UAAU,EAAE;AAAA,IAC7B,WAAW,MAAM,KAAK,UAAU;AAAA,IAChC,QAAQ,KAAK,KAAK,WAAW,EAAE;AAAA,IAC/B,aAAa,KAAK,KAAK,cAAc,EAAE;AAAA,IACvC,gBAAgB,KAAK,KAAK,iBAAiB,EAAE;AAAA,IAG7C,mBAAmB,KAAK,KAAK,oBAAoB,KAAK;AAAA,IACtD,UAAU,KAAK,KAAK,aAAa,EAAE;AAAA,IAGnC,iBAAiB,KAAK,KAAK,kBAAkB,KAAK;AAAA,IAClD,OAAO,KAAK,KAAK,UAAU,EAAE;AAAA,IAC7B,kBAAkB,KAAK,KAAK,mBAAmB,MAAM;AAAA,IACrD,iBAAiB,IAAI,KAAK,kBAAkB,MAAK;AAAA,EACnD;AAAA,EACA,YAAY,MAAM;AAAA,EAClB,YAAY;AAAA,EAoBZ,UAAU,EAAE,QAAQ,yBAAyB,QAAQ,4BAA4B;AAAA,EACjF,SAAS,CAAC,aAAY,UACpB,YAAW,wBAAwB,MAAM,uBAAuB,SAChE,YAAW,UAAU,MAAM,SAC3B,YAAW,oBAAoB,MAAM,oBACpC,MAAM,WAAW,aAAa,YAAW,WAAW,MAAM,YAC1D,MAAM,OAAO,aAAa,YAAW,OAAO,MAAM,QAClD,MAAM,iBAAiB,aAAa,YAAW,iBAAiB,MAAM,kBACtE,MAAM,aAAa,aAAa,YAAW,aAAa,MAAM,cAC9D,MAAM,YAAY,aAAa,YAAW,YAAY,MAAM,aAC5D,MAAM,UAAU,aAAa,YAAW,UAAU,MAAM,WAIxD,MAAM,qBAAqB,aAC1B,YAAW,qBAAqB,MAAM,sBACvC,MAAM,eAAe,aAAa,YAAW,eAAe,MAAM,gBAClE,MAAM,iBAAiB,aAAa,YAAW,iBAAiB,MAAM,kBACtE,MAAM,qBAAqB,aAC1B,YAAW,qBAAqB,MAAM;AAAA,EAE1C,MAAM,CAAC,UAAU,eAAe,MAAM;AAAA,EACtC,YAAY;AACd,CAAC;;;ADUM,IAAM,aAAa,WAAqB,aAAa;AAWrD,IAAM,qBAAqB,MACvB,kBAAO,YAAmB,iBAAQ,WAAW,SAAS,GAAG,UAAQ,CAAC,CAAC;;AEhO9E,qBAAS;AACT;AACA;;;AC6CO,IAAM,WAAW,CAAC,gBAAyB,kBAAkC;AAAA,EAClF,IAAI,CAAC;AAAA,IAAgB,OAAO;AAAA,EAG5B,IAAI,gBAAgB;AAAA,IAAG,OAAO;AAAA,EAC9B,OAAO,oCAAoC,OAAO,aAAa;AAAA;AAmC1D,IAAM,SAAQ,CAAC,WAAsD;AAAA,EAC1E,mBAAmB,MAAM,uBAAuB,QAAQ,MAAM;AAAA,EAC9D,OAAO,MAAM;AAAA,KACT,MAAM,aAAa,OAAO,CAAC,IAAI,EAAE,UAAU,MAAM,SAAS;AAAA,KAC1D,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,KAC5D,MAAM,iBAAiB,YAAY,CAAC,IAAI,EAAE,aAAa,OAAO,MAAM,YAAY,EAAE;AAAA,KAClF,MAAM,OAAO,aAAa,MAAM,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,GAAG;AAAA,KAChE,MAAM,sBAAsB,YAC5B,CAAC,IACD,EAAE,kBAAkB,OAAO,MAAM,iBAAiB,EAAE;AAC1D;;;ADUO,IAAM,eAAe,WAAuB,eAAe;AAalE,IAAM,aAAW,YAAuD;AAAA,EACtE,YAAY,CAAC,MAAM,UAAU;AAAA,IAC3B,MAAM,iBAAiB,KAAK,KAAK,oBAAoB,IAAI;AAAA,IACzD,MAAM,gBAAgB,IAAI,KAAK,mBAAmB,EAAE;AAAA,IACpD,OAAO;AAAA,MACL,SAAS,KAAK,KAAK,YAAY,EAAE;AAAA,MACjC,IAAI,MAAM;AAAA,MACV,mBAAmB;AAAA,MACnB,aAAa,IAAI,KAAK,cAAc,EAAE;AAAA,MACtC,IAAI,KAAK,KAAK,OAAO,EAAE;AAAA,MACvB,kBAAkB;AAAA,MAClB,UAAU,SAAS,gBAAgB,aAAa;AAAA,MAChD,UAAU,KAAK,KAAK,aAAa,EAAE;AAAA,MACnC,OAAO,KAAK,KAAK,UAAU,MAAM,KAAK;AAAA,IACxC;AAAA;AAAA,EAcF,YAAY,MAAM;AAAA,EAElB,YAAY,CAAC,WAAW,KAAK,OAAM,KAAK,GAAG,IAAI,MAAM,GAAG;AAAA,EAaxD,UAAU,EAAE,QAAQ,2BAA2B,QAAQ,8BAA8B;AAAA,EACrF,SAAS,CAAC,aAAY,UACpB,YAAW,UAAU,MAAM,SAI3B,YAAW,cAAc,MAAM,YAAY,OAC3C,YAAW,wBAAwB,MAAM,uBAAuB,WAC/D,MAAM,sBAAsB,aAC3B,YAAW,sBAAsB,MAAM,uBACxC,MAAM,iBAAiB,aAAa,YAAW,iBAAiB,MAAM,kBACtE,MAAM,OAAO,aAAa,YAAW,OAAO,MAAM,QAClD,MAAM,YAAY,aAAa,YAAW,YAAY,MAAM;AAAA,EAC/D,MAAM,CAAC,UAAU,iBAAiB,MAAM;AAAA,EACxC,YAAY;AACd,CAAC;AAgBM,IAAM,uBAAuB,MACzB,kBAAO,cAAqB,iBAAQ,aAAa,SAAS,GAAG,UAAQ,CAAC,CAAC;;AEnNlF,qBAAS;AACT;AACA;AA8BO,IAAM,cAAc,WAAsB,cAAc;AAGxD,IAAM,iBAAiB,CAAC,WAAuC;AAAA,EACpE,SAAS,MAAM,WAAW;AAAA,EAC1B,QAAQ,MAAM;AAChB;AAGO,IAAM,iBAAiB,CAAC,WAA6D;AAAA,EAC1F,SAAS,MAAM,WAAW;AAC5B;AAEA,IAAM,aAAW,YAAuC;AAAA,EACtD,YAAY,CAAC,MAAM,UAAU;AAAA,IAC3B,MAAM,MAAM;AAAA,IACZ,OAAO;AAAA,MACL,SAAS,OAAO,IAAI,YAAY,WAAW,IAAI,UAAU;AAAA,MACzD,SAAS,MAAM,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,SAAS;AAAA,MAC3D,QAAQ,MAAM;AAAA,IAChB;AAAA;AAAA,EAEF,YAAY,MAAM;AAAA,EAClB,YAAY;AAAA,EAEZ,UAAU,EAAE,QAAQ,mBAAmB,QAAQ,0BAA0B;AAAA,EACzE,SAAS,CAAC,aAAY,UAAU,YAAW,aAAa,MAAM,WAAW;AAAA,EACzE,MAAM,CAAC,UAAU,SAAS,MAAM;AAAA,EAChC,YAAY;AACd,CAAC;AAEM,IAAM,sBAAsB,MACxB,kBAAO,aAAoB,iBAAQ,YAAY,SAAS,GAAG,UAAQ,CAAC,CAAC;;ACxDzE,IAAM,uBAA0C,OAAO,OAAO;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAsDM,IAAM,qBAA6C,OAAO,OAAO;AAAA,EACtE,SACE;AAAA,EACF,WAAW;AAAA,EACX,eAAe;AAAA,EACf,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AACR,CAAC;AAyBD,IAAM,KAAK;AACX,IAAM,SAAS;AACf,IAAM,UAAU;AAEhB,IAAM,YAAW,CACf,QACA,UACA,UACa;AAAA,EACb,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,CAAC,GAAG,KAAK,OAAM,IAAI;AAAA,IAAG,MAAM,KAAK,UAAU,OAAM,6BAA6B;AAAA,EAClF,IAAI,CAAC,GAAG,KAAK,OAAM,SAAS;AAAA,IAAG,MAAM,KAAK,eAAe,OAAM,+BAA+B;AAAA,EAC9F,IAAI,CAAC,GAAG,KAAK,OAAM,QAAQ;AAAA,IAAG,MAAM,KAAK,cAAc,OAAM,iCAAiC;AAAA,EAC9F,YAAY,QAAO,WAAW;AAAA,IAC5B,CAAC,iBAAiB,OAAM,aAAa;AAAA,IACrC,CAAC,YAAY,OAAM,QAAQ;AAAA,EAC7B,GAAY;AAAA,IACV,IAAI,WAAW,QAAQ,CAAC,OAAO,KAAK,MAAM,GAAG;AAAA,MAC3C,MAAM,KAAK,GAAG,YAAW,wDAAwD;AAAA,IACnF;AAAA,EACF;AAAA,EACA,IAAI,OAAM,aAAa,OAAM;AAAA,IAAe,MAAM,KAAK,yCAAyC;AAAA,EAMhG,MAAM,SAAS,CAAC,UAA8B,WAC5C,aAAa,YAAY,YAAY;AAAA,EACvC,MAAM,UAAyC;AAAA,IAC7C,CAAC,OAAO,MAAM,cAAc,cAAc,GAAG,SAAS,KAAK;AAAA,IAC3D,CAAC,OAAO,MAAM,kBAAkB,kBAAkB,GAAG,SAAS,SAAS;AAAA,EACzE;AAAA,EACA,IAAI,OAAM,aAAa,MAAM;AAAA,IAC3B,QAAQ,KAAK,CAAC,OAAO,MAAM,aAAa,aAAa,GAAG,SAAS,IAAI,CAAC;AAAA,EACxE;AAAA,EACA,MAAM,OAAO,IAAI;AAAA,EACjB,YAAY,QAAO,aAAY,SAAS;AAAA,IACtC,IAAI,QAAQ,KAAK,QAAO,KAAK,KAAK,IAAI,MAAK;AAAA,MAAG;AAAA,IAC9C,KAAK,IAAI,MAAK;AAAA,IACd,MAAM,KAAK,GAAG,uDAAsD;AAAA,EACtE;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,oBAAoB,CAAC,SAAwB,CAAC,MAAyB;AAAA,EAGlF,QAAQ,cAAc,kBAAkB,gBAAgB,SAAS;AAAA,EAEjE,MAAM,QAAQ,OAAO,QAAQ,IAAI,EAAE,OAAO,IAAI,WAAW,UAAU,SAAS;AAAA,EAC5E,MAAM,WAAmC;AAAA,OACpC;AAAA,OACA,OAAO,YAAY,KAAK;AAAA,EAC7B;AAAA,EAGA,MAAM,WAA8B;AAAA,IAClC,OAAO,gBAAgB,SAAS;AAAA,IAChC,WAAW,oBAAoB,SAAS;AAAA,IACxC,MAAM,eAAe,SAAS;AAAA,EAChC;AAAA,EACA,MAAM,QAAQ,UAAS,UAAU,UAAU,MAAK;AAAA,EAChD,IAAI,MAAM,SAAS;AAAA,IAAG,MAAM,IAAI,MAAM,uBAAuB,MAAM,KAAK,IAAI,GAAG;AAAA,EAC/E,MAAM,QAA2C;AAAA,IAC/C,CAAC,aAAa,SAAS,eAAe,SAAS,IAAI;AAAA,EACrD;AAAA,EACA,IAAI,SAAS,aAAa;AAAA,IAAM,MAAM,KAAK,CAAC,QAAQ,SAAS,UAAU,SAAS,QAAQ,CAAC;AAAA,EACzF,OAAO;AAAA,IACL,QAAQ,MAAM,IAAI,EAAE,MAAM,QAAQ,aAAa,EAAE,MAAM,QAAQ,OAAO,EAAE;AAAA,IACxE,OAAO,EAAE,SAAS,SAAS,OAAO,SAAS,SAAS,UAAU;AAAA,IAC9D,MAAM,EAAE,OAAO,sBAAsB,QAAQ,SAAS,KAAK;AAAA,IAC3D,OAAO,MAAM,IAAI,EAAE,MAAM,aAAa;AAAA,MACpC,SAAS,SAAS;AAAA,MAClB,QAAQ,CAAC,SAAS,SAAS;AAAA,MAC3B;AAAA,MACA;AAAA,IACF,EAAE;AAAA,EACJ;AAAA;;AC3LF,IAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBf,IAAM,WAAW,CAAC,UAAiB,KAAK;AAGxC,IAAM,aACJ,qEACA,iGACA,sEACA,mFACA;AAEF,IAAM,WAAW,GAAG,WAAsC;AAAA,EACxD,MAAM,QAAQ,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG;AAAA,EAC7C,OAAO;AAAA,SACA,KAAK;AAAA,QACN;AAAA,8BACsB,KAAK;AAAA,8CACW,KAAK;AAAA,oBAC/B,KAAK,+DAA+D,KAAK;AAAA;AAAA,eAE9E,KAAK,mCAAmC,KAAK;AAAA;AAAA;AAAA;AAK5D,IAAM,YAAY,GAAG,YAAuC;AAAA,UAClD,MAAM;AAAA,+BACe,MAAM;AAAA,oBACjB,MAAM,gCAAgC,MAAM;AAAA,qBAC3C,MAAM,qDAAqD,MAAM,sBAAsB,MAAM;AAAA;AAAA,gBAElG,MAAM,qCAAqC,MAAM,sBAAsB,MAAM;AAAA;AAAA;AAI7F,IAAM,WAAW,CAAC,SAAqD;AAAA,EACrE,MAAM,SAAS,CAAC,GAAG,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG;AAAA,EAC/C,MAAM,OAAO,UAAU,gEAAgE,KAAK;AAAA,EAC5F,MAAM,SAAS,YAAY,qBAAqB,KAAK;AAAA,EACrD,OAAO;AAAA,SACA,KAAK,eAAe,KAAK,kBAAkB;AAAA,8BACtB,KAAK,WAAW;AAAA,oBAC1B,4BAA4B,KAAK;AAAA,oBACjC,KAAK;AAAA,wBACD,KAAK,UAAU;AAAA;AAAA,eAExB,KAAK,mCAAmC,KAAK,UAAU;AAAA;AAAA;AAAA;AAKtE,IAAM,YAAY,CAAC,UAAuD;AAAA,EACxE,MAAM,QACJ,sEACA,iBAAiB,SAAS,MAAM,MAAM,wBAAwB,SAAS,MAAM,MAAM,UACnF;AAAA,EACF,OAAO;AAAA,WACE,MAAM,gBAAgB,MAAM,gCAAgC,MAAM;AAAA,2BAClD,oCAAoC,MAAM,UAAU,MAAM;AAAA,mBAClE,MAAM,UAAU,MAAM,iDAAiD,MAAM,kBAAkB,MAAM;AAAA;AAAA;AAKxH,IAAM,cAAc,CAAC,WAA2B;AAAA,oBAC5B,0DAA0D;AAAA;AAOvE,IAAM,qBAAqB,CAAC,SAAwB,CAAC,MAAc;AAAA,EACxE,MAAM,WAAW,kBAAkB,MAAK;AAAA,EACxC,MAAM,WAAW,SAAS,OACvB,IAAI,CAAC,UAAU,MAAM,MAAM,EAC3B,OAAO,CAAC,WAAW,WAAW,SAAS,KAAK,MAAM;AAAA,EACrD,OAAO;AAAA,IACL;AAAA,IACA,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,EAAE,IAAI,WAAW;AAAA,IACzC,SAAS,QAAQ;AAAA,IACjB,UAAU,QAAQ;AAAA,IAClB,GAAG,SAAS,MAAM,IAAI,QAAQ;AAAA,IAC9B,GAAG,SAAS,OAAO,IAAI,SAAS;AAAA,IAChC;AAAA;AAAA;AAAA,EACF,EAAE,KAAK,EAAE;AAAA;;ACxGX;AACA;AACA;;;ACkBA,qBAAS;AACT,uBAAS;AACT;AACA;AACA;;;AC7CO,IAAM,cAAc;AACpB,IAAM,cAAc;AAUpB,IAAM,aAAY,CAAC,UACxB,CAAC,GAAG,IAAI,IAAI,MAAM,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK;AAEjF,IAAM,cAAa,CAAC,WAAsD;AAAA,EAC/E,OAAO,WAAU,MAAM,KAAK,EAAE,KAAK,GAAG;AAAA,EACtC,QAAQ,MAAM;AAChB;AAMO,IAAM,cAAa,CAAC,WAAmD;AAAA,EAC5E,OAAO,WAAU,MAAM,KAAK,EAAE,KAAK,GAAG;AAAA,EACtC,QAAQ,MAAM;AAChB;AAEO,IAAM,QAAO,CAAC,MAAyD,WAC5E,KAAK,KAAK,CAAC,QAAQ,IAAI,WAAW,MAAM;AAEnC,IAAM,gBAAe,CAC1B,KACA,WACoB;AAAA,EACpB,OAAO,WAAU,IAAI,UAAU,YAAY,CAAC,IAAI,IAAI,MAAM,MAAM,GAAG,CAAC;AAAA,EACpE,QAAQ,MAAM;AAChB;AAEO,IAAM,WAAU,CAAC,aAA4B,UAClD,WAAU,YAAW,KAAK,EAAE,KAAK,GAAG,MAAM,WAAU,MAAM,KAAK,EAAE,KAAK,GAAG;;;AD2DpE,IAAM,cAAc,WAAsB,cAAc;AAW/D,IAAM,WAAW,CAAC,UAChB,iBAAiB,OAAO,MAAM,QAAQ,QAAQ,OAAc,wBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,KACzE,aAAI,CAAC,SAAS;AAAA,EACnB,IAAI,SAAS;AAAA,IAAY,OAAO;AAAA,EAChC,MAAM,MAAM,MAAK,MAAM,MAAM,MAAM;AAAA,EACnC,OAAO,QAAQ,YAAY,YAAY,cAAa,KAAK,KAAK;AAAA,CAC/D,CACH;AAGF,IAAM,kBAAiB,CAAC,SACtB,SAAS,aAAa,YAAY;AAE7B,IAAM,sBAAsB,MACxB,kBACP,aACO,iBACL,YAAY,SAAS,GAAG;AAAA,EAKtB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAC7B,MAAa,YAAG,UAAU,GAAG,QAAQ;AAAA,IACnC,OAAO,gBAAe,OAAO,SAAS,IAAI,CAAC;AAAA,GAC5C;AAAA,EACD,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IACvB,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACrE,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,KAAK;AAAA,IACtD,IAAI,WAAW;AAAA,MAAW;AAAA,IAC1B,MAAM,OAAO,OAAO,SAAS,IAAI;AAAA,IAGjC,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,gBAAgB,KAAK,MAAM;AAAA,MACpD,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,IAAI;AAAA,MACrD,OAAO,EAAE,QAAQ,SAAS;AAAA,IAC5B;AAAA,IACA,OAAO,SAAQ,MAAM,IAAI,IACpB,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EACD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IAKxC,MAAM,SAAS,gBAAe,OAAO,SAAS,IAAI,CAAC;AAAA,IACnD,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACrE,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,KAAK;AAAA,IACtD,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,OACL,KAAK,QACL,aACA,MACO,yBAAiB,YAAW,IAAI,CAAC,CAC1C;AAAA,IACF,EAAO,SAAI,CAAC,SAAQ,QAAQ,IAAI,GAAG;AAAA,MACjC,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAa,sBAAc,YAAW,IAAI,CAAC,CAAC;AAAA,IACtF;AAAA,IACA,MAAM,QAAQ,gBAAe,OAAO,SAAS,IAAI,CAAC;AAAA,IAClD,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,OAAc,aACnB,IAAI,MACF,gBAAgB,KAAK,yDACnB,iFACA,+EACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAOD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,OACL,KAAK,QACL,aACA,MACO,yBAAiB,EAAE,QAAQ,KAAK,OAAO,CAAC,CACjD;AAAA,GACD;AACH,CAAC,CACH,CACF;;;AE5JF,qBAAS;AACT,uBAAS;AACT;AACA;AACA;;;ACrDA;AACA;AAMO,IAAM,cAAc;AACpB,IAAM,cAAc;AAU3B,IAAM,OAAM,CAAC,UAAmB;AAAA,EAC9B,MAAM,SAAS,OAAO,UAAU,WAAW,QAAQ,OAAO,SAAS,CAAC;AAAA,EACpE,OAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAAA;AAQ5C,IAAM,WAAW,CAAC,UAA6B;AAAA,EAC7C,MAAM,MAAiB,MAAM,QAAQ,KAAK,IACtC,QACA,OAAO,UAAU,WACf,MAAM,MAAM,GAAG,IACf,CAAC;AAAA,EACP,MAAM,SAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,UAAU,EAAE;AAAA,EACnF,OAAO,CAAC,GAAG,IAAI,IAAI,MAAK,CAAC,EAAE,KAAK;AAAA;AASlC,IAAM,aAAa,CAAC,UAClB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IAC/D,OAAO,KAAK,KAAK,EAAE,KAAK,IACxB,CAAC;AAGP,IAAM,SAAQ,CAAC,WAAsB;AAAA,EACnC,SAAS,MAAM,WAAW;AAAA,EAC1B,OAAO,MAAM,SAAS;AAAA,EACtB,QAAQ,MAAM,WAAW,QAAQ,MAAM;AAAA,EACvC,QAAQ,OAAO,MAAM,UAAU,CAAC;AAAA,EAChC,WAAW,MAAM,aAAa;AAAA,EAQ9B,QAAQ,SAAS,MAAM,MAAM,EAAE,KAAK,GAAG;AAAA,EACvC,UAAU,MAAM,YAAY;AAC9B;AAEO,IAAM,cAAa,CAAC,WAAsD;AAAA,KAC5E,OAAM,KAAK;AAAA,EACd,QAAQ,MAAM;AAChB;AAEO,IAAM,cAAa,CAAC,WAAmD;AAAA,KACzE,OAAM,KAAK;AAAA,EACd,QAAQ,MAAM;AAChB;AAEA,IAAM,gBAAe,CAAC,MAAoC,WAAsC;AAAA,EAC9F,SAAS,KAAK,KAAK,OAAO;AAAA,EAC1B,OAAO,KAAK,KAAK,KAAK;AAAA,EAMtB,QAAQ,KAAK,KAAK,QAAQ,IAAI;AAAA,EAC9B,QAAQ,KAAI,KAAK,MAAM;AAAA,EACvB,WAAW,KAAK,KAAK,SAAS;AAAA,EAC9B,QAAQ,SAAS,KAAK,MAAM;AAAA,EAC5B,UAAU,KAAK,KAAK,QAAQ;AAAA,EAC5B,QAAQ,WAAW,KAAK,MAAM;AAAA,EAE9B,QAAQ,MAAM;AAChB;AAMO,IAAM,WAAU,CAAC,aAA4B,UAClD,YAAW,aAAa,MAAM,WAAW,OACzC,YAAW,WAAW,MAAM,SAAS,OACrC,YAAW,YAAY,MAAM,WAAW,UACxC,YAAW,YAAY,MAAM,UAAU,MACvC,YAAW,eAAe,MAAM,aAAa,OAC7C,YAAW,cAAc,MAAM,YAAY,OAC3C,YAAW,OAAO,KAAK,GAAG,MAAM,SAAS,MAAM,MAAM,EAAE,KAAK,GAAG;AAe1D,IAAM,iBAAiB,CAAC,UAC7B,iBACE,OAAO,MAAM,QAAQ,QAAQ,OAAc,sBAAc,EAAE,QAAQ,MAAM,OAAO,CAAC,CAAC,CACpF,EAAE,KAAY,aAAI,CAAC,SAAU,SAAS,aAAa,aAAa,cAAa,MAAM,KAAK,CAAE,CAAC;AAatF,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,EAAE,KAAY,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CAAC;AAG3D,IAAM,kBAAiB,CAAC,SAC7B,SAAS,aAAa,YAAY;;;ADxB7B,IAAM,cAAc,WAAsB,cAAc;AAExD,IAAM,sBAAsB,MACxB,kBACP,aACO,iBACL,YAAY,SAAS,GAAG;AAAA,EAMtB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAY7B,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,OAAO,gBACL,OAAO,WAAW,YAAY,SAAS,IAAI,IAAI,eAAe,IAAI,CACpE;AAAA,GACD;AAAA,EACD,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IACvB,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACrE,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,KAAK;AAAA,IACtD,IAAI,WAAW;AAAA,MAAW;AAAA,IAI1B,MAAM,OAAO,OAAO,eAAe,IAAI;AAAA,IAGvC,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,gBAAgB,KAAK,MAAM;AAAA,MACpD,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,IAAI;AAAA,MACrD,OAAO,EAAE,QAAQ,SAAS;AAAA,IAC5B;AAAA,IACA,OAAO,SAAQ,MAAM,IAAI,IACpB,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EACD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IAKxC,MAAM,SAAS,gBAAe,OAAO,SAAS,IAAI,CAAC;AAAA,IACnD,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACrE,OAAO,YAAW,aAAa,YAAW,IAAI,GAAG,KAAK;AAAA,IACtD,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,OACL,KAAK,QACL,aACA,MACO,yBAAiB,YAAW,IAAI,CAAC,CAC1C;AAAA,IACF,EAAO,SAAI,CAAC,SAAQ,QAAQ,IAAI,GAAG;AAAA,MACjC,OAAO,OAAO,KAAK,QAAQ,aAAa,MAAa,sBAAc,YAAW,IAAI,CAAC,CAAC;AAAA,IACtF;AAAA,IACA,MAAM,QAAQ,gBAAe,OAAO,SAAS,IAAI,CAAC;AAAA,IAClD,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,OAAc,aACnB,IAAI,MACF,gBAAgB,KAAK,4DACnB,iFACA,+EACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAOD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,OACL,KAAK,QACL,aACA,MACO,yBAAiB,EAAE,QAAQ,KAAK,OAAO,CAAC,CACjD;AAAA,GACD;AACH,CAAC,CACH,CACF;;;AH3KK,IAAM,2BAA2B,CACtC,IACA,QACA,SAAwB,CAAC,GACzB,UAAmC,CAAC,MAE7B,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,WAAW,OAAc,aAAI;AAAA,IACjC,OAAO,CAAC,UAAW,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,IAC3E,KAAK,MAAM,kBAAkB,MAAK;AAAA,EACpC,CAAC;AAAA,EACD,MAAM,QAAQ,CAAO,aAAyC;AAAA,IAC5D,MAAM,OAAO,SAAS,KAAmB,qBAAO,CAAC;AAAA,IACjD,OAAO,QAAQ,UAAU,YAAY,OAAO,KAAK,KAAK,MAAM,QAAQ,KAAK,CAAC;AAAA;AAAA,EAE5E,MAAM,OAAO,OAAO,MAClB,YAAY,GAAG,WAAW;AAAA,IACxB,OAAO,CAAC,GAAG,SAAS,KAAK,KAAK;AAAA,IAC9B,QAAQ,SAAS,KAAK;AAAA,IACtB;AAAA,EACF,CAAC,CACH;AAAA,EACA,MAAM,QAAQ,OAAO,MAAM,aAAa,GAAG,iBAAiB,KAAK,SAAS,OAAO,OAAO,CAAC,CAAC;AAAA,EAG1F,MAAM,QAAQ,OAAc,aAC1B,SAAS,MAAM,IAAI,CAAC,SAClB,MACE,YAAY,GAAG,MAAM,KAAK,aAAa;AAAA,IACrC,SAAS,KAAK;AAAA,IACd,QAAQ,CAAC,GAAG,KAAK,MAAM;AAAA,IACvB;AAAA,IACA,QAAQ,KAAK;AAAA,EACf,CAAC,CACH,CACF,CACF;AAAA,EACA,MAAM,SAAS,OAAc,aAC3B,SAAS,OAAO,IAAI,CAAC,UACnB,MACE,WAAW,GAAG,MAAM,MAAM,cAAc;AAAA,IACtC,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ,MAAM;AAAA,IACd;AAAA,IACA,MAAM;AAAA,IACN,MAAM,MAAM;AAAA,EACd,CAAC,CACH,CACF,CACF;AAAA,EACA,OAAO,EAAE,UAAU,QAAQ,OAAO,MAAM,MAAM;AAAA,CAC/C;;AKtFH,qBAAS;AACT;AACA;AAoCO,IAAM,YAAY,WAAoB,YAAY;AAGlD,IAAM,cAAa,CAAC,WAAoB,KAAK,OAAM,KAAK,GAAG,MAAM,OAAO,MAAM,IAAI,EAAE;AAE3F,IAAM,SAAQ,CAAC,WAAoB;AAAA,EACjC,OAAO,OAAO,MAAM,SAAS,CAAC;AAAA,EAC9B,QAAQ,OAAO,MAAM,UAAU,GAAG;AAAA,EAClC,MAAM,MAAM,QAAQ,KAAK,OAAO,MAAM,IAAI;AAAA,EAC1C,QAAQ,MAAM,WAAW,OAAO,MAAM;AAAA,EACtC,SAAS,OAAO,MAAM,WAAW,CAAC;AAAA,KAC9B,MAAM,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,MAAM,KAAK;AACzD;AAEA,IAAM,aAAW,YAAmC;AAAA,EAClD,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,OAAO,IAAI,KAAK,UAAU,CAAC;AAAA,IAC3B,QAAQ,IAAI,KAAK,WAAW,GAAG;AAAA,IAC/B,MAAM,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU;AAAA,IACxD,MAAM,MAAM;AAAA,IACZ,QAAQ,KAAK,cAAc,KAAK,KAAK,cAAc;AAAA,IACnD,SAAS,IAAI,KAAK,YAAY,CAAC;AAAA,IAC/B,MAAM,MAAM;AAAA,EACd;AAAA,EACA,YAAY,CAAC,UAAU,SAAS,MAAM;AAAA,EACtC;AAAA,EAEA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS,CAAC,aAAY,UACpB,YAAW,UAAU,MAAM,QAAQ,KAAK,OAAO,MAAM,IAAI,QACzD,YAAW,YAAY,MAAM,UAAU,QACvC,YAAW,WAAW,MAAM,SAAS,MACrC,YAAW,aAAa,MAAM,WAAW,MACzC,YAAW,YAAY,MAAM,WAAW;AAAA,EAC1C,MAAM,CAAC,UAAU,SAAS,MAAM,aAAa,OAAO,MAAM,IAAI;AAAA,EAC9D,YAAY;AACd,CAAC;AAEM,IAAM,oBAAoB,MACtB,kBAAO,WAAkB,iBAAQ,UAAU,SAAS,GAAG,UAAQ,CAAC,CAAC;;ACX5E,qBAAS;AACT;AACA;;;AC/DO,IAAM,mBAAmB;AASzB,IAAM,QAAQ,CAAC,UACpB,GAAG,OAAO,MAAM,KAAK,KAAK,OAAO,MAAM,MAAM;AAe/C,IAAM,UAAQ,CAAC,WAAgC;AAAA,EAC7C,SAAS,MAAM,WAAW;AAAA,EAC1B,SAAS,MAAM,YAAY,OAAO,MAAM;AAAA,EACxC,UAAU,MAAM,YAAY;AAAA,KACxB,MAAM,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,OAAO,MAAM,IAAI,EAAE;AACjE;AAUO,IAAM,cAAa,CAAC,WAAgC;AAAA,KACtD,QAAM,KAAK;AAAA,EACd,IAAI,MAAM,KAAK;AAAA,EACf,QAAQ,MAAM;AAAA,EACd,MAAM;AACR;AAgBO,IAAM,cAAa,CAAC,WAAgC;AAAA,KACtD,QAAM,KAAK;AAAA,EACd,QAAQ;AACV;;;AD4EO,IAAM,wBAAwB,WAAgC,wBAAwB;AAY7F,IAAM,SAAS,CAAC,UAA2B;AAAA,EACzC,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,MAAM,SAAS,OAAO,WAAW,KAAK,KAAK,CAAC;AAAA,EAC5C,OAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAAA;AAG5C,IAAM,aAAW,YAA2D;AAAA,EAY1E,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,SAAS,KAAK,KAAK,YAAY,EAAE;AAAA,IACjC,SAAS,KAAK,KAAK,YAAY,KAAK;AAAA,IACpC,OAAO,IAAI,KAAK,UAAU,MAAM,KAAK;AAAA,IACrC,IAAI,KAAK,KAAK,OAAO,MAAM,KAAK,CAAC;AAAA,IACjC,QAAQ,IAAI,KAAK,WAAW,MAAM,MAAM;AAAA,IACxC,MAAM,OAAO,KAAK,OAAO;AAAA,IACzB,YAAY,KAAK,KAAK,eAAe,EAAE;AAAA,IACvC,UAAU,KAAK,KAAK,aAAa,gBAAgB;AAAA,IACjD,QAAQ,KAAK,KAAK,WAAW,EAAE;AAAA,IAC/B,YAAY,KAAK,KAAK,WAAW,MAAM,UAAU;AAAA,IACjD,MAAM,KAAK,KAAK,SAAS,OAAO;AAAA,EAClC;AAAA,EACA,YAAY,MAAM;AAAA,EAClB,YAAY;AAAA,EAmBZ,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,SAAS,CAAC,aAAY,UACpB,YAAW,eAAe,MAC1B,YAAW,cAAc,MAAM,YAAY,qBAC3C,YAAW,aAAa,MAAM,YAAY,SAC1C,YAAW,aAAa,MAAM,WAAW,QACxC,MAAM,SAAS,aAAa,YAAW,SAAS,MAAM;AAAA,EACzD,MAAM,CAAC,UAAU,uBAAuB,MAAM,KAAK;AAAA,EACnD,YAAY;AACd,CAAC;AAUM,IAAM,gCAAgC,MAClC,kBACP,uBACO,iBAAQ,sBAAsB,SAAS,GAAG,UAAQ,CAAC,CAC5D;;AE7NF,qBAAS;AACT,uBAAS;AAET;AACA;;;ACHA;AAkBA,IAAM,SAAS;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA2BO,IAAM,kBAAkB,CAAC,UAC9B,iBAAiB,YAAY,MAAM,WAAW;AAGhD,IAAM,gBAAgB,CAAC,WACd,aACL,OAAO,IAAI,CAAC,gBACV,IAAkB,QAAQ,QAAQ,OAAO,GAAG,uBAAsB,EAAE,KAC3D,aAAI,CAAC,UAAU,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,UAAU,SAAS,EAAE,MAAM,GAQ1E,iBAAQ,iBAAiB,MAAa,iBAAQ,CAAC,CAAC,CACzD,CACF,GACA,EAAE,aAAa,YAAY,CAC7B,EAAE,KAAY,aAAI,CAAC,WAAW,OAAO,OAAO,CAAC,OAAO,WAAU,QAAQ,QAAO,CAAC,CAAC,CAAC;AAU3E,IAAM,eAAe,CAC1B,QACA,YAC4B;AAAA,EAC5B,IAAI,WAAW,aAAa,YAAY;AAAA,IAAW,OAAO;AAAA,EAC1D,IAAI,WAAW,aAAa,YAAY;AAAA,IAAW,OAAO;AAAA,EAC1D,OAAO,WAAW,UAAU,IAAI;AAAA;AAiBlC,IAAM,gBAAgB,CAAC,WACd,aACL,CAAC,WAAW,SAAS,EAAE,IAAI,CAAC,SAC1B,IAAa,QAAQ,QAAQ,OAAO,2BAA2B,QAAQ,EAAE,KAChE,aAAI,UAAS,GACb,iBAAQ,iBAAiB,MAAa,iBAAQ,SAAS,CAAC,CACjE,CACF,GACA,EAAE,aAAa,YAAY,CAC7B,EAAE,KACO,iBAAQ,EAAE,QAAQ,aAAa;AAAA,EACpC,MAAM,UAAU,aAAa,QAAQ,OAAO;AAAA,EAC5C,OAAO,YAAY,iBACR,aACL,IAAI,MACF,uFACE,6DACJ,CACF,IACO,iBAAQ,OAAO;AAAA,CAC3B,CACH;AAGK,IAAM,aAAY,CAAC,UAA2B,KAAK,UAAU,SAAS,KAAK,CAAC;AAEnF,IAAM,WAAW,CAAC,UAA4B;AAAA,EAC5C,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAO,MACJ,IAAI,QAAQ,EACZ,KAAK,CAAC,MAAM,UAAU,KAAK,UAAU,IAAI,EAAE,cAAc,KAAK,UAAU,KAAK,CAAC,CAAC;AAAA,EACpF;AAAA,EACA,IAAI,UAAU,QAAQ,OAAO,UAAU,UAAU;AAAA,IAC/C,MAAM,UAAU,OAAO,QAAQ,KAAgC,EAC5D,OAAO,EAAE,SAAS,QAAQ,QAAQ,EAClC,KAAK,EAAE,QAAQ,WAAW,KAAK,cAAc,KAAK,CAAC;AAAA,IACtD,OAAO,OAAO,YAAY,QAAQ,IAAI,EAAE,KAAK,WAAW,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,CAAC;AAAA,EACjF;AAAA,EACA,OAAO;AAAA;AAUF,IAAM,kBAAkB,CAAC,WACvB,aAAI,CAAC,cAAc,MAAM,GAAG,cAAc,MAAM,CAAC,GAAG,EAAE,aAAa,YAAY,CAAC,EAAE,KAChF,aAAI,EAAE,QAAQ,YAAY,SAAS,MAAM,CAClD;;;ADjHK,IAAM,kBAAkB,WAA0B,kBAAkB;AAE3E,IAAM,QAAO,CAAC,UACZ,gBAAgB,MAAM,MAAM,EAAE,KAAY,aAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;AAEpE,IAAM,0BAA0B,MAC5B,kBACP,iBACO,iBACL,gBAAgB,SAAS,GAAG;AAAA,EAE1B,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAE7B,MAAa,YAAG,UAAU,GAAG,QAAQ;AAAA,IACnC,OAAO,OAAO,MAAK,IAAI;AAAA,GACxB;AAAA,EAQD,MAAa,YAAG,UAAU,GAAG,QAAwC;AAAA,IACnE,IAAI,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IACvB,QAAQ,YAAY,OAAO,MAAK,IAAI;AAAA,IACpC,OAAO,YAAY,IAAK,EAAE,QAAQ,OAAO,IAAe,EAAE,QAAQ,SAAS;AAAA,GAC5E;AAAA,EAED,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IAiBxC,MAAM,SAAS,OAAO,MAAK,IAAI;AAAA,IAC/B,IAAI,OAAO,YAAY;AAAA,MAAG,OAAO;AAAA,IAIjC,OAAO;AAAA,IACP,OAAO,IAAI,KAAK,QAAQ,aAAa,OAAO,aAAa;AAAA,IAOzD,MAAM,QAAQ,OAAO,MAAK,IAAI;AAAA,IAC9B,IAAI,MAAM,YAAY,GAAG;AAAA,MACvB,OAAO,OAAc,aACnB,IAAI,MACF,0CAA0C,OAAO,MAAM,OAAO,qBAC5D,mFACA,yEACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EASD,QAAQ,MAAa;AACvB,CAAC,CACH,CACF;;AE/FF,qBAAS;AACT;AACA;;;ACjCO,IAAM,WAAW,CAAC,UACvB,GAAG,MAAM,QAAQ,MAAM,KAAK,QAAQ,KAAK,GAAG;AAG9C,IAAM,cAAc,CAAC,UAAqB,iBAAiB,MAAM,qBAAqB,MAAM;AAoBrF,IAAM,aAAa,CAAC,WACxB,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,GAC9B,IAAI,CAAC,UAAmB,eAAe,KAAK,CAAC,EAC7C,OAAO,CAAC,UAAU,UAAU,EAAE,EAC9B,KAAK,EACL,KAAK,GAAG;AAGN,IAAM,iBAAiB,CAAC,UAC7B,UAAU,YAAY,KAAK,WAAW,CAAC,YAAY,KAAK,CAAC,CAAC;AAO5D,IAAM,QAAQ,CAAC,UACb,UAAU,aAAa,UAAU,KAAK,YAAY;AA0B7C,IAAM,YAAW,CAAC,WAA+D;AAAA,EACtF,mBAAmB,MAAM,MAAM,aAAa;AAAA,EAC5C,cAAc,MAAM,cAAc,YAAY,YAAY,YAAY,MAAM,SAAS;AAAA,EACrF,eAAe,MAAM,MAAM,aAAa;AAAA,EACxC,SAAS,MAAM,MAAM,OAAO;AAC9B;AAUO,IAAM,QAAO,CAAC,WAAmD;AAAA,EACtE,MAAM,MAAM,SAAS,OAAO,MAAM;AAAA,EAClC,MAAM,MAAM;AAAA,KACT,OAAO,YACR,OAAO,QAAQ,UAAS,KAAK,CAAC,EAAE,OAC9B,CAAC,UAAqC,MAAM,OAAO,SACrD,CACF;AACF;AAOO,IAAM,cAAa,CAAC,WAAmD;AAAA,KACzE,MAAK,KAAK;AAAA,EACb,QAAQ,MAAM;AAAA,EACd,MAAM;AACR;AAkBO,IAAM,cAAa,CAAC,UAAkD;AAAA,EAC3E,MAAM,QAAQ,OAAO,QAAQ,UAAS,KAAK,CAAC,EACzC,OAAO,IAAI,WAAW,UAAU,SAAS,EACzC,IAAI,EAAE,SAAS,GAAG;AAAA,EACrB,OAAO,WAAW,MAAK,KAAK,GAAG,KAAK;AAAA;;;ADY/B,IAAM,mBAAmB,WAA2B,mBAAmB;AAE9E,IAAM,aAAW,YAAiD;AAAA,EAChE,YAAY,CAAC,MAAM,UAAU;AAAA,IAS3B,MAAM,WAAW,KAAK,KAAK,OAAO;AAAA,IAClC,IAAI,aAAa,MAAM,aAAa,MAAM;AAAA,MAAM;AAAA,IAChD,OAAO;AAAA,MACL,MAAM,KAAK,KAAK,OAAO;AAAA,MACvB,eAAe,KAAK,KAAK,kBAAkB;AAAA,MAC3C,WAAW,WAAW,KAAK,aAAa;AAAA,MACxC,eAAe,KAAK,KAAK,gBAAgB;AAAA,MACzC,SAAS,KAAK,KAAK,UAAU;AAAA,MAC7B,MAAM,IAAI,KAAK,SAAS,CAAC;AAAA,MACzB,MAAM,KAAK,KAAK,OAAO;AAAA,MACvB,QAAQ;AAAA,MACR,UAAU,SAAS,KAAK;AAAA,MACxB,MAAM,MAAM;AAAA,MACZ,MAAM,KAAK,KAAK,OAAO;AAAA,IACzB;AAAA;AAAA,EAEF,YAAY,CAAC,UAAU,qBAAqB,MAAM;AAAA,EAClD;AAAA,EAEA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EAeA,SAAS,CAAC,aAAY,UACpB,YAAW,aAAa,MAAM,WAAW,OACzC,YAAW,UAAU,MAAM,SAAS,SACpC,YAAW,mBAAmB,MAAM,iBAAiB,OACrD,YAAW,mBAAmB,MAAM,iBAAiB,OACrD,YAAW,cAAc,eAAe,MAAM,SAAS;AAAA,EAOzD,MAAM,CAAC,UAAU,qBAAqB,MAAM,gBAAgB,SAAS,KAAK;AAAA,EAC1E;AACF,CAAC;AAYM,IAAM,2BAA2B,MAC7B,kBAAO,kBAAyB,iBAAQ,iBAAiB,SAAS,GAAG,UAAQ,CAAC,CAAC;;AEvM1F,qBAAS;AACT;AACA;AA6DO,IAAM,iBAAiB,WAAyB,iBAAiB;AAQxE,IAAM,QAAQ,CAAC,UAAoB,OAAO,UAAU,WAAW,QAAQ;AAUvE,IAAM,UAAQ,CAAC,UAAgD;AAAA,EAC7D,MAAM,QAAQ,MAAM,SAAS;AAAA,EAC7B,OAAO;AAAA,IAIL,iBAAiB,MAAM,iBAAiB,OAAO,MAAM;AAAA,IACrD,WAAW,MAAM,cAAc,OAAO,MAAM;AAAA,IAC5C,MAAM,MAAM;AAAA,OAIR,UAAU,KAAK,CAAC,IAAI,EAAE,MAAM;AAAA,OAC5B,MAAM,QAAQ,YAAY,CAAC,IAAI,EAAE,KAAK,OAAO,MAAM,GAAG,EAAE;AAAA,EAC9D;AAAA;AAoBF,IAAM,cAAa,CAAC,UAAgD;AAAA,EAClE,MAAM,SAAQ;AAAA,IACZ,IAAK,MAAM,SAAS,QAAQ,KAAK,CAAC,OAAO,IAAI,CAAC;AAAA,IAC9C,GAAI,MAAM,QAAQ,YAAY,CAAC,KAAK,IAAI,CAAC;AAAA,EAC3C;AAAA,EACA,OAAO,WAAW,QAAM,KAAK,GAAG,MAAK;AAAA;AAGvC,IAAM,aAAW,YAA6C;AAAA,EAI5D,UAAU;AAAA,EACV,YAAY,CAAC,MAAM,WAAW;AAAA,IAC5B,OAAO,OAAO,KAAK,aAAa,WAAW,KAAK,WAAW;AAAA,IAC3D,QAAQ,MAAM;AAAA,IACd,cAAc,KAAK,KAAK,gBAAgB;AAAA,IACxC,KAAK,MAAM,KAAK,MAAM;AAAA,IACtB,WAAW,KAAK,KAAK,YAAY;AAAA,IACjC,MAAM,MAAM;AAAA,IAOZ,MAAM,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU;AAAA,EAC1D;AAAA,EACA,YAAY,MAAM;AAAA,EAClB,YAAY,CAAC,WAAW,KAAK,QAAM,KAAK,GAAG,MAAM,MAAM,KAAK;AAAA,EAS5D,UAAU,EAAE,QAAQ,+BAA+B,QAAQ,oCAAoC;AAAA,EAC/F,SAAS,CAAC,aAAY,UACpB,YAAW,SAAS,MAAM,QAC1B,YAAW,WAAW,MAAM,SAAS,OACrC,YAAW,QAAQ,MAAM,OACzB,YAAW,eAAe,MAAM,cAAc,SAC9C,YAAW,kBAAkB,MAAM,iBAAiB;AAAA,EAOtD,MAAM,CAAC,UAAU,qBAAqB,MAAM;AAAA,EAC5C;AACF,CAAC;AAgBM,IAAM,yBAAyB,MAC3B,kBAAO,gBAAuB,iBAAQ,eAAe,SAAS,GAAG,UAAQ,CAAC,CAAC;;ACrLtF,qBAAS;AACT;AACA;AAwEO,IAAM,iBAAiB,WAAyB,iBAAiB;AAQxE,IAAM,WAAW,CAAC,MAAc,eAC7B,SAAS,KAAK,QAAQ,WAAW,cAAa,aAAa,cAAa,KAAK,QAAQ;AASxF,IAAM,QAAO,CAAC,WAAiD;AAAA,KACzD,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,MAAM,OAAO;AAAA,KACzD,MAAM,QAAQ,YAAY,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI;AAAA,KAChD,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,KAC5D,MAAM,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,MAAM,KAAK;AAAA,KACnD,MAAM,QAAQ,YAAY,CAAC,IAAI,EAAE,KAAK,OAAO,MAAM,GAAG,EAAE;AAAA,KACxD,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,KAAK,EAAE;AAAA,KAC3D,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,KAAK,EAAE;AAAA,KAC3D,MAAM,QAAQ,YAAY,CAAC,IAAI,EAAE,KAAK,OAAO,MAAM,GAAG,EAAE;AAAA,KACxD,MAAM,iBAAiB,YAAY,CAAC,IAAI,EAAE,aAAa,OAAO,MAAM,YAAY,EAAE;AACxF;AAkBA,IAAM,YAAoD;AAAA,EACxD,MAAM,CAAC,OAAO,WAAW,OAAO,OAAO;AAAA,EACvC,MAAM,CAAC,OAAO,WAAW,QAAQ,OAAO,OAAO;AAAA,EAC/C,QAAQ,CAAC,OAAO,WAAW,QAAQ,OAAO,OAAO;AAAA,EACjD,MAAM,CAAC,OAAO,WAAW,QAAQ,OAAO,OAAO;AAAA,EAC/C,OAAO,CAAC,OAAO,WAAW,QAAQ,OAAO,OAAO;AAClD;AAEA,IAAM,aAAW,YAA6C;AAAA,EAI5D,UAAU;AAAA,EACV,YAAY,CAAC,MAAM,UAAU;AAAA,IAQ3B,MAAM,WAAW,KAAK,KAAK,OAAO;AAAA,IAClC,IAAI,aAAa,MAAM,aAAa,MAAM;AAAA,MAAM;AAAA,IAChD,OAAO;AAAA,MACL,QAAQ,KAAK,KAAK,SAAS;AAAA,MAC3B,KAAK,KAAK,KAAK,MAAM;AAAA,MACrB,SAAS,KAAK,KAAK,UAAU;AAAA,MAC7B,MAAM,KAAK,KAAK,OAAO,MAAM,KAAK,QAAQ,KAAK,KAAK,OAAO;AAAA,MAC3D,KAAK,IAAI,KAAK,QAAQ,CAAC;AAAA,MACvB,OAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAAA,MAC9B,OAAO,IAAI,KAAK,KAAK,QAAQ,CAAC;AAAA,MAC9B,QAAQ;AAAA,MACR,KAAK,IAAI,KAAK,QAAQ,CAAC;AAAA,MACvB,MAAM,MAAM;AAAA,MACZ,aAAa,IAAI,KAAK,cAAc,CAAC;AAAA,MACrC,MAAM,MAAM;AAAA,IACd;AAAA;AAAA,EAEF,YAAY,MAAM;AAAA,EAClB,YAAY,CAAC,WAAW,KAAK,MAAK,KAAK,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK;AAAA,EAO7E,UAAU,EAAE,QAAQ,+BAA+B,QAAQ,oCAAoC;AAAA,EAC/F,SAAS,CAAC,aAAY,UACpB,YAAW,SAAS,MAAM,OAAO,MACjC,YAAW,UAAU,IAAI,MAAM,KAAK,KACpC,SAAS,YAAW,MAAM,MAAM,IAAI,KACpC,YAAW,SAAS,MAAM,OAAO,OACjC,YAAW,aAAa,MAAM,WAAW,OACzC,YAAW,UAAU,IAAI,MAAM,KAAK,KACpC,YAAW,kBAAkB,MAAM,gBAAgB,MACnD,YAAW,SAAS,MAAM,OAAO,MACjC,YAAW,YAAY,MAAM,UAAU;AAAA,EACzC,MAAM,CAAC,UAAU,qBAAqB,MAAM;AAAA,EAC5C,YAAY,CAAC,UAAU;AAAA,IACrB,MAAM,SAAS,MAAK,KAAK;AAAA,IACzB,MAAM,QAAQ,UAAU,MAAM,MAAM,OAAO,CAAC,WAAW,OAAO,YAAY,SAAS;AAAA,IACnF,OAAO,WAAW,QAAQ,KAAK;AAAA;AAEnC,CAAC;AAgBM,IAAM,yBAAyB,MAC3B,kBAAO,gBAAuB,iBAAQ,eAAe,SAAS,GAAG,UAAQ,CAAC,CAAC;;AChLtF,qBAAS;AACT,uBAAS;AACT;AACA;AACA;;;AClEO,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AAsB9B,IAAM,SAAQ,CAAC,MAAc,UAC3B,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,MAAM;AAQ7C,IAAM,cAAc,CAAC,aAClB,KAAK,QAAQ;AAgChB,IAAM,cAAc,CAAC,SACnB,OAAO,YAAY,OAAO,QAAQ,IAAI,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,WAAW,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC;AAqBlG,IAAM,WAAU,CAAC,WAAyB;AAAA,KACrC,OAAM,WAAW,MAAM,OAAO;AAAA,KAC9B,OAAM,WAAW,MAAM,OAAO;AAAA,KAC9B,OAAM,WAAW,KAAK,MAAM,OAAO,CAAC;AAAA,KACpC,OAAM,SAAS,MAAM,KAAK;AAAA,KAC1B,OAAM,iBAAiB,MAAM,aAAa;AAAA,KAC1C,OAAM,iBAAiB,MAAM,gBAAgB;AAAA,KAC7C,OAAM,UAAU,KAAK,MAAM,MAAM,CAAC;AACvC;AASO,IAAM,eAAa,CAAC,WAAiD;AAAA,KACvE,YAAY,MAAM,OAAO;AAAA,KACzB,SAAQ,KAAK;AAAA,EAChB,SAAS,MAAM;AAAA,EACf,MAAM,MAAM;AACd;AAQO,IAAM,cAAa,CAAC,WAAiD;AAAA,KACvE,SAAQ,KAAK;AAAA,EAChB,SAAS,MAAM;AACjB;AASO,IAAM,oBAAoB,CAAC,UAChC,YAAY,aAAW,KAAK,CAAC;AAGxB,IAAM,oBAAoB,CAAC,UAChC,YAAY,YAAW,KAAK,CAAC;;;ACzI/B;AACA;AAmBA,IAAM,OAAM,CAAC,OAAgB,WAAW,OAAQ,OAAO,UAAU,WAAW,QAAQ;AASpF,IAAM,SAAS,CAAC,UACd,MACG,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,EACzB,OAAO,CAAC,SAAS,SAAS,EAAE,EAC5B,KAAK,EACL,KAAK,GAAG;AAEN,IAAM,YAAW,CAAC,WAA8B,SACrD,cAAa,aAAa,OAAO,SAAQ,MAAM,OAAO,IAAI;AAErD,IAAM,QAAO,CAAI,WAAyB,SAC/C,cAAa,aAAa,cAAa;AASzC,IAAM,gBAAe,CAAC,MAAe,UAA2C;AAAA,EAC9E,MAAM,OAAO;AAAA,EACb,OAAO;AAAA,IACL,SAAS,KAAI,KAAK,UAAU;AAAA,IAC5B,SAAS,KAAI,KAAK,UAAU;AAAA,IAC5B,SAAS,KAAK,KAAK,UAAU;AAAA,IAC7B,OAAO,KAAI,KAAK,QAAQ;AAAA,IACxB,eAAe,KAAI,KAAK,gBAAgB;AAAA,IACxC,iBAAiB,KAAI,KAAK,gBAAgB;AAAA,IAC1C,QAAQ,KAAK,KAAK,SAAS;AAAA,IAC3B,SAAS,MAAM;AAAA,IACf,MAAM,KAAI,KAAK,SAAS,MAAM,IAAI;AAAA,EACpC;AAAA;AAqBK,IAAM,oBAAoB,CAAC,UAChC,iBACE,OAAO,MAAM,QAAQ,aAAa,OAAe,mBAAW,EAAE,SAAS,MAAM,QAAQ,CAAC,CAAC,CACzF,EAAE,KAAY,aAAI,CAAC,SAAU,SAAS,aAAa,aAAa,cAAa,MAAM,KAAK,CAAE,CAAC;AAatF,IAAM,cAAc,CAAC,UAC1B,kBAAkB,KAAK,EAAE,KAAY,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CAAC;AAG9D,IAAM,kBAAiB,CAAC,SAC7B,SAAS,aAAa,YAAY;AAM7B,IAAM,WAAU,CAAC,aAA+B,UACrD,UAAS,MAAM,SAAS,YAAW,OAAO,KAC1C,UAAS,MAAM,OAAO,YAAW,KAAK,KACtC,UAAS,MAAM,kBAAkB,YAAW,gBAAgB,KAC5D,MAAK,MAAM,SAAS,YAAW,OAAO,KACtC,MAAK,MAAM,QAAQ,YAAW,MAAM,KACpC,MAAK,MAAM,eAAe,YAAW,aAAa,KAClD,MAAK,MAAM,SAAS,YAAW,OAAO;;;AFcjC,IAAM,iBAAiB,WAAyB,mBAAmB;AAAA,EACxE,sBAAsB;AACxB,CAAC;AAEM,IAAM,yBAAyB,MAC3B,kBACP,gBACO,iBACL,eAAe,SAAS,GAAG;AAAA,EAOzB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAQ7B,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,OAAO,gBACL,OAAO,WAAW,YAAY,YAAY,IAAI,IAAI,kBAAkB,IAAI,CAC1E;AAAA,GACD;AAAA,EACD,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IACvB,OAAO,YAAW,gBAAgB,aAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACxE,OAAO,YAAW,gBAAgB,YAAW,IAAI,GAAG,KAAK;AAAA,IACzD,IAAI,WAAW;AAAA,MAAW;AAAA,IAI1B,MAAM,OAAO,OAAO,kBAAkB,IAAI;AAAA,IAG1C,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,mBAAmB,KAAK,OAAO;AAAA,MACxD,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IACA,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,YAAW,gBAAgB,aAAW,IAAI,GAAG,IAAI;AAAA,MACxD,OAAO,EAAE,QAAQ,SAAS;AAAA,IAC5B;AAAA,IACA,OAAO,SAAQ,MAAM,IAAI,IACpB,EAAE,QAAQ,OAAO,IACjB,EAAE,QAAQ,SAAS;AAAA,GACzB;AAAA,EACD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IAIxC,MAAM,SAAS,gBAAe,OAAO,YAAY,IAAI,CAAC;AAAA,IACtD,OAAO,YAAW,gBAAgB,aAAW,IAAI,GAAG,WAAW,SAAS;AAAA,IACxE,OAAO,YAAW,gBAAgB,YAAW,IAAI,GAAG,KAAK;AAAA,IACzD,IAAI,WAAW,WAAW;AAAA,MACxB,OAAO,OACL,KAAK,QACL,aACA,MACQ,uBAAc,kBAAkB,IAAI,CAAC,CAC/C;AAAA,IACF,EAAO,SAAI,CAAC,SAAQ,QAAQ,IAAI,GAAG;AAAA,MACjC,OAAO,OACL,KAAK,QACL,aACA,MACQ,oBAAW,kBAAkB,IAAI,CAAC,CAC5C;AAAA,IACF;AAAA,IACA,MAAM,QAAQ,gBAAe,OAAO,YAAY,IAAI,CAAC;AAAA,IACrD,IAAI,UAAU,WAAW;AAAA,MACvB,OAAO,OAAc,aACnB,IAAI,MACF,WAAW,KAAK,mEACd,gFACA,0EACJ,CACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,GACR;AAAA,EAMD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,OACL,KAAK,QACL,aACA,MACQ,uBAAc,EAAE,SAAS,KAAK,QAAQ,CAAC,CACjD;AAAA,GACD;AACH,CAAC,CACH,CACF;;AGpKF,qBAAS;AACT,uBAAS;AACT;AACA;;;ACvEA;AACA;AAsCO,IAAM,cAAc,CAAC,aAC1B,MAAM,QAAQ,QAAQ,IAClB,SAAS,QAAQ,CAAC,UAAmB;AAAA,EACnC,MAAM,OAAO;AAAA,EACb,MAAM,SAAS,YAAY,KAAK,QAAQ;AAAA,EACxC,OAAO,OAAO,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,SAAS,EAAE;AAAA,CACnF,IACD,CAAC;AAQP,IAAM,gBAAe,CACnB,MACA,WACuB;AAAA,EACvB,SAAS,YAAY,KAAK,QAAQ,EAAE,KAAK,GAAG;AAAA,EAC5C,QAAQ,KAAK,KAAK,QAAQ,SAAS;AAAA,EACnC,MAAM,MAAM;AAAA,EACZ,MAAM,MAAM;AAAA,EACZ,OAAO,KAAK,KAAK,OAAO,SAAS;AACnC;AAoBO,IAAM,iBAAiB,CAAC,UAC7B,iBACE,OACE,MAAM,QACN,QACA,OACM,qBAAe,EAAE,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,CAC7D,CACF,EAAE,KACO,aAAI,CAAC,SAAS;AAAA,EACnB,IAAI,SAAS;AAAA,IAAY,OAAO;AAAA,EAGhC,OAAO,KAAK,KAAK,IAAI,MAAM,KAAK,YAAY,cAAa,MAAM,KAAK;AAAA,CACrE,CACH;AAaK,IAAM,WAAW,CAAC,UACvB,eAAe,KAAK,EAAE,KAAY,uBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CAAC;AAG3D,IAAM,kBAAiB,CAAC,SAC7B,SAAS,aAAa,YAAY;;;AC9GpC;AACA;AAQO,IAAM,kBAAkB;AA6BxB,IAAM,wBAAwB,CAAC,UACpC,MAAM,YAAY,aAAa,MAAM,cAAc,YAAY,YAAY;AAmBtE,IAAM,eAAa,CAAC,WAAiD;AAAA,KACtE,MAAM,YAAY,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ,KAAK,GAAG,EAAE;AAAA,EAC1E,MAAM,MAAM;AAAA,KACR,MAAM,cAAc,YAAY,CAAC,IAAI,EAAE,WAAW,MAAM,UAAU;AAAA,KAClE,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,QAAQ,OAAO,MAAM,MAAM,EAAE;AAAA,KACjE,MAAM,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,MAAM,YAAY;AAAA,KACxE,MAAM,oBAAoB,YAAY,CAAC,IAAI,EAAE,gBAAgB,MAAM,gBAAgB;AACzF;AAcA,IAAM,qBAAoB,CAAC,UAAwD;AAAA,EACjF,MAAM,OAAO,aAAW,KAAK;AAAA,EAC7B,OAAO;AAAA,OACF;AAAA,IACH,cAAc,KAAK;AAAA,IACnB,MAAM,MAAM;AAAA,EACd;AAAA;AAIF,IAAM,kBAAkB;AAkDjB,IAAM,aAAa,CACxB,OACA,UAEO,aAAI,UAAU,GAAG;AAAA,EACtB,MAAM,WAAW,OAAO,MAAK,KAAK;AAAA,EAClC,IAAI,aAAa;AAAA,IAAW,OAAO;AAAA,EAEnC,IAAI,MAAM,YAAY,aAAa,MAAM,cAAc,WAAW;AAAA,IAChE,OAAO,OAAc,aACnB,IAAI,MACF,GAAG,MAAM,QAAQ,MAAM,gEACrB,0FACA,yFACA,yDACJ,CACF;AAAA,EACF;AAAA,EAaA,OAAO,UAAU,sBAAsB,KAAK,GAAG,QAAO,aAAW,KAAK,CAAC,GAAG,IAAI;AAAA,EAE9E,MAAM,OAAO,OAAO,OAClB,MAAM,QACN,aACA,MACM,yBAAkB,mBAAkB,KAAK,CAAC,CAClD;AAAA,EAEA,MAAM,UAAS,CAAC,aACP,aAAI,UAAU,GAAG;AAAA,IACtB,MAAM,OAAO,OAAO,MAAK,KAAK;AAAA,IAC9B,IAAI,SAAS,aAAa,YAAY;AAAA,MAAG,OAAO;AAAA,IAChD,OAAc,eAAM,WAAW;AAAA,IAC/B,OAAO,OAAO,QAAO,WAAW,CAAC;AAAA,GAClC;AAAA,EAEH,MAAM,QAAQ,OAAO,QAAO,eAAe;AAAA,EAC3C,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO,OAAc,aACnB,IAAI,MACF,SAAS,MAAM,kBAAkB,MAAM,uBAAuB,KAAK,MAAM,WAAW,OAClF,2FACA,2DAA2D,MAAM,8BACjE,2FACA,yFACA,0FACA,yFACA,0FACA,oCACJ,CACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA,CACR;AAeI,IAAM,cAAc,CAAC,UAC1B,OACE,MAAM,QACN,aACA,MACM,yBAAkB,EAAE,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CAAC,CAChE;;;AFvEK,IAAM,iBAAiB,WAAyB,mBAAmB;AAAA,EACxE,sBAAsB;AACxB,CAAC;AAEM,IAAM,yBAAyB,MAC3B,kBACP,gBACO,iBACL,eAAe,SAAS,GAAG;AAAA,EAGzB,MAAM,MAAa,iBAAQ,CAAC,CAAC;AAAA,EAM7B,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,OAAO,gBACL,OAAO,WAAW,YAAY,SAAS,IAAI,IAAI,eAAe,IAAI,CACpE;AAAA,GACD;AAAA,EACD,MAAa,YAAG,UAAU,GAAG,MAAM,UAAU;AAAA,IAC3C,IAAI,CAAC,aAAW,IAAI;AAAA,MAAG;AAAA,IAMvB,OAAO,UACL,sBAAsB,IAAI,GAC1B,QAAO,aAAW,IAAI,CAAC,GACvB,WAAW,SACb;AAAA,IACA,IAAI,WAAW;AAAA,MAAW;AAAA,IAI1B,MAAM,OAAO,OAAO,eAAe,IAAI;AAAA,IACvC,IAAI,SAAS,YAAY;AAAA,MACvB,OAAO,kBAAkB,mBAAmB,GAAG,KAAK,QAAQ,KAAK,MAAM;AAAA,MACvE,OAAO,EAAE,QAAQ,OAAO;AAAA,IAC1B;AAAA,IAOA,IAAI,SAAS,WAAW;AAAA,MACtB,OAAO,UAAU,sBAAsB,IAAI,GAAG,QAAO,aAAW,IAAI,CAAC,GAAG,IAAI;AAAA,MAC5E,OAAO,EAAE,QAAQ,SAAS;AAAA,IAC5B;AAAA,IAIA,OAAO,EAAE,QAAQ,OAAO;AAAA,GACzB;AAAA,EAUD,WAAkB,YAAG,UAAU,GAAG,QAAQ;AAAA,IACxC,OAAO,OAAO,WAAW,MAAM,CAAC,UAC9B,SAAS,KAAK,EAAE,KAAY,aAAI,eAAc,CAAC,CACjD;AAAA,GACD;AAAA,EACD,QAAe,YAAG,UAAU,GAAG,QAAQ;AAAA,IACrC,OAAO,YAAY,IAAI;AAAA,GACxB;AACH,CAAC,CACH,CACF;",
|
|
132
|
-
"debugId": "
|
|
132
|
+
"mappings": "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",
|
|
133
|
+
"debugId": "AF866CF2F0A2718F64756E2164756E21",
|
|
133
134
|
"names": []
|
|
134
135
|
}
|