@artblocks/abx-token-api 0.1.0-alpha.5 → 0.1.0-alpha.50

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.
Files changed (51) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/dist/code.d.ts +33 -12
  3. package/dist/code.d.ts.map +1 -1
  4. package/dist/code.js +68 -56
  5. package/dist/code.js.map +1 -1
  6. package/dist/{art.d.ts → content.d.ts} +5 -5
  7. package/dist/content.d.ts.map +1 -0
  8. package/dist/{art.js → content.js} +6 -6
  9. package/dist/content.js.map +1 -0
  10. package/dist/control-plane.d.ts +24 -13
  11. package/dist/control-plane.d.ts.map +1 -1
  12. package/dist/control-plane.js +289 -43
  13. package/dist/control-plane.js.map +1 -1
  14. package/dist/dashboard.d.ts.map +1 -1
  15. package/dist/dashboard.js +55 -8
  16. package/dist/dashboard.js.map +1 -1
  17. package/dist/deps.d.ts +28 -110
  18. package/dist/deps.d.ts.map +1 -1
  19. package/dist/deps.js +34 -184
  20. package/dist/deps.js.map +1 -1
  21. package/dist/index.d.ts +8 -8
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +13 -11
  24. package/dist/index.js.map +1 -1
  25. package/dist/metadata.d.ts +87 -4
  26. package/dist/metadata.d.ts.map +1 -1
  27. package/dist/metadata.js +343 -105
  28. package/dist/metadata.js.map +1 -1
  29. package/dist/resolve.d.ts +0 -2
  30. package/dist/resolve.d.ts.map +1 -1
  31. package/dist/resolve.js +0 -5
  32. package/dist/resolve.js.map +1 -1
  33. package/dist/server.d.ts +4 -1
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +257 -70
  36. package/dist/server.js.map +1 -1
  37. package/dist/watcher.d.ts +1 -1
  38. package/dist/watcher.d.ts.map +1 -1
  39. package/dist/watcher.js +137 -8
  40. package/dist/watcher.js.map +1 -1
  41. package/package.json +9 -8
  42. package/dist/abxjs.d.ts +0 -13
  43. package/dist/abxjs.d.ts.map +0 -1
  44. package/dist/abxjs.js +0 -49
  45. package/dist/abxjs.js.map +0 -1
  46. package/dist/art.d.ts.map +0 -1
  47. package/dist/art.js.map +0 -1
  48. package/dist/inline.d.ts +0 -19
  49. package/dist/inline.d.ts.map +0 -1
  50. package/dist/inline.js +0 -23
  51. package/dist/inline.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,20 +1,22 @@
1
1
  /**
2
2
  * @artblocks/abx-token-api — Layer 3 reference token API + byte-custody server.
3
3
  *
4
- * Serves standard ERC-721 / ERC-7572 metadata, the token image, a JSON state
5
- * API, and a demo dashboard — all from the reconstructed projection. The on-chain
6
- * URIs point here, so this node is the resolver; switching nodes is a repoint.
4
+ * Serves standard token metadata (ERC-721 tokenURI / ERC-1155 editions' uri), ERC-7572
5
+ * collection metadata, the token image, a JSON state API, and a demo dashboard — all from
6
+ * the reconstructed projection. The on-chain URIs point here, so this node is the resolver;
7
+ * switching nodes is a repoint.
7
8
  */
8
9
  export { createTokenApiServer, startTokenApiServer, resolveBaseUrl, resolveContent, verifyProject, DEFAULT_PORT, } from './server.js';
9
- export { buildTokenMetadata, buildContractMetadata, tokenImageUrl } from './metadata.js';
10
- export { currentRenderArtifact, injectTokenDataIntoHtml, liveViewEnabled } from './code.js';
11
- // The runtime companion + the inline-safety escapes. Exported because `abx preview` assembles the
12
- // SAME template-mode document this package serves — one definition of the runtime surface and the
13
- // document shape, so a local preview can never drift from what the generator actually emits.
14
- export { ABX_JS } from './abxjs.js';
15
- export { escapeInlineScript, escapeInlineJson } from './inline.js';
10
+ export { buildTokenMetadata, buildContractMetadata, tokenArtifacts, tokenImageUrl, } from './metadata.js';
11
+ export { currentRenderArtifact, liveViewEnabled } from './code.js';
12
+ // The generator-document family (the runtime companion, the inline-safety escapes, and the
13
+ // document-shape builders) lives in `@artblocks/abx-sdk`. It is a pure string-ops surface with no
14
+ // resolver-specific behavior; the SDK, the CLI's
15
+ // `abx preview`, and any third-party provider all consume the same one. Re-exported here
16
+ // unchanged: this package's public API is unaffected by where the implementation lives.
17
+ export { ABX_JS, buildGeneratorDocument, escapeInlineJson, escapeInlineScript, injectTokenDataIntoHtml } from '@artblocks/abx-sdk';
16
18
  export { depStatusReport, dependencyScriptTags, resolveRegistryDep, registryDepUrl, activeRegistry, urlBudgetStatus, URL_BUDGET_BYTES, DEPENDENCY_REGISTRY_ABI, } from './deps.js';
