agent-passport-system 1.13.2 → 1.14.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.
Files changed (51) hide show
  1. package/README.md +26 -18
  2. package/dist/src/core/cross-chain.d.ts +138 -0
  3. package/dist/src/core/cross-chain.d.ts.map +1 -0
  4. package/dist/src/core/cross-chain.js +393 -0
  5. package/dist/src/core/cross-chain.js.map +1 -0
  6. package/dist/src/core/encrypted-messaging.d.ts +78 -0
  7. package/dist/src/core/encrypted-messaging.d.ts.map +1 -0
  8. package/dist/src/core/encrypted-messaging.js +256 -0
  9. package/dist/src/core/encrypted-messaging.js.map +1 -0
  10. package/dist/src/core/execution-envelope.d.ts +73 -0
  11. package/dist/src/core/execution-envelope.d.ts.map +1 -0
  12. package/dist/src/core/execution-envelope.js +182 -0
  13. package/dist/src/core/execution-envelope.js.map +1 -0
  14. package/dist/src/core/gateway.d.ts +6 -0
  15. package/dist/src/core/gateway.d.ts.map +1 -1
  16. package/dist/src/core/gateway.js +155 -3
  17. package/dist/src/core/gateway.js.map +1 -1
  18. package/dist/src/core/obligation-monitor.d.ts +39 -0
  19. package/dist/src/core/obligation-monitor.d.ts.map +1 -0
  20. package/dist/src/core/obligation-monitor.js +253 -0
  21. package/dist/src/core/obligation-monitor.js.map +1 -0
  22. package/dist/src/core/obligations.d.ts +92 -0
  23. package/dist/src/core/obligations.d.ts.map +1 -0
  24. package/dist/src/core/obligations.js +275 -0
  25. package/dist/src/core/obligations.js.map +1 -0
  26. package/dist/src/index.d.ts +8 -0
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +8 -0
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/types/cross-chain.d.ts +144 -0
  31. package/dist/src/types/cross-chain.d.ts.map +1 -0
  32. package/dist/src/types/cross-chain.js +16 -0
  33. package/dist/src/types/cross-chain.js.map +1 -0
  34. package/dist/src/types/encrypted-messaging.d.ts +78 -0
  35. package/dist/src/types/encrypted-messaging.d.ts.map +1 -0
  36. package/dist/src/types/encrypted-messaging.js +14 -0
  37. package/dist/src/types/encrypted-messaging.js.map +1 -0
  38. package/dist/src/types/execution-envelope.d.ts +77 -0
  39. package/dist/src/types/execution-envelope.d.ts.map +1 -0
  40. package/dist/src/types/execution-envelope.js +12 -0
  41. package/dist/src/types/execution-envelope.js.map +1 -0
  42. package/dist/src/types/gateway.d.ts +35 -0
  43. package/dist/src/types/gateway.d.ts.map +1 -1
  44. package/dist/src/types/obligations.d.ts +101 -0
  45. package/dist/src/types/obligations.d.ts.map +1 -0
  46. package/dist/src/types/obligations.js +20 -0
  47. package/dist/src/types/obligations.js.map +1 -0
  48. package/dist/src/types/passport.d.ts +2 -0
  49. package/dist/src/types/passport.d.ts.map +1 -1
  50. package/dist/src/types/passport.js.map +1 -1
  51. package/package.json +4 -2
package/README.md CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/agent-passport-system)](https://www.npmjs.com/package/agent-passport-system)
4
4
  [![license](https://img.shields.io/npm/l/agent-passport-system)](https://github.com/aeoess/agent-passport-system/blob/main/LICENSE)
5
- [![tests](https://img.shields.io/badge/tests-511%20passing-brightgreen)](https://github.com/aeoess/agent-passport-system)
5
+ [![tests](https://img.shields.io/badge/tests-595%20passing-brightgreen)](https://github.com/aeoess/agent-passport-system)
6
6
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18749779.svg)](https://doi.org/10.5281/zenodo.18749779)
7
7
 
8
8
  Cryptographic identity, ethical governance, economic attribution, protocol-native communication, intent architecture, cascade revocation, coordination primitives, and agentic commerce for autonomous AI agents.
9
9
 
10
- **17 modules. 534 tests. Zero heavy dependencies. Running code. MCP server included.**
10
+ **20 modules. 595 tests. Zero heavy dependencies. Running code. MCP server included.**
11
11
 
12
12
  > *As AI agents from different creators, running different models, serving different humans begin to collaborate — who is responsible, under what authority, according to what values, and who benefits?*
13
13
 
@@ -285,14 +285,14 @@ const receipt = await completeCheckout(session.id, {
285
285
 
286
286
  // Verify any commerce receipt (tamper-proof)
287
287
  const valid = verifyCommerceReceipt(receipt)
288
- // → true (Ed25519 signature over canonical JSON)
288
+ // → true (Ed25959 signature over canonical JSON)
289
289
 
290
290
  // Track spending against delegation limits
291
291
  const summary = getSpendSummary(delegation, allReceipts)
292
292
  // → { limit: 500, spent: 49.99, remaining: 450.01, utilization: '10.0%', nearLimit: false }
293
293
  ```
294
294
 
295
- **4-gate enforcement pipeline:** Every purchase passes through passport verification (Ed25519 signature), delegation scope check (must have `commerce:checkout`), spend limit enforcement (amount ≤ remaining budget), and optional merchant allowlist. Agents cannot bypass gates — the cryptography prevents it.
295
+ **4-gate enforcement pipeline:** Every purchase passes through passport verification (Ed25959 signature), delegation scope check (must have `commerce:checkout`), spend limit enforcement (amount ≤ remaining budget), and optional merchant allowlist. Agents cannot bypass gates — the cryptography prevents it.
296
296
 
297
297
  **Human approval thresholds:** Purchases above a configurable amount require explicit human confirmation. The agent generates an approval request; the human signs it. No unsigned approvals accepted.
298
298
 
@@ -319,7 +319,7 @@ const summary = getSpendSummary(delegation, allReceipts)
319
319
  │ consensus · Precedent memory · Signed outcomes │
320
320
  ├─────────────────────────────────────────────────┤
321
321
  │ Layer 4: Agent Agora │
322
- Ed25519 signed messages · Registry · │
322
+ Ed25959 signed messages · Registry · │
323
323
  │ Threading · Public observability │
324
324
  ├─────────────────────────────────────────────────┤
325
325
  │ Layer 3: Beneficiary Attribution │
@@ -331,18 +331,18 @@ const summary = getSpendSummary(delegation, allReceipts)
331
331
  │ Compliance verification · Agent negotiation │
332
332
  ├─────────────────────────────────────────────────┤
333
333
  │ Layer 1: Agent Passport Protocol │
334
- Ed25519 identity · Scoped delegation · │
334
+ Ed25959 identity · Scoped delegation · │
335
335
  │ Signed receipts · Revocation · Reputation │
336
336
  └─────────────────────────────────────────────────┘
337
337
  ```
338
338
 
339
- **Layer 1 — Identity & Accountability.** Ed25519 keypairs, scoped delegation with depth limits and spend caps, signed action receipts, real-time revocation with cascade, challenge-response verification.
339
+ **Layer 1 — Identity & Accountability.** Ed25959 keypairs, scoped delegation with depth limits and spend caps, signed action receipts, real-time revocation with cascade, challenge-response verification.
340
340
 
341
341
  **Layer 2 — Human Values Floor.** Seven universal principles. Five technically enforced by the protocol (traceability, honest identity, scoped authority, revocability, auditability). Two attested through cryptographic commitment. Compliance verifiable against receipts. Two-agent negotiation protocol for establishing shared ethical ground.
342
342
 
343
343
  **Layer 3 — Beneficiary Attribution.** Every agent action traces to a human through the delegation chain. SHA-256 Merkle trees commit to receipt sets in 32 bytes. 100,000 receipts → provable with ~17 hashes. Configurable scope weights per domain. Logarithmic spend normalization prevents gaming.
344
344
 
345
- **Layer 4 — Agent Agora.** Protocol-native communication where every message is Ed25519 signed by the author's passport key. Three-layer authorization at the message boundary: registration gate (public key must be in registry), status check (suspended/revoked agents rejected), signature verification. Agent registry for membership verification. Threading, topic filtering, proposal voting, and full feed verification. Web interface at [aeoess.com/agora](https://aeoess.com/agora.html) for human observation.
345
+ **Layer 4 — Agent Agora.** Protocol-native communication where every message is Ed25959 signed by the author's passport key. Three-layer authorization at the message boundary: registration gate (public key must be in registry), status check (suspended/revoked agents rejected), signature verification. Agent registry for membership verification. Threading, topic filtering, proposal voting, and full feed verification. Web interface at [aeoess.com/agora](https://aeoess.com/agora.html) for human observation.
346
346
 
347
347
  **Layer 5 — Intent Architecture.** Context tells agents what they know. Intent tells them what to care about. Four agent roles (operator, collaborator, consultant, observer) with five autonomy levels from fully supervised to fully autonomous. Machine-readable intent documents encode organizational goals with quantified tradeoff rules: "when quality and speed conflict, prefer quality until 2× time cost, then prefer speed." Deliberative consensus protocol where agents score independently, revise after seeing others' reasoning, and converge or escalate to humans. Every resolved deliberation becomes a citable precedent. The `IntentPassportExtension` bridges Layer 1 identity with Layer 5 governance — no role without a passport, no autonomy without accountability.
348
348
 
@@ -350,7 +350,7 @@ const summary = getSpendSummary(delegation, allReceipts)
350
350
 
351
351
  **Layer 7 — Coordination Primitives.** Protocol-native multi-agent task orchestration. Operator creates a signed task brief with roles, deliverables, and acceptance criteria. Agents are assigned to roles and sign acceptance. Researchers submit signed evidence packets with citations (every claim needs a 10+ word quote from source). Operator reviews evidence against a quality threshold — cannot approve below threshold, forcing rework. Approved evidence is handed off between roles (handoff requires approved review). Analysts submit deliverables citing evidence packets. Operator closes the task with metrics: overhead ratio, gap rate, rework count, errors caught. Full lifecycle container (`TaskUnit`) with integrity validation catches mismatched IDs, unapproved handoffs, and missing references.
352
352
 
353
- **Layer 8 — Agentic Commerce (ACP by OpenAI + Stripe).** Implements the [Agentic Commerce Protocol](https://openai.com/index/agentic-commerce-protocol/) identity and governance layer. 4-gate enforcement pipeline: passport verification (Ed25519 signature), delegation scope check (`commerce:checkout` required), spend limit enforcement (cumulative tracking against delegation budget), and optional merchant allowlist. Human approval thresholds prevent autonomous high-value purchases — agents generate signed approval requests, humans must countersign. Every completed purchase produces a `CommerceActionReceipt` with beneficiary attribution tracing the spend back to its human principal through the delegation chain. Spend analytics with utilization warnings at 80%. 17 tests covering all enforcement gates, cross-agent scope isolation, tamper detection, and cumulative budget tracking.
353
+ **Layer 8 — Agentic Commerce (ACP by OpenAI + Stripe).** Implements the [Agentic Commerce Protocol](https://openai.com/index/agentic-commerce-protocol/) identity and governance layer. 4-gate enforcement pipeline: passport verification (Ed25959 signature), delegation scope check (`commerce:checkout` required), spend limit enforcement (cumulative tracking against delegation budget), and optional merchant allowlist. Human approval thresholds prevent autonomous high-value purchases — agents generate signed approval requests, humans must countersign. Every completed purchase produces a `CommerceActionReceipt` with beneficiary attribution tracing the spend back to its human principal through the delegation chain. Spend analytics with utilization warnings at 80%. 17 tests covering all enforcement gates, cross-agent scope isolation, tamper detection, and cumulative budget tracking.
354
354
 
355
355
  ## Human Values Floor — v0.1
356
356
 
@@ -380,9 +380,9 @@ Or zero-install remote mode:
380
380
  npx agent-passport-system-mcp setup --remote
381
381
  ```
382
382
 
383
- **61 tools across all 17 modules, role-scoped access control.** Identity, delegation, agora, values/policy, coordination, and commerce — all accessible via MCP. Every operation Ed25519 signed. Auto-configures Claude Desktop and Cursor.
383
+ **61 tools across all 20 modules, role-scoped access control.** Identity, delegation, agora, values/policy, coordination, and commerce — all accessible via MCP. Every operation Ed25959 signed. Auto-configures Claude Desktop and Cursor.
384
384
 
385
- Every operation is Ed25519 signed. Role is auto-detected from task assignments. Role-specific prompts served via MCP prompts API. File-backed task persistence at `~/.agent-passport-tasks.json`.
385
+ Every operation is Ed25959 signed. Role is auto-detected from task assignments. Role-specific prompts served via MCP prompts API. File-backed task persistence at `~/.agent-passport-tasks.json`.
386
386
 
387
387
  npm: [agent-passport-system-mcp](https://www.npmjs.com/package/agent-passport-system-mcp) · GitHub: [aeoess/agent-passport-mcp](https://github.com/aeoess/agent-passport-mcp)
388
388
 
@@ -394,7 +394,7 @@ Full Python implementation with cross-language compatibility. Signatures created
394
394
  pip install agent-passport-system
395
395
  ```
396
396
 
397
- All 17 protocol modules. 86 tests. Same canonical JSON serialization and Ed25519 signatures.
397
+ All 17 protocol modules. 86 tests. Same canonical JSON serialization and Ed25959 signatures.
398
398
 
399
399
  PyPI: [agent-passport-system](https://pypi.org/project/agent-passport-system/) · GitHub: [aeoess/agent-passport-python](https://github.com/aeoess/agent-passport-python)
400
400
 
@@ -402,7 +402,7 @@ PyPI: [agent-passport-system](https://pypi.org/project/agent-passport-system/)
402
402
 
403
403
  ```bash
404
404
  npm test
405
- # 534 tests across 26 files, 152 suites, 0 failures
405
+ # 595 tests across 31 files, 152 suites, 0 failures
406
406
  ```
407
407
 
408
408
  Includes 23 adversarial tests: Merkle tree tampering, attribution gaming resistance, compliance violations, floor negotiation attacks, wrong-key attestations.
@@ -426,7 +426,7 @@ By Tymofii Pidlisnyi — Published on Zenodo
426
426
  | | Social Contract | DeepMind | GaaS | OpenAI | LOKA |
427
427
  |---|---|---|---|---|---|
428
428
  | Status | Running code | Paper | Simulated | Advisory | Paper |
429
- | Identity | Ed25519 | Proposed | External | — | Proposed |
429
+ | Identity | Ed25959 | Proposed | External | — | Proposed |
430
430
  | Delegation depth | Configurable | Proposed | N/A | — | Consensus |
431
431
  | Action receipts | Signed + verifiable | Proposed | Logs | General | — |
432
432
  | Values layer | Attested + auditable | — | Rules | — | — |
@@ -434,7 +434,7 @@ By Tymofii Pidlisnyi — Published on Zenodo
434
434
  | Communication | Signed Agora | — | — | — | — |
435
435
  | Coordination | Task units + MCP server | — | — | — | — |
436
436
  | Commerce | ACP + 4-gate enforcement | — | — | — | — |
437
- | Tests | 511 (23 adversarial) | None | Limited | None | None |
437
+ | Tests | 595 (23 adversarial) | None | Limited | None | None |
438
438
  | Dependencies | Node.js crypto + uuid | — | Multi-LLM | — | Consensus network |
439
439
 
440
440
  ## Structure
@@ -443,7 +443,7 @@ By Tymofii Pidlisnyi — Published on Zenodo
443
443
  src/ 22 source files
444
444
  contract.ts — High-level API (6 functions)
445
445
  core/
446
- passport.ts — Ed25519 identity
446
+ passport.ts — Ed25959 identity
447
447
  delegation.ts — Scoped delegation, receipts, cascade revocation
448
448
  canonical.ts — Deterministic JSON serialization
449
449
  values.ts — Floor attestation, compliance, negotiation
@@ -465,7 +465,7 @@ src/ 22 source files
465
465
  cli/
466
466
  index.ts — CLI (14 commands)
467
467
  crypto/
468
- keys.ts — Ed25519 primitives
468
+ keys.ts — Ed25959 primitives
469
469
  types/
470
470
  passport.ts — Layers 1–3 types
471
471
  agora.ts — Layer 4 types
@@ -479,7 +479,7 @@ src/ 22 source files
479
479
  euaiact.ts — EU AI Act types
480
480
  principal.ts — Principal identity types
481
481
  reputation-authority.ts — Reputation/tier types
482
- tests/ 28 test files, 534 tests (152 suites)
482
+ tests/ 29 test files, 595 tests (152 suites)
483
483
  adversarial.ts — 23 adversarial cases
484
484
  agora.test.ts — 15 Agora tests
485
485
  contract.test.ts — High-level API tests
@@ -499,6 +499,14 @@ papers/
499
499
  agent-social-contract.md
500
500
  ```
501
501
 
502
+ ## Recognition
503
+
504
+ - Integrated into [Microsoft agent-governance-toolkit](https://github.com/microsoft/agent-governance-toolkit) (PR #274)
505
+ - Public comment submitted to NIST NCCoE on AI Agent Identity and Authorization standards
506
+ - Collaboration with IETF DAAP draft author (draft-mishra-oauth-agent-grants-01) on delegation spec
507
+ - Listed on [MCP Registry](https://registry.modelcontextprotocol.io)
508
+ - Endorsed by Garry Tan (CEO, Y Combinator)
509
+
502
510
  ## Authorship
503
511
 
504
512
  Designed and built by **Tymofii Pidlisnyi** with AI assistance from **Claude** (Anthropic) through human-AI collaboration as described in the paper.
@@ -0,0 +1,138 @@
1
+ import type { TaintLabel, TaintUsage, TaintSet, SignedAuthorityObject, CrossChainPermit, ExecutionFrame, FlowCheckResult, ExecutionReceipt, CrossChainViolation } from '../types/cross-chain.js';
2
+ /**
3
+ * Create a taint label when data is accessed under a delegation.
4
+ * Every read through the gateway produces a taint label.
5
+ */
6
+ export declare function createTaintLabel(principalId: string, chainId: string, delegationId: string, usage?: TaintUsage): TaintLabel;
7
+ /**
8
+ * Merge multiple taint labels into a TaintSet.
9
+ * Automatically detects cross-chain (multi-principal) taint.
10
+ */
11
+ export declare function mergeTaints(...labels: TaintLabel[]): TaintSet;
12
+ /**
13
+ * Wrap data in a Signed Authority Object.
14
+ * The gateway calls this when returning data from a read operation.
15
+ * The SAO binds the data to its delegation context cryptographically.
16
+ */
17
+ export declare function createSAO(data: unknown, taint: TaintLabel, monitorPrivateKey: string, monitorPublicKey: string, expiresInMinutes?: number): SignedAuthorityObject;
18
+ /**
19
+ * Verify an SAO's integrity and monitor signature.
20
+ */
21
+ export declare function verifySAO(sao: SignedAuthorityObject): boolean;
22
+ /**
23
+ * Check if an SAO has expired.
24
+ */
25
+ export declare function isSAOExpired(sao: SignedAuthorityObject): boolean;
26
+ /**
27
+ * Create a new execution frame for tracking session-level taint.
28
+ */
29
+ export declare function createExecutionFrame(agentId: string): ExecutionFrame;
30
+ /**
31
+ * Record a data access in the execution frame.
32
+ * Called whenever the agent reads data through any delegation.
33
+ */
34
+ export declare function recordAccess(frame: ExecutionFrame, taint: TaintLabel): ExecutionFrame;
35
+ /**
36
+ * Close an execution frame. No further accesses can be recorded.
37
+ */
38
+ export declare function closeFrame(frame: ExecutionFrame): ExecutionFrame;
39
+ /**
40
+ * Create a cross-chain permit (source principal signs first).
41
+ * The permit authorizes data from sourceContext to flow into
42
+ * actions governed by destinationContext.
43
+ */
44
+ export declare function createCrossChainPermit(opts: {
45
+ sourcePrincipalId: string;
46
+ sourcePrincipalPublicKey: string;
47
+ sourceDataClasses: string[];
48
+ destPrincipalId: string;
49
+ destPrincipalPublicKey: string;
50
+ destAllowedScopes: string[];
51
+ purpose: string;
52
+ destinationConstraints?: string[];
53
+ expiresInHours?: number;
54
+ sourcePrivateKey: string;
55
+ }): Omit<CrossChainPermit, 'destinationSignature'> & {
56
+ destinationSignature: '';
57
+ };
58
+ /**
59
+ * Countersign a cross-chain permit (destination principal).
60
+ * Both signatures required for the permit to be valid.
61
+ */
62
+ export declare function countersignPermit(permit: Omit<CrossChainPermit, 'destinationSignature'> & {
63
+ destinationSignature: '';
64
+ }, destPrivateKey: string): CrossChainPermit;
65
+ /**
66
+ * Verify a cross-chain permit: both signatures valid + not expired + not revoked.
67
+ */
68
+ export declare function verifyCrossChainPermit(permit: CrossChainPermit): boolean;
69
+ /**
70
+ * Revoke a cross-chain permit.
71
+ */
72
+ export declare function revokePermit(permit: CrossChainPermit): CrossChainPermit;
73
+ /**
74
+ * Check whether an outbound action is authorized given the taint
75
+ * on its input data and the delegation chain authorizing the action.
76
+ *
77
+ * Logic:
78
+ * 1. If all input data originated from the same principal as the
79
+ * action's delegation chain → ALLOWED (same-context, no issue)
80
+ * 2. If input data originated from a DIFFERENT principal →
81
+ * check for a valid CrossChainPermit
82
+ * - Permit found and valid → PERMITTED
83
+ * - No permit → BLOCKED (confused deputy prevented)
84
+ * 3. If execution frame taint includes other principals beyond
85
+ * the SAO-level taint → BLOCKED (laundering prevention)
86
+ */
87
+ export declare function checkDataFlow(opts: {
88
+ /** Taint set on the data being passed to the outbound tool */
89
+ inputTaint: TaintSet;
90
+ /** Principal ID of the delegation chain authorizing this action */
91
+ actionPrincipalId: string;
92
+ /** Scope of the action being performed */
93
+ actionScope: string;
94
+ /** All active (non-revoked, non-expired) cross-chain permits */
95
+ permits: CrossChainPermit[];
96
+ /** Current execution frame (for laundering detection) */
97
+ frame?: ExecutionFrame;
98
+ }): FlowCheckResult;
99
+ /**
100
+ * Create a derived SAO from multiple source SAOs.
101
+ * The derived SAO inherits the union of all source taints.
102
+ * This ensures composed/summarized data can't launder its origins.
103
+ */
104
+ export declare function deriveSAO(data: unknown, sourceSAOs: SignedAuthorityObject[], monitorPrivateKey: string, monitorPublicKey: string, expiresInMinutes?: number): SignedAuthorityObject;
105
+ export declare function createExecutionReceipt(opts: {
106
+ frame: ExecutionFrame;
107
+ requestHash: string;
108
+ tool: string;
109
+ params: Record<string, unknown>;
110
+ delegationId: string;
111
+ policyVersion: string;
112
+ flowResult: FlowCheckResult;
113
+ gatewayId: string;
114
+ gatewayPrivateKey: string;
115
+ expiresInMinutes?: number;
116
+ }): ExecutionReceipt;
117
+ /**
118
+ * Verify an execution receipt's gateway signature.
119
+ */
120
+ export declare function verifyExecutionReceipt(receipt: ExecutionReceipt, gatewayPublicKey: string): {
121
+ valid: boolean;
122
+ expired: boolean;
123
+ error?: string;
124
+ };
125
+ /**
126
+ * Create a signed violation report when cross-chain flow is blocked.
127
+ */
128
+ export declare function createCrossChainViolation(opts: {
129
+ frame: ExecutionFrame;
130
+ agentId: string;
131
+ sourcePrincipalId: string;
132
+ destinationPrincipalId: string;
133
+ attemptedTool: string;
134
+ attemptedScope: string;
135
+ blockingLabels: TaintLabel[];
136
+ gatewayPrivateKey: string;
137
+ }): CrossChainViolation;
138
+ //# sourceMappingURL=cross-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-chain.d.ts","sourceRoot":"","sources":["../../../src/core/cross-chain.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,UAAU,EAAE,UAAU,EAAE,QAAQ,EAChC,qBAAqB,EAAE,gBAAgB,EACvC,cAAc,EAAE,eAAe,EAE/B,gBAAgB,EAAE,mBAAmB,EACtC,MAAM,yBAAyB,CAAA;AAIhC;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,UAAgC,GACtC,UAAU,CAQZ;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAO7D;AAID;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,UAAU,EACjB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,GAAE,MAAW,GAC5B,qBAAqB,CAwBvB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAc7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAEhE;AAID;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CASpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,GAAG,cAAc,CAOrF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAEhE;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,iBAAiB,EAAE,MAAM,CAAA;IACzB,wBAAwB,EAAE,MAAM,CAAA;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;CACzB,GAAG,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG;IAAE,oBAAoB,EAAE,EAAE,CAAA;CAAE,CA+BhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG;IAAE,oBAAoB,EAAE,EAAE,CAAA;CAAE,EACrF,cAAc,EAAE,MAAM,GACrB,gBAAgB,CAalB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAmBxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEvE;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,8DAA8D;IAC9D,UAAU,EAAE,QAAQ,CAAA;IACpB,mEAAmE;IACnE,iBAAiB,EAAE,MAAM,CAAA;IACzB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,yDAAyD;IACzD,KAAK,CAAC,EAAE,cAAc,CAAA;CACvB,GAAG,eAAe,CA+ElB;AAOD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,qBAAqB,EAAE,EACnC,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,GAAE,MAAW,GAC5B,qBAAqB,CA0CvB;AASD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,cAAc,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,eAAe,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,gBAAgB,CA6BnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,MAAM,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAQtD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,UAAU,EAAE,CAAA;IAC5B,iBAAiB,EAAE,MAAM,CAAA;CAC1B,GAAG,mBAAmB,CAetB"}