@cello-protocol/client 0.0.21 → 0.0.23

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 (57) hide show
  1. package/dist/client-send-helpers.d.ts +25 -0
  2. package/dist/client-send-helpers.d.ts.map +1 -0
  3. package/dist/client-send-helpers.js +118 -0
  4. package/dist/client-send-helpers.js.map +1 -0
  5. package/dist/client-startup.d.ts +74 -0
  6. package/dist/client-startup.d.ts.map +1 -0
  7. package/dist/client-startup.js +338 -0
  8. package/dist/client-startup.js.map +1 -0
  9. package/dist/client-wiring.d.ts +120 -0
  10. package/dist/client-wiring.d.ts.map +1 -0
  11. package/dist/client-wiring.js +289 -0
  12. package/dist/client-wiring.js.map +1 -0
  13. package/dist/client.d.ts +29 -169
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +222 -5396
  16. package/dist/client.js.map +1 -1
  17. package/dist/connection-inbound-handler.d.ts +47 -0
  18. package/dist/connection-inbound-handler.d.ts.map +1 -0
  19. package/dist/connection-inbound-handler.js +325 -0
  20. package/dist/connection-inbound-handler.js.map +1 -0
  21. package/dist/connection-manager.d.ts +191 -0
  22. package/dist/connection-manager.d.ts.map +1 -0
  23. package/dist/connection-manager.js +692 -0
  24. package/dist/connection-manager.js.map +1 -0
  25. package/dist/frame-dispatch.d.ts +28 -0
  26. package/dist/frame-dispatch.d.ts.map +1 -0
  27. package/dist/frame-dispatch.js +118 -0
  28. package/dist/frame-dispatch.js.map +1 -0
  29. package/dist/network-directory-node.d.ts +2 -0
  30. package/dist/network-directory-node.d.ts.map +1 -1
  31. package/dist/network-directory-node.js +24 -16
  32. package/dist/network-directory-node.js.map +1 -1
  33. package/dist/registration-manager.d.ts +54 -0
  34. package/dist/registration-manager.d.ts.map +1 -0
  35. package/dist/registration-manager.js +249 -0
  36. package/dist/registration-manager.js.map +1 -0
  37. package/dist/relay-stream-manager.d.ts +136 -0
  38. package/dist/relay-stream-manager.d.ts.map +1 -0
  39. package/dist/relay-stream-manager.js +834 -0
  40. package/dist/relay-stream-manager.js.map +1 -0
  41. package/dist/seal-manager.d.ts +133 -0
  42. package/dist/seal-manager.d.ts.map +1 -0
  43. package/dist/seal-manager.js +803 -0
  44. package/dist/seal-manager.js.map +1 -0
  45. package/dist/session-assignment-parser.d.ts +33 -0
  46. package/dist/session-assignment-parser.d.ts.map +1 -0
  47. package/dist/session-assignment-parser.js +149 -0
  48. package/dist/session-assignment-parser.js.map +1 -0
  49. package/dist/session-manager.d.ts +132 -0
  50. package/dist/session-manager.d.ts.map +1 -0
  51. package/dist/session-manager.js +611 -0
  52. package/dist/session-manager.js.map +1 -0
  53. package/dist/signaling-manager.d.ts +85 -0
  54. package/dist/signaling-manager.d.ts.map +1 -0
  55. package/dist/signaling-manager.js +605 -0
  56. package/dist/signaling-manager.js.map +1 -0
  57. package/package.json +2 -2