17
19
  export { startChainWatcher, notifyEffects, watchIntervalMs, DEFAULT_WATCH_INTERVAL_MS } from './watcher.js';
18
- export { generateArt, artContentHash, fallbackImageSvg, IMAGE_MEDIA_TYPE } from './art.js';
20
+ export { generateContent, contentHash, fallbackImageSvg, IMAGE_MEDIA_TYPE } from './content.js';
19
21
  export { renderDashboard } from './dashboard.js';
20
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EAAyC,MAAM,eAAe,CAAC;AAC/H,OAAO,EAAC,qBAAqB,EAAE,uBAAuB,EAAE,eAAe,EAAC,MAAM,WAAW,CAAC;AAC1F,kGAAkG;AAClG,kGAAkG;AAClG,6FAA6F;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GAKxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,yBAAyB,EAA0C,MAAM,cAAc,CAAC;AACnJ,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,UAAU,CAAC;AACzF,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,aAAa,EACb,YAAY,GAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,aAAa,GAQd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,qBAAqB,EAAE,eAAe,EAAC,MAAM,WAAW,CAAC;AACjE,2FAA2F;AAC3F,kGAAkG;AAClG,iDAAiD;AACjD,yFAAyF;AACzF,wFAAwF;AACxF,OAAO,EAAC,MAAM,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AACjI,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GAKxB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,yBAAyB,EAA0C,MAAM,cAAc,CAAC;AACnJ,OAAO,EAAC,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type MetadataField, type OpenSeaAttribute, type ProjectState, type PublicClient, type TokenState } from '@artblocks/abx-sdk';
1
+ import { type Hex, type MetadataField, type OpenSeaAttribute, type ProjectState, type PublicClient, type TokenState } from '@artblocks/abx-sdk';
2
2
  import { type StorageBackend } from '@artblocks/abx-storage';
3
3
  /**
4
4
  * Standard, marketplace-facing metadata, built from the reconstructed projection by the
@@ -44,13 +44,18 @@ export type ProvenanceStatus = 'on-chain' | 'verified' | 'mismatch' | 'anchored'
44
44
  export interface FieldProvenance {
45
45
  field: string;
46
46
  source: 'inline' | 'inline-gzip' | 'reader' | 'reader-gzip' | 'renderer' | 'keccak256' | 'sha256' | 'arweave' | 'ipfs' | 'url' | 'url-template' | 'off-chain' | 'fallback' | 'placeholder' | `effect:${string}` | 'live-view';
47
- onChain: boolean;
47
+ /** NOTE: there is deliberately no `onChain` boolean. It was exactly `status === 'on-chain'`, so it
48
+ * carried no information — and it carried the on-chain renderer's ambiguity with it, where the
49
+ * same field claimed `false` for a `url` (whose URL string IS stored on chain) and `true` for an
50
+ * `inline` value that was itself a pointer. `source` says where the bytes came from and `status`
51
+ * says what was verified about them; whether a given value resolves on chain is visible in the
52
+ * value, and that determination belongs to the reader. */
48
53
  status: ProvenanceStatus;
49
54
  /** Integrity-anchor kind for off-chain bytes, e.g. `keccak256` — the on-chain hash you verify against. */
50
55
  anchor?: 'keccak256' | 'sha256';
51
56
  note: string;
52
57
  }
53
- /** One entry of the `artifacts` manifest (`specs/protocol/data-plane.md`) — exactly
58
+ /** One entry of the `artifacts` manifest (`site/content/docs/protocol/data-plane.mdx`) — exactly
54
59
  * `{key, mimeType, uri}`, all required, nothing optional. */
