@clossys/launcher 0.3.0 → 0.4.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/README.md +1328 -60
- package/contracts/conversation-contract.md +2 -1
- package/contracts/product-ci-workflow.yml +74 -0
- package/contracts/repository-inventory.json +53 -0
- package/dist/admission-fixture.d.ts +168 -0
- package/dist/admission-fixture.d.ts.map +1 -0
- package/dist/admission-fixture.js +453 -0
- package/dist/admission-fixture.js.map +1 -0
- package/dist/admission.d.ts +124 -0
- package/dist/admission.d.ts.map +1 -0
- package/dist/admission.js +799 -0
- package/dist/admission.js.map +1 -0
- package/dist/agents-guide.d.ts +9 -0
- package/dist/agents-guide.d.ts.map +1 -0
- package/dist/agents-guide.js +26 -0
- package/dist/agents-guide.js.map +1 -0
- package/dist/apply-command-options.check.d.ts +12 -0
- package/dist/apply-command-options.check.d.ts.map +1 -0
- package/dist/apply-command-options.check.js +20 -0
- package/dist/apply-command-options.check.js.map +1 -0
- package/dist/apply-plan-cli.d.ts +39 -1
- package/dist/apply-plan-cli.d.ts.map +1 -1
- package/dist/apply-plan-cli.js +432 -15
- package/dist/apply-plan-cli.js.map +1 -1
- package/dist/apply-plan.d.ts +46 -59
- package/dist/apply-plan.d.ts.map +1 -1
- package/dist/apply-plan.js +112 -97
- package/dist/apply-plan.js.map +1 -1
- package/dist/apply-step-fixture.d.ts +87 -0
- package/dist/apply-step-fixture.d.ts.map +1 -0
- package/dist/apply-step-fixture.js +199 -0
- package/dist/apply-step-fixture.js.map +1 -0
- package/dist/apply-store.d.ts +93 -0
- package/dist/apply-store.d.ts.map +1 -0
- package/dist/apply-store.js +625 -0
- package/dist/apply-store.js.map +1 -0
- package/dist/approval-sheet.d.ts +21 -0
- package/dist/approval-sheet.d.ts.map +1 -0
- package/dist/approval-sheet.js +157 -0
- package/dist/approval-sheet.js.map +1 -0
- package/dist/body-command.d.ts +42 -0
- package/dist/body-command.d.ts.map +1 -0
- package/dist/body-command.js +143 -0
- package/dist/body-command.js.map +1 -0
- package/dist/change-set-contract.d.ts +381 -0
- package/dist/change-set-contract.d.ts.map +1 -0
- package/dist/change-set-contract.js +738 -0
- package/dist/change-set-contract.js.map +1 -0
- package/dist/change-set-digest.d.ts +28 -0
- package/dist/change-set-digest.d.ts.map +1 -0
- package/dist/change-set-digest.js +65 -0
- package/dist/change-set-digest.js.map +1 -0
- package/dist/check-cli.d.ts.map +1 -1
- package/dist/check-cli.js +14 -3
- package/dist/check-cli.js.map +1 -1
- package/dist/cli.d.ts +17 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +84 -23
- package/dist/cli.js.map +1 -1
- package/dist/core.d.ts +79 -22
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +843 -268
- package/dist/core.js.map +1 -1
- package/dist/dry-materialize.d.ts +63 -0
- package/dist/dry-materialize.d.ts.map +1 -0
- package/dist/dry-materialize.js +330 -0
- package/dist/dry-materialize.js.map +1 -0
- package/dist/generated/contract-schema.generated.d.ts +97 -0
- package/dist/generated/contract-schema.generated.d.ts.map +1 -0
- package/dist/generated/contract-schema.generated.js +496 -0
- package/dist/generated/contract-schema.generated.js.map +1 -0
- package/dist/generated/package-scope.generated.d.ts +6 -0
- package/dist/generated/package-scope.generated.d.ts.map +1 -0
- package/dist/generated/package-scope.generated.js +10 -0
- package/dist/generated/package-scope.generated.js.map +1 -0
- package/dist/generated/plan-contracts.generated.d.ts +3 -0
- package/dist/generated/plan-contracts.generated.d.ts.map +1 -0
- package/dist/generated/plan-contracts.generated.js +2840 -0
- package/dist/generated/plan-contracts.generated.js.map +1 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +11 -0
- package/dist/host.js.map +1 -1
- package/dist/identity.d.ts +15 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +48 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +34 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/inventory-adoption.d.ts +24 -5
- package/dist/inventory-adoption.d.ts.map +1 -1
- package/dist/inventory-adoption.js +70 -25
- package/dist/inventory-adoption.js.map +1 -1
- package/dist/inventory-choice.d.ts +40 -0
- package/dist/inventory-choice.d.ts.map +1 -0
- package/dist/inventory-choice.js +156 -0
- package/dist/inventory-choice.js.map +1 -0
- package/dist/inventory-contract.d.ts +89 -0
- package/dist/inventory-contract.d.ts.map +1 -0
- package/dist/inventory-contract.js +121 -0
- package/dist/inventory-contract.js.map +1 -0
- package/dist/key-editor.d.ts +30 -0
- package/dist/key-editor.d.ts.map +1 -0
- package/dist/key-editor.js +445 -0
- package/dist/key-editor.js.map +1 -0
- package/dist/ledger-contract.d.ts +187 -0
- package/dist/ledger-contract.d.ts.map +1 -0
- package/dist/ledger-contract.js +532 -0
- package/dist/ledger-contract.js.map +1 -0
- package/dist/ledger-trust.d.ts +90 -0
- package/dist/ledger-trust.d.ts.map +1 -0
- package/dist/ledger-trust.js +198 -0
- package/dist/ledger-trust.js.map +1 -0
- package/dist/lockfile-invariants.d.ts +48 -0
- package/dist/lockfile-invariants.d.ts.map +1 -0
- package/dist/lockfile-invariants.js +375 -0
- package/dist/lockfile-invariants.js.map +1 -0
- package/dist/lockfile-readers.d.ts +72 -0
- package/dist/lockfile-readers.d.ts.map +1 -0
- package/dist/lockfile-readers.js +713 -0
- package/dist/lockfile-readers.js.map +1 -0
- package/dist/lockfile-regen.d.ts +106 -0
- package/dist/lockfile-regen.d.ts.map +1 -0
- package/dist/lockfile-regen.js +760 -0
- package/dist/lockfile-regen.js.map +1 -0
- package/dist/lockfile-tool-env.d.ts +29 -0
- package/dist/lockfile-tool-env.d.ts.map +1 -0
- package/dist/lockfile-tool-env.js +111 -0
- package/dist/lockfile-tool-env.js.map +1 -0
- package/dist/materialize.d.ts +113 -0
- package/dist/materialize.d.ts.map +1 -0
- package/dist/materialize.js +840 -0
- package/dist/materialize.js.map +1 -0
- package/dist/observe-repository.d.ts +90 -0
- package/dist/observe-repository.d.ts.map +1 -0
- package/dist/observe-repository.js +1367 -0
- package/dist/observe-repository.js.map +1 -0
- package/dist/plan-bundle-setup-fixture.d.ts +68 -0
- package/dist/plan-bundle-setup-fixture.d.ts.map +1 -0
- package/dist/plan-bundle-setup-fixture.js +167 -0
- package/dist/plan-bundle-setup-fixture.js.map +1 -0
- package/dist/plan-bundle.d.ts +250 -0
- package/dist/plan-bundle.d.ts.map +1 -0
- package/dist/plan-bundle.js +827 -0
- package/dist/plan-bundle.js.map +1 -0
- package/dist/plan-command.d.ts +29 -0
- package/dist/plan-command.d.ts.map +1 -0
- package/dist/plan-command.js +493 -0
- package/dist/plan-command.js.map +1 -0
- package/dist/plan-contract.d.ts +153 -0
- package/dist/plan-contract.d.ts.map +1 -0
- package/dist/plan-contract.js +61 -0
- package/dist/plan-contract.js.map +1 -0
- package/dist/plan-digest.d.ts +25 -0
- package/dist/plan-digest.d.ts.map +1 -0
- package/dist/plan-digest.js +106 -0
- package/dist/plan-digest.js.map +1 -0
- package/dist/plan-rules.d.ts +23 -0
- package/dist/plan-rules.d.ts.map +1 -0
- package/dist/plan-rules.js +177 -0
- package/dist/plan-rules.js.map +1 -0
- package/dist/planned-bundle.d.ts +20 -0
- package/dist/planned-bundle.d.ts.map +1 -0
- package/dist/planned-bundle.js +191 -0
- package/dist/planned-bundle.js.map +1 -0
- package/dist/product-repository.d.ts +4 -0
- package/dist/product-repository.d.ts.map +1 -1
- package/dist/product-repository.js +9 -1
- package/dist/product-repository.js.map +1 -1
- package/dist/provenance-gate.d.ts +48 -0
- package/dist/provenance-gate.d.ts.map +1 -0
- package/dist/provenance-gate.js +324 -0
- package/dist/provenance-gate.js.map +1 -0
- package/dist/pull-request-body.d.ts +45 -0
- package/dist/pull-request-body.d.ts.map +1 -0
- package/dist/pull-request-body.js +232 -0
- package/dist/pull-request-body.js.map +1 -0
- package/dist/registry-snapshot.d.ts +141 -0
- package/dist/registry-snapshot.d.ts.map +1 -0
- package/dist/registry-snapshot.js +483 -0
- package/dist/registry-snapshot.js.map +1 -0
- package/dist/release-age-edit.d.ts +52 -0
- package/dist/release-age-edit.d.ts.map +1 -0
- package/dist/release-age-edit.js +413 -0
- package/dist/release-age-edit.js.map +1 -0
- package/dist/root-entries.d.ts +36 -0
- package/dist/root-entries.d.ts.map +1 -0
- package/dist/root-entries.js +80 -0
- package/dist/root-entries.js.map +1 -0
- package/dist/setup-template-scripts.d.ts +34 -0
- package/dist/setup-template-scripts.d.ts.map +1 -0
- package/dist/setup-template-scripts.js +557 -0
- package/dist/setup-template-scripts.js.map +1 -0
- package/dist/setup-templates.d.ts +54 -0
- package/dist/setup-templates.d.ts.map +1 -0
- package/dist/setup-templates.js +427 -0
- package/dist/setup-templates.js.map +1 -0
- package/dist/skills.d.ts +34 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +129 -17
- package/dist/skills.js.map +1 -1
- package/dist/status.d.ts +63 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +539 -0
- package/dist/status.js.map +1 -0
- package/dist/types.d.ts +151 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -5
- package/skeleton/README.md +14 -9
- package/skeleton/package.json +2 -1
- package/skill/SKILL.md +20 -16
- package/skill-catalogue/advisor/SKILL.md +100 -11
- package/skill-catalogue/architect/SKILL.md +2 -13
- package/skill-catalogue/bouncer/SKILL.md +2 -13
- package/skill-catalogue/builder/SKILL.md +2 -13
- package/skill-catalogue/butler/SKILL.md +2 -13
- package/skill-catalogue/controller/SKILL.md +2 -13
- package/skill-catalogue/customer/SKILL.md +4 -13
- package/skill-catalogue/designer/SKILL.md +9 -14
- package/skill-catalogue/giver/SKILL.md +2 -13
- package/skill-catalogue/influencer/SKILL.md +2 -13
- package/skill-catalogue/inspector/SKILL.md +2 -13
- package/skill-catalogue/integrator/SKILL.md +2 -13
- package/skill-catalogue/keeper/SKILL.md +2 -13
- package/skill-catalogue/launcher/SKILL.md +20 -16
- package/skill-catalogue/locksmith/SKILL.md +2 -13
- package/skill-catalogue/messenger/SKILL.md +2 -13
- package/skill-catalogue/observer/SKILL.md +2 -13
- package/skill-catalogue/publisher/SKILL.md +11 -17
- package/skill-catalogue/starter/SKILL.md +3 -13
- package/skill-catalogue/strategist/SKILL.md +14 -17
- package/skill-catalogue/writer/SKILL.md +7 -14
- package/src/admission-fixture.ts +572 -0
- package/src/admission.ts +816 -0
- package/src/agents-guide.ts +29 -0
- package/src/apply-command-options.check.ts +27 -0
- package/src/apply-plan-cli.ts +454 -14
- package/src/apply-plan.ts +112 -124
- package/src/apply-step-fixture.ts +236 -0
- package/src/apply-store.ts +584 -0
- package/src/approval-sheet.ts +164 -0
- package/src/body-command.ts +162 -0
- package/src/change-set-contract.ts +937 -0
- package/src/change-set-digest.ts +70 -0
- package/src/check-cli.ts +14 -3
- package/src/cli.ts +90 -22
- package/src/core.ts +973 -275
- package/src/dry-materialize.ts +353 -0
- package/src/generated/contract-schema.generated.ts +520 -0
- package/src/generated/package-scope.generated.ts +10 -0
- package/src/generated/plan-contracts.generated.ts +2840 -0
- package/src/host.ts +10 -0
- package/src/identity.ts +51 -0
- package/src/index.ts +72 -3
- package/src/inventory-adoption.ts +107 -29
- package/src/inventory-choice.ts +172 -0
- package/src/inventory-contract.ts +166 -0
- package/src/key-editor.ts +446 -0
- package/src/ledger-contract.ts +637 -0
- package/src/ledger-trust.ts +267 -0
- package/src/lockfile-invariants.ts +421 -0
- package/src/lockfile-readers.ts +749 -0
- package/src/lockfile-regen.ts +851 -0
- package/src/lockfile-tool-env.ts +131 -0
- package/src/materialize.ts +886 -0
- package/src/observe-repository.ts +1365 -0
- package/src/plan-bundle-setup-fixture.ts +200 -0
- package/src/plan-bundle.ts +964 -0
- package/src/plan-command.ts +509 -0
- package/src/plan-contract.ts +179 -0
- package/src/plan-digest.ts +102 -0
- package/src/plan-rules.ts +188 -0
- package/src/planned-bundle.ts +211 -0
- package/src/product-repository.ts +10 -1
- package/src/provenance-gate.ts +352 -0
- package/src/pull-request-body.ts +261 -0
- package/src/registry-snapshot.ts +534 -0
- package/src/release-age-edit.ts +430 -0
- package/src/root-entries.ts +81 -0
- package/src/setup-template-scripts.ts +571 -0
- package/src/setup-templates.ts +471 -0
- package/src/skills.ts +161 -18
- package/src/status.ts +557 -0
- package/src/types.ts +148 -13
- package/CHANGELOG.md +0 -131
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ApplyBundle, RepositoryChangeSet } from "./change-set-contract.js";
|
|
2
|
+
/** Where every repository change set this hub has computed is kept, one file per digest, relative to the hub root. */
|
|
3
|
+
export declare const CHANGE_SET_STORE_REL = "clossys/.state/apply/change-sets";
|
|
4
|
+
/** Where every apply bundle this hub has computed is kept, one file per digest, relative to the hub root. */
|
|
5
|
+
export declare const BUNDLE_STORE_REL = "clossys/.state/apply/bundles";
|
|
6
|
+
/**
|
|
7
|
+
* Stores `set` under `hubDirectory`/CHANGE_SET_STORE_REL, named for its own
|
|
8
|
+
* `changeSetDigest`. Throws a TypeError, naming no path, id or value, when
|
|
9
|
+
* the set does not validate against the change-set contract, when its
|
|
10
|
+
* `changeSetDigest` is not `changeSetDigest(set)`, or when that name is
|
|
11
|
+
* already taken by different bytes (the store is append-only). Storing the
|
|
12
|
+
* same set again, byte for byte, is a no-op; so is storing another document
|
|
13
|
+
* that validates to the same changeSetDigest. Returns the file's path.
|
|
14
|
+
*/
|
|
15
|
+
export declare function storeChangeSet(hubDirectory: string, set: RepositoryChangeSet): string;
|
|
16
|
+
/** Thrown by bindChangeSetBody when the stored set is already bound to another body. Names no path, digest or hash. */
|
|
17
|
+
export declare class BodyBoundError extends TypeError {
|
|
18
|
+
constructor();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Records `bodySha256`, the hash of the pull request body rendered for the
|
|
22
|
+
* change set stored under `digest` (issue #1716), as that set's
|
|
23
|
+
* `pullRequest.bodySha256` -- the one member it changes. The digest excludes
|
|
24
|
+
* that member, so the file's name and every digest stay as they were. The set
|
|
25
|
+
* is read here, from the store, and must verify exactly as readStoredChangeSet
|
|
26
|
+
* verifies it; a set that is not stored, or does not verify, is a TypeError.
|
|
27
|
+
* A set already bound to the same hash is a no-op that writes nothing; one
|
|
28
|
+
* bound to another hash throws BodyBoundError and is left as it was: a bound
|
|
29
|
+
* body is never rebound, and storeChangeSet never replaces a stored set, so it
|
|
30
|
+
* cannot unbind one either. The write replaces only that one file, atomically
|
|
31
|
+
* (a temporary file in the same directory, renamed over the name), and is
|
|
32
|
+
* refused when the file is not the bytes that were read, a symbolic link or not
|
|
33
|
+
* a regular file, or when a store directory segment is a symbolic link. Every
|
|
34
|
+
* error names no path, digest or hash, and no other file is touched. Returns
|
|
35
|
+
* the file's path.
|
|
36
|
+
*
|
|
37
|
+
* Two binds of one set are serialised by a per-digest lock (issue #1738): a
|
|
38
|
+
* dot-prefixed file in the change-sets directory, created exclusively before
|
|
39
|
+
* the set is first read and removed once this call is done, only by the call
|
|
40
|
+
* that created it. A bind that finds the lock already held throws a TypeError
|
|
41
|
+
* and changes nothing, so of two binds with different hashes exactly one
|
|
42
|
+
* renames; it never waits and never breaks a lock. A crash mid-bind leaves the
|
|
43
|
+
* lock, and later binds of that set then refuse (fails closed). A set removed
|
|
44
|
+
* after this call read it is refused rather than written again already bound.
|
|
45
|
+
*/
|
|
46
|
+
export declare function bindChangeSetBody(hubDirectory: string, digest: string, bodySha256: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Stores `bundle` under `hubDirectory`/BUNDLE_STORE_REL, named for its own
|
|
49
|
+
* `bundleDigest`. Throws a TypeError, naming no path, id or value, when the
|
|
50
|
+
* bundle does not validate against the apply-bundle contract, when the
|
|
51
|
+
* digest is malformed, or when a store directory segment or the file name is
|
|
52
|
+
* a symbolic link; nothing is written or replaced in those cases. The digest
|
|
53
|
+
* excludes the authorization, the clock, the mode and the verdicts (RFC
|
|
54
|
+
* 12.3), so a bundle whose digest already names a stored file replaces that
|
|
55
|
+
* one file atomically with these bytes, the newest computation; the same
|
|
56
|
+
* bytes again are a no-op. A report bundle never replaces a stored file that
|
|
57
|
+
* verifies as a planned bundle of this digest (a TypeError, naming no path);
|
|
58
|
+
* a planned bundle replaces anything. A bundle with any other digest never
|
|
59
|
+
* touches another file. Superseded computations are not recorded. Returns the
|
|
60
|
+
* file's path.
|
|
61
|
+
*/
|
|
62
|
+
export declare function storeApplyBundle(hubDirectory: string, bundle: ApplyBundle): string;
|
|
63
|
+
/**
|
|
64
|
+
* Reads the change set stored for `digest` under `hubDirectory`/CHANGE_SET_STORE_REL.
|
|
65
|
+
* `digest` must match `sha256:` and 64 lowercase hex digits before any path
|
|
66
|
+
* is built from it; a malformed digest throws a TypeError naming no value,
|
|
67
|
+
* before touching the filesystem. Otherwise: a missing file, bytes that are
|
|
68
|
+
* not strict JSON, a document that does not validate against the change-set
|
|
69
|
+
* contract, or one whose `changeSetDigest` -- recomputed and read from the
|
|
70
|
+
* document -- does not equal both `digest` and the document's own
|
|
71
|
+
* `changeSetDigest`, all read as `null`. A file can therefore never be read
|
|
72
|
+
* back under a name, or with content, other than its own digest.
|
|
73
|
+
*/
|
|
74
|
+
/**
|
|
75
|
+
* Every change set stored under `hubDirectory`/CHANGE_SET_STORE_REL whose file
|
|
76
|
+
* name is 64 lowercase hex digits and `.json`, in directory listing order.
|
|
77
|
+
* Entries that do not read back as a valid stored set are omitted.
|
|
78
|
+
*/
|
|
79
|
+
export declare function listStoredChangeSets(hubDirectory: string): RepositoryChangeSet[];
|
|
80
|
+
export declare function readStoredChangeSet(hubDirectory: string, digest: string): RepositoryChangeSet | null;
|
|
81
|
+
/**
|
|
82
|
+
* Reads the apply bundle stored for `digest` under `hubDirectory`/BUNDLE_STORE_REL.
|
|
83
|
+
* `digest` must match `sha256:` and 64 lowercase hex digits before any path
|
|
84
|
+
* is built from it; a malformed digest throws a TypeError naming no value,
|
|
85
|
+
* before touching the filesystem. Otherwise: a missing file, bytes that are
|
|
86
|
+
* not strict JSON, a document that does not validate against the
|
|
87
|
+
* apply-bundle contract, or one whose bundle digest -- recomputed from its
|
|
88
|
+
* `plan.digest` and each repository that carries a change set, in the same
|
|
89
|
+
* order applyBundleRuleViolations' A2 rule computes it -- does not equal
|
|
90
|
+
* both `digest` and the document's own `bundleDigest`, all read as `null`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function readStoredApplyBundle(hubDirectory: string, digest: string): ApplyBundle | null;
|
|
93
|
+
//# sourceMappingURL=apply-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-store.d.ts","sourceRoot":"","sources":["../src/apply-store.ts"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,WAAW,EAAyB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGxG,sHAAsH;AACtH,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AAEvE,6GAA6G;AAC7G,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AA4R/D;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAarF;AAED,uHAAuH;AACvH,qBAAa,cAAe,SAAQ,SAAS;;CAI5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA+BlG;AAwCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAMlF;AAwBD;;;;;;;;;;GAUG;AACH;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAWhF;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CASpG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAK9F"}
|