package/dist/client.d.ts CHANGED
@@ -1,110 +1,8 @@
1
1
  /**
2
- * CELLO Client — client.ts (MSG-002, SESSION-002)
3
- *
4
- * CelloClientImpl: peer registry, send path, inbound stream handler,
5
- * and receive queue for the M0 one-shot message exchange protocol.
6
- * SESSION-002 additions: receiveSessionAssignment, listSessions.
7
- *
8
- * PSEUDOCODE (Phase P):
9
- *
10
- * send(peerPubkeyHex, content):
11
- * 1. Look up peerPubkeyHex → peer_not_connected if absent
12
- * 2. buildEnvelope(content, keyProvider, Date.now()) → content_too_large if rejected
13
- * 3. serializeEnvelope → bytes
14
- * 4. node.newStream(peerId, CELLO_PROTOCOL_ID):
15
- * - structured error → peer_unreachable or connection_lost
16
- * 5. stream.send(lp.encode.single(bytes))
17
- * 6. stream.close() — half-close write side
18
- * 7. Drain read side (for await lp.decode(stream)):
19
- * - clean EOF → delivered:true
20
- * - stream.status === 'reset' → remote_rejected
21
- * - transport error → connection_lost
22
- *
23
- * inbound handler (stream):
24
- * 1. AbortController with 5s timeout
25
- * 2. Read one LP frame via lp.decode(stream) — abort if timeout fires
26
- * 3. deserializeEnvelope(payload) → malformed_envelope + stream.abort on error
27
- * 4. validateEnvelope(envelope) → stream.abort on error
28
- * 5. enqueue to receiveQueue keyed by sender_pubkey hex
29
- * 6. stream.close() — clean close signals delivered:true to sender
30
- *
31
- * sendRaw(peerPubkeyHex, bytes) [internal, exposed for tests]:
32
- * Open stream, write raw bytes as single LP frame, await close type.
33
- * Used by tests to inject tampered envelopes.
34
- *
35
- * receiveSessionAssignment(assignment, myPubkey):
36
- * SESSION-002 AC-002, AC-003, AC-004, AC-005, SI-003
37
- * SESSION-004 changes: replace M1 Ed25519 verify with FROST verify path.
38
- *
39
- * SESSION-004 pseudocode (Phase P rev2):
40
- * RFC 9591 (FROST), RFC 8032 (Ed25519), FIPS 180-4 (SHA-256)
41
- *
42
- * 1. Check signature_type (SESSION-004 SI-003, AC-003):
43
- * if assignment.signature_type === 'single':
44
- * return { ok:false, reason:"unsupported_signature_type" }
45
- * // Hard cut — even if the single-key sig itself verifies (SI-003 is absolute)
46
- * // No session record is created (SI-003). No I/O is attempted.
47
- *
48
- * 2. Determine role and verification key (SESSION-004 AC-007):
49
- * isInitiator = (Buffer.from(myPubkey).equals(Buffer.from(pubA)))
50
- * if isInitiator:
51
- * // CRITICAL-1 FIX: initiator MUST have a thresholdSigner injected.
52
- * // There is NO fallback to assignment.signer_pubkey — that is frame-provided
53
- * // and attacker-controlled. Absence of a signer is a hard error.
54
- * if this.#thresholdSigner is null:
55
- * return { ok:false, reason:"frost_signer_not_configured" }
56
- * verifyKey = this.#thresholdSigner.getPrimaryPubkey() // HIGH-4: on IThresholdSigner
57
- * else:
58
- * // Counterparty: use signer_pubkey embedded in the frame (A's primary_pubkey)
59
- * // TypeScript discriminated union guarantees signer_pubkey is present for 'frost' frames
60
- * verifyKey = assignment.signer_pubkey // guaranteed non-undefined by type system
61
- *
62
- * 3. Compute genesis_prev_root (same as M1):
63
- * genesis_prev_root = computeGenesisPrevRoot(pubA, pubB, session_id, session_timestamp)
64
- *
65
- * 4. Build session establishment TBS (HIGH-5: uses buildSessionEstablishmentTbs from protocol-types):
66
- * tbs = buildSessionEstablishmentTbs(session_id, pubA, pubB, genesis_prev_root, session_timestamp)
67
- *
68
- * 5. Verify FROST signature (SESSION-004 AC-002, SI-001):
69
- * // Use FrostThresholdSigner.verifySignature() which handles framing internally:
70
- * // framedMsg = <context>\0<tbs> (domain separation per CONTEXT.md)
71
- * // OR use ed25519_FROST.verify(sig, frameMessage(context, tbs), verifyKey) directly
72
- * // The client imports ed25519_FROST from @noble/curves/ed25519 (not from @cello-protocol/crypto)
73
- * // to keep the verify path independent from any signer state.
74
- * framedMsg = frameMessage(CONTEXT_SESSION_ESTABLISHMENT, tbs) // context\0tbs
75
- * isValid = ed25519_FROST.verify(assignment.directory_signature, framedMsg, verifyKey)
76
- * if !isValid:
77
- * return { ok:false, reason:"frost_signature_invalid" }
78
- * // Never accept a tampered signature (SI-001 absolute)
79
- *
80
- * 6-9. (same as M1: content handler, relay auth, counterparty dial, store session)
81
- *
82
- * IMPORTANT NOTE on CelloClientImpl constructor and createClient factory changes:
83
- * - Add optional #thresholdSigner: IThresholdSigner | null field
84
- * - createClient accepts optional thresholdSigner in opts
85
- * - No @cello-protocol/directory import — IThresholdSigner comes from @cello-protocol/crypto
86
- *
87
- * IMPORTANT NOTE on ReceiveAssignmentResult (IMPORTANT-9):
88
- * Add 'frost_signature_invalid' | 'unsupported_signature_type' | 'frost_signer_not_configured'
89
- * to the reason union in types.ts
90
- *
91
- * 1. Build TBS = CBOR([session_id, participant_a.pubkey, participant_b.pubkey, session_timestamp])
92
- * 2. Verify Ed25519(TBS, assignment.directory_pubkey, assignment.directory_signature) [M1, REMOVED in M2]
93
- * → { ok:false, reason:"directory_signature_invalid" } if fails
94
- * 3. Determine counterparty: if myPubkey == participant_a.pubkey then counterparty = B, else A
95
- * 4. Compute genesis_prev_root = computeGenesisPrevRoot(pubA, pubB, session_id, session_timestamp)
96
- * per FIPS 180-4 / SESSION-002
97
- * 5. Register /cello/content/1.0.0 handler on node (if not yet registered)
98
- * 6. Dial relay on /cello/relay/1.0.0, complete challenge-response auth:
99
- * a. Read relay_auth_challenge frame
100
- * b. Compute authMsg = SHA-256("CELLO-RELAY-AUTH-v1" || nonce || myPubkey) [RFC 8032, FIPS 180-4]
101
- * c. Sign authMsg with keyProvider → signature
102
- * d. Send relay_auth_response{pubkey, signature}
103
- * → { ok:false, reason:"relay_auth_failed" } or "relay_auth_error" on failure
104
- * 7. Dial counterparty on /cello/content/1.0.0
105
- * → { ok:false, reason:"dial_counterparty_failed" } if unreachable
106
- * 8. Store SessionRecord with status:"active", last_seen_seq:0
107
- * 9. Return { ok:true, sessionId }
2
+ * CELLO Client — CelloClientImpl facade.
3
+ * Domain logic delegated to RegistrationManager, ConnectionManager, SignalingManager,
4
+ * RelayStreamManager, SealManager, SessionManager.
5
+ * Wiring: client-wiring.ts | Helpers: client-send-helpers.ts, client-startup.ts.
108
6
  */
109
7
  import type { IThresholdSigner } from "@cello-protocol/crypto";
110
8
  import type { KeyProvider } from "@cello-protocol/crypto";
@@ -113,64 +11,20 @@ import type { Stream } from "@libp2p/interface";
113
11
  import type { CelloClient, SendResult, SessionRecord } from "./types.js";
114
12
  import type { Logger } from "@cello-protocol/interfaces";
115
13
  import type { ClientStatePersistence } from "./client-state-persistence.js";
116
- /**
117
- * Map a raw decoded session_request_error frame to an InitiateSessionResult.
118
- * Exported for direct unit testing (AC-005, AC-006).
119
- * The frame must have type === "session_request_error".
120
- */
121
- export declare function mapSessionRequestErrorFrame(frame: Record<string, unknown>): import("./types.js").InitiateSessionResult;
122
- export declare function createClient(node: CelloNode, keyProvider: KeyProvider, opts?: {
123
- onMessageQueued?: (senderPubkeyHex: string) => void;
124
- contentGraceMs?: number;
125
- /** SESSION-006: ms to attempt relay reconnect before giving up. Default: 60000. */
126
- reconnectTimeoutMs?: number;
127
- /** SESSION-004/SESSION-005: optional FROST threshold signer for initiator role and seal ceremony coordination. */
128
- thresholdSigner?: IThresholdSigner;
129
- /** SESSION-005: ms to wait for FROST seal after bilateral exchange. Default: 15000. */
130
- sealFrostTimeoutMs?: number;
131
- /** ADAPTER-003: directory endpoint for initiateSession. */
132
- directoryEndpoint?: {
133
- peer_id: string;
134
- multiaddrs: string[];
135
- };
136
- /** REG-001: path for persisting ML-DSA-44 keypair. If set, FileMlDsaKeyProvider.load() is used. */
137
- mlDsaKeyFile?: string;
138
- /** CONNREQ-002: connection policy for evaluating inbound connection_request_inbound frames. */
139
- connectionPolicy?: import("./connection-policy.js").SignalRequirementPolicy;
140
- /** CONNREQ-002: overall connection timeout in ms. Default: 300000. */
141
- connectionTimeoutMs?: number;
142
- /** CONNREQ-002: Round 2 silence timeout in ms. Default: 120000. */
143
- round2TimeoutMs?: number;
144
- /** CONNREQ-002: if true, expose _evaluateCallCount on the instance for test assertions. */
145
- trackEvaluateCount?: boolean;
146
- /** CONNREQ-002: sender pubkeys that bypass evaluateConnectionPackage. */
147
- whitelist?: string[];
148
- /** CONNREQ-002: callback fired when an inbound connection_request_inbound is queued for agent review. */
149
- onConnectionPendingReview?: (event: import("@cello-protocol/protocol-types").ConnectionRequestInbound) => void;
150
- /** DB-003: attempt cross-check of sender's ml_dsa_pubkey on inbound requests. */
151
- crossCheckDirectoryOnInbound?: boolean;
152
- /** PERSIST-014: injected logger for observability events. */
153
- logger?: Logger;
154
- /** PERSIST-024: optional persistence layer for structured SQLCipher state. */
155
- persistence?: ClientStatePersistence;
156
- }): CelloClient & {
14
+ import { mapSessionRequestErrorFrame } from "./session-assignment-parser.js";
15
+ /** Full public surface exposed by createClient CelloClient + test/escape-hatch methods. */
16
+ export type ClientExtended = CelloClient & {
157
17
  sendRaw(peerPubkeyHex: string, bytes: Uint8Array): Promise<SendResult>;
158
18
  openRawStream(peerPubkeyHex: string): Promise<Stream>;
159
19
  openContentStreamByPeerId(peerId: string): Promise<Stream>;
160
- /** SESSION-005: register the client's FROST primary_pubkey for seal verification. */
161
20
  setPrimaryPubkey(primaryPubkey: Uint8Array): void;
162
21
  injectDirectoryFrame(sessionIdHex: string, frame: Record<string, unknown>): void;
163
22
  injectLeafDeliver(sessionIdHex: string, frame: Record<string, unknown>): void;
164
23
  injectRelayDisconnect(sessionIdHex: string): void;
165
- /** TEST-ONLY: register a minimal session record without a real relay connection. */
166
24
  injectTestSession(sessionIdHex: string, sessionId: Uint8Array, myPubkeyHex: string, directoryPubkey: Uint8Array, status?: SessionRecord["status"], opts?: {
167
25
  isInitiator?: boolean;
168
26
  }): void;
169
- /** CONNREQ-002: list active connection records. */
170
27
  listConnections(): import("@cello-protocol/protocol-types").ClientConnectionRecord[];
171
- /** CONNREQ-002 / AC-008 (DX-001): send connection_request to target B and await final outcome.
172
- * Per-stage timeouts: dialTimeoutMs (stage 'dial'), sendTimeoutMs (stage 'send'),
173
- * waitTimeoutMs (stage 'wait'). Timeout result includes the stage that fired. */
174
28
  cello_request_connection(opts: {
175
29
  target_pubkey: string;
176
30
  package_cbor: Uint8Array;
@@ -197,7 +51,6 @@ export declare function createClient(node: CelloNode, keyProvider: KeyProvider,
197
51
  result: "error";
198
52
  reason: string;
199
53
  }>;
200
- /** CONNREQ-002: respond to disclosure_request (Round 2 sender side). */
201
54
  cello_respond_to_disclosure_request(opts: {
202
55
  connection_request_id: string;
203
56
  package_cbor: Uint8Array;
@@ -216,7 +69,6 @@ export declare function createClient(node: CelloNode, keyProvider: KeyProvider,
216
69
  result: "error";
217
70
  reason: string;
218
71
  }>;
219
- /** CONNREQ-002: request more disclosure from sender (Round 2, target side). */
220
72
  cello_request_more_disclosure(opts: {
221
73
  connection_request_id: string;
222
74
  requested_items: unknown[];
@@ -225,13 +77,9 @@ export declare function createClient(node: CelloNode, keyProvider: KeyProvider,
225
77
  } | {
226
78
  ok: true;
227
79
  }>;
228
- /** CONNREQ-002: register connection_established event handler. */
229
80
  onConnectionEstablished(handler: (event: import("@cello-protocol/protocol-types").ConnectionEstablished) => void): void;
230
- /** CONNREQ-002: register disclosure_request_inbound event handler (sender side). */
231
81
  onDisclosureRequested(handler: (event: import("@cello-protocol/protocol-types").DisclosureRequestInbound) => void): void;
232
- /** CONNREQ-002: reconnect the persistent directory signaling stream. */
233
82
  reconnectDirectory(): Promise<boolean>;
234
- /** PERSIST-015: send seal_unilateral to directory after delivery_grace_seconds. */
235
83
  initiateUnilateralSeal(sessionIdHex: string): Promise<{
236
84
  ok: true;
237
85
  sealed_root: Uint8Array;
@@ -244,31 +92,43 @@ export declare function createClient(node: CelloNode, keyProvider: KeyProvider,
244
92
  ok: false;
245
93
  reason: string;
246
94
  }>;
247
- /** TEST-ONLY: inject a pending inbound connection request into state. */
248
95
  _injectPendingConnectionRequest(opts: {
249
96
  connection_request_id: string;
250
97
  from_pubkey: string;
251
98
  package_cbor: Uint8Array;
252
99
  round: number;
253
100
  }): void;
254
- /**
255
- * CONNREQ-003 TEST-ONLY: route a synthetic connection outcome frame through the
256
- * resolver Map — used by SI-001 adversarial test to verify cross-target isolation.
257
- */
258
101
  _injectConnectionFrame(frame: Record<string, unknown>): void;
259
- /** CONNREQ-003 TEST-ONLY: current size of the pending resolver Map. */
260
102
  _pendingConnectionRequestResolverCount: number;
261
- /** TEST-ONLY: evaluate call counter (only incremented when trackEvaluateCount=true). */
262
103
  _evaluateCallCount: number;
263
- /** PERSIST-024: load all durable state from the SQLCipher DB and populate in-memory state. */
264
104
  loadPersistedState(): Promise<void>;
265
- /** PERSIST-024: return hashes pending relay resubmission after loadPersistedState(). */
266
105
  getLoadedPendingHashes(): Array<{
267
106
  sessionId: string;
268
107
  hashHex: string;
269
108
  enqueuedAt: number;
270
109
  }>;
271
- /** Open the persistent signaling stream to the directory if not already open. Call after setDirectoryEndpoint(). */
272
110
  announceToDirectory(): Promise<void>;
273
111
  };
112
+ export { mapSessionRequestErrorFrame };
113
+ export declare function createClient(node: CelloNode, keyProvider: KeyProvider, opts?: {
114
+ onMessageQueued?: (senderPubkeyHex: string) => void;
115
+ contentGraceMs?: number;
116
+ reconnectTimeoutMs?: number;
117
+ thresholdSigner?: IThresholdSigner;
118
+ sealFrostTimeoutMs?: number;
119
+ directoryEndpoint?: {
120
+ peer_id: string;
121
+ multiaddrs: string[];
122
+ };
123
+ mlDsaKeyFile?: string;
124
+ connectionPolicy?: import("./connection-policy.js").SignalRequirementPolicy;
125
+ connectionTimeoutMs?: number;
126
+ round2TimeoutMs?: number;
127
+ trackEvaluateCount?: boolean;
128
+ whitelist?: string[];
129
+ onConnectionPendingReview?: (event: import("@cello-protocol/protocol-types").ConnectionRequestInbound) => void;
130
+ crossCheckDirectoryOnInbound?: boolean;
131
+ logger?: Logger;
132
+ persistence?: ClientStatePersistence;
133
+ }): ClientExtended;
274
134
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EACV,WAAW,EAA+B,UAAU,EAAE,aAAa,EAGpE,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAS5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAmB7E,6FAA6F;AAC7F,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvE,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,gBAAgB,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjF,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9E,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,iBAAiB,CACf,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,UAAU,EAC3B,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,EAChC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,IAAI,CAAC;IACR,eAAe,IAAI,OAAO,gCAAgC,EAAE,sBAAsB,EAAE,CAAC;IACrF,wBAAwB,CAAC,IAAI,EAAE;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,UAAU,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CACP;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAChD;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtC;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,kBAAkB,EAAE,OAAO,EAAE,CAAA;KAAE,GACzD;QAAE,MAAM,EAAE,sBAAsB,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,EAAE,CAAA;KAAE,GAC7F;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,GACtD;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CACtC,CAAC;IACF,mCAAmC,CAAC,IAAI,EAAE;QACxC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,YAAY,EAAE,UAAU,CAAC;KAC1B,GAAG,OAAO,CACP;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAChD;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACtC;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,kBAAkB,EAAE,OAAO,EAAE,CAAA;KAAE,GACzD;QAAE,MAAM,EAAE,SAAS,CAAA;KAAE,GACrB;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CACtC,CAAC;IACF,6BAA6B,CAAC,IAAI,EAAE;QAClC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,eAAe,EAAE,OAAO,EAAE,CAAC;KAC5B,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,oBAAoB,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAC5D,uBAAuB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI,CAAC;IACxH,qBAAqB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,wBAAwB,KAAK,IAAI,GAAG,IAAI,CAAC;IACzH,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CACjD;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACxD;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAC7D;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAChC,CAAC;IACF,+BAA+B,CAAC,IAAI,EAAE;QACpC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,UAAU,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,IAAI,CAAC;IACT,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,sCAAsC,EAAE,MAAM,CAAC;IAC/C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,sBAAsB,IAAI,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AA0bF,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAIvC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,WAAW,EACxB,IAAI,CAAC,EAAE;IACL,eAAe,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,wBAAwB,EAAE,uBAAuB,CAAC;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC/G,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,GACA,cAAc,CAUhB"}