55
60
  export interface ArtifactEntry {
56
61
  key: string;
@@ -65,6 +70,15 @@ export interface PlaneArtifactRow {
65
70
  outputKey: string;
66
71
  contentType: string | null;
67
72
  locator: string | null;
73
+ /** A BOUND output's content (`site/content/docs/protocol/effects.mdx → Bound vs referenced`) — the bytes that
74
+ * stitch into this JSON, held with the row. `null`/absent for every referenced output. */
75
+ bytes?: Uint8Array | null;
76
+ /** The inputsHash this row was rendered at, when the plane reports one. Optional and read-only:
77
+ * the manifest's own currency filter never consults it (it recomputes the row's KEY against the
78
+ * live inputsHash instead — see `buildTokenArtifacts` below), so an older row or a minimal test
79
+ * double may omit it without affecting what gets served. It exists purely for a read that wants
80
+ * to SHOW a stale row's own hash rather than merely knowing it doesn't match (`tokenArtifacts`). */
81
+ inputsHash?: string;
68
82
  }
69
83
  /** The resolver's read surface over the effect-artifact registry — how the manifest enumerates
70
84
  * the plane's effect source without learning any effect's internals. */
@@ -74,6 +88,24 @@ export interface PlaneAccess {
74
88
  /** One row by artifact key (the image seam's published-locator check). */
75
89
  get(key: string): PlaneArtifactRow | null;
76
90
  }
91
+ /**
92
+ * The project's preferred gateway prefix per scheme, resolved ONCE per document.
93
+ *
94
+ * The off-chain twin of `AbxMetadataRenderer._gatewayPrefix` (spec v11): the collection's reserved
95
+ * `abx_gateway_ipfs` / `abx_gateway_arweave` field, else this host's env default, else the public
96
+ * floor. Two conforming resolvers given the same chain must emit the same `image`, so the env read
97
+ * is a FLOOR and never an override — a project that stated a preference on chain gets that
98
+ * preference from every resolver, and a host's own gateway only ever fills a silence (which is the
99
+ * only way a managed provider serving a token it does not own can offer a better default).
100
+ */
101
+ export declare function projectGateways(state: Pick<ProjectState, 'collectionFields'>): GatewayPrefixes;
102
+ /** The two prefixes, threaded through a document build. Required rather than optional wherever it
103
+ * is passed, for the reason {@link resolveText} gives about `tokenAddress`: an optional input that
104
+ * silently disables a whole representation is how the `renderer` branch went missing here once. */
105
+ export interface GatewayPrefixes {
106
+ ipfs: string;
107
+ arweave: string;
108
+ }
77
109
  /**
78
110
  * The declared-type ladder for a FIELD artifact (`data-plane.md → Declared type, never sniffed`):
79
111
  * the representation is the declaration channel — `renderer` returns its contentType from chain;
@@ -82,7 +114,58 @@ export interface PlaneAccess {
82
114
  * → `application/octet-stream`, never omitted (the complete-listing rule).
83
115
  */
84
116
  export declare function fieldMimeType(client: PublicClient, state: ProjectState, entry: MetadataField, field: string, tokenId: string, display: DisplayMeta, storage?: StorageBackend): Promise<string>;
85
- /** ERC-721 metadata JSON for a token (the `tokenURI` target) + `abx_provenance` + `artifacts`. */
117
+ /**
118
+ * One producer-registered effect-artifact row, reported with its currency against the token's
119
+ * CURRENT settled inputsHash — the visibility `buildTokenArtifacts` above deliberately does NOT
120
+ * provide (it silently drops anything that doesn't match, which is correct for what gets SERVED
121
+ * but wrong for a read whose whole job is telling current from stale apart).
122
+ */
123
+ export interface EffectArtifactStatus {
124
+ /** `${effectKey}/${outputKey}` — the same composite key a manifest entry for this output uses. */
125
+ key: string;
126
+ effectKey: string;
127
+ outputKey: string;
128
+ status: 'current' | 'stale';
129
+ /** This row's own recorded inputsHash, when the plane reports one — `null` when unknown (never
130
+ * guessed; see {@link PlaneArtifactRow.inputsHash}). */
131
+ inputsHash: string | null;
132
+ contentType: string | null;
133
+ /** Where the bytes are — a producer's locator, or this node's own `/data/{key}` route. Never
134
+ * fetched or resolved here; a locator is reported verbatim. */
135
+ uri: string;
136
+ }
137
+ /**
138
+ * The direct, typed artifact read behind `abx artifacts` / the SDK's `tokenArtifacts()`; see
139
+ * site/content/docs/protocol/data-plane.mdx. Every entry in `entries` is EXACTLY what the served
140
+ * tokenURI document's `artifacts` key carries right now — this calls `buildTokenArtifacts` itself rather
141
+ * than re-deriving its filter, so the two cannot drift. A remote resolver that independently
142
+ * reimplements this logic instead of reading it from here is a SEPARATE surface, which is why a
143
+ * caller must be told which one answered.
144
+ *
145
+ * Nothing here is on-chain data itself — every entry is a resolver-published projection, whether
146
+ * the bytes it names are anchored on-chain or produced off-chain by an effect. Read each entry's
147
+ * `abx_provenance` row (`prov`) for that distinction; never infer it from an entry's mere presence.
148
+ */
149
+ export interface TokenArtifactsResult {
150
+ entries: ArtifactEntry[];
151
+ prov: FieldProvenance[];
152
+ /** Every producer-registered effect row for this token, current AND stale. Empty both for a
153
+ * project with no effect surface AND when the caller passed no `plane` — `planeConsulted` is
154
+ * what tells those two apart. */
155
+ effects: EffectArtifactStatus[];
156
+ /** Whether an effect-artifact registry (a `plane`) was actually consulted. `false` means this
157
+ * read has no way to know about producer-registered outputs at all — "no resolver [registry]
158
+ * configured for this read", not "this project has none". Always `false` for a project with no
159
+ * effect surface (a static image/Series never has one to consult). */
160
+ planeConsulted: boolean;
161
+ /** The settled inputsHash effect rows are judged against — the active effect key a caller
162
+ * compares a stale row's own `inputsHash` to, to see how far behind it is. `null` for a project
163
+ * with no effect surface. */
164
+ currentInputsHash: Hex | null;
165
+ }
166
+ export declare function tokenArtifacts(client: PublicClient, state: ProjectState, token: TokenState, baseUrl: string, chainId: number, display?: DisplayMeta, storage?: StorageBackend, plane?: PlaneAccess): Promise<TokenArtifactsResult>;
167
+ /** Token metadata JSON — the `tokenURI` target (ERC-721) / the `uri(id)` target (ERC-1155
168
+ * editions), assembled identically either way + `abx_provenance` + `artifacts`. */
86
169
  export declare function buildTokenMetadata(client: PublicClient, state: ProjectState, token: TokenState, baseUrl: string, chainId: number, display?: DisplayMeta, storage?: StorageBackend, plane?: PlaneAccess): Promise<Record<string, unknown>>;
87
170
  /** ERC-7572 collection metadata JSON (the `contractURI` target) + `abx_provenance`. */
88
171
  export declare function buildContractMetadata(client: PublicClient, state: ProjectState, baseUrl: string, chainId: number, display?: DisplayMeta, storage?: StorageBackend): Promise<Record<string, unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAsB,KAAK,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAIhF;;;;;GAKG;AAEH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExG;AAED,gGAAgG;AAChG,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;2EACuE;IACvE,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC;6GACyG;IACzG,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAEvG,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EACF,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,aAAa,GACb,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,KAAK,GACL,cAAc,GACd,WAAW,GACX,UAAU,GACV,aAAa,GACb,UAAU,MAAM,EAAE,GAClB,WAAW,CAAC;IAChB;;;;;+DAK2D;IAC3D,MAAM,EAAE,gBAAgB,CAAC;IACzB,0GAA0G;IAC1G,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;8DAC8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;8FAC8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;+FAC2F;IAC3F,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B;;;;yGAIqG;IACrG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;yEACyE;AACzE,MAAM,WAAW,WAAW;IAC1B,iGAAiG;IACjG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAC3D,0EAA0E;IAC1E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;CAC3C;AAkPD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,GAAG,eAAe,CAM9F;AAED;;oGAEoG;AACpG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA0LD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AA0JD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B;6DACyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;oEACgE;IAChE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB;;sCAEkC;IAClC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC;;;2EAGuE;IACvE,cAAc,EAAE,OAAO,CAAC;IACxB;;kCAE8B;IAC9B,iBAAiB,EAAE,GAAG,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,EACzB,OAAO,CAAC,EAAE,cAAc,EACxB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,oBAAoB,CAAC,CAkD/B;AAsDD;oFACoF;AACpF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,EACzB,OAAO,CAAC,EAAE,cAAc,EAIxB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8JlC;AAED,uFAAuF;AACvF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiFlC"}