@did-btcr2/method 0.27.0 → 0.29.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 (114) hide show
  1. package/README.md +38 -9
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/browser.js +20181 -31588
  4. package/dist/browser.mjs +20110 -31517
  5. package/dist/cjs/index.js +1355 -422
  6. package/dist/esm/core/aggregation/beacon-strategy.js +62 -0
  7. package/dist/esm/core/aggregation/beacon-strategy.js.map +1 -0
  8. package/dist/esm/core/aggregation/cohort.js +31 -8
  9. package/dist/esm/core/aggregation/cohort.js.map +1 -1
  10. package/dist/esm/core/aggregation/logger.js +15 -0
  11. package/dist/esm/core/aggregation/logger.js.map +1 -0
  12. package/dist/esm/core/aggregation/messages/base.js +12 -1
  13. package/dist/esm/core/aggregation/messages/base.js.map +1 -1
  14. package/dist/esm/core/aggregation/messages/bodies.js +90 -0
  15. package/dist/esm/core/aggregation/messages/bodies.js.map +1 -0
  16. package/dist/esm/core/aggregation/messages/factories.js.map +1 -1
  17. package/dist/esm/core/aggregation/messages/index.js +1 -0
  18. package/dist/esm/core/aggregation/messages/index.js.map +1 -1
  19. package/dist/esm/core/aggregation/participant.js +39 -46
  20. package/dist/esm/core/aggregation/participant.js.map +1 -1
  21. package/dist/esm/core/aggregation/runner/participant-runner.js +34 -4
  22. package/dist/esm/core/aggregation/runner/participant-runner.js.map +1 -1
  23. package/dist/esm/core/aggregation/runner/service-runner.js +198 -19
  24. package/dist/esm/core/aggregation/runner/service-runner.js.map +1 -1
  25. package/dist/esm/core/aggregation/service.js +143 -15
  26. package/dist/esm/core/aggregation/service.js.map +1 -1
  27. package/dist/esm/core/aggregation/signing-session.js +44 -5
  28. package/dist/esm/core/aggregation/signing-session.js.map +1 -1
  29. package/dist/esm/core/aggregation/transport/didcomm.js +9 -0
  30. package/dist/esm/core/aggregation/transport/didcomm.js.map +1 -1
  31. package/dist/esm/core/aggregation/transport/nostr.js +245 -16
  32. package/dist/esm/core/aggregation/transport/nostr.js.map +1 -1
  33. package/dist/esm/core/beacon/beacon.js +147 -61
  34. package/dist/esm/core/beacon/beacon.js.map +1 -1
  35. package/dist/esm/core/beacon/utils.js +14 -9
  36. package/dist/esm/core/beacon/utils.js.map +1 -1
  37. package/dist/esm/core/updater.js +269 -0
  38. package/dist/esm/core/updater.js.map +1 -0
  39. package/dist/esm/did-btcr2.js +30 -46
  40. package/dist/esm/did-btcr2.js.map +1 -1
  41. package/dist/esm/index.js +4 -1
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/utils/did-document.js +2 -2
  44. package/dist/esm/utils/did-document.js.map +1 -1
  45. package/dist/types/core/aggregation/beacon-strategy.d.ts +52 -0
  46. package/dist/types/core/aggregation/beacon-strategy.d.ts.map +1 -0
  47. package/dist/types/core/aggregation/cohort.d.ts +20 -3
  48. package/dist/types/core/aggregation/cohort.d.ts.map +1 -1
  49. package/dist/types/core/aggregation/logger.d.ts +22 -0
  50. package/dist/types/core/aggregation/logger.d.ts.map +1 -0
  51. package/dist/types/core/aggregation/messages/base.d.ts +13 -1
  52. package/dist/types/core/aggregation/messages/base.d.ts.map +1 -1
  53. package/dist/types/core/aggregation/messages/bodies.d.ts +130 -0
  54. package/dist/types/core/aggregation/messages/bodies.d.ts.map +1 -0
  55. package/dist/types/core/aggregation/messages/factories.d.ts +1 -0
  56. package/dist/types/core/aggregation/messages/factories.d.ts.map +1 -1
  57. package/dist/types/core/aggregation/messages/index.d.ts +1 -0
  58. package/dist/types/core/aggregation/messages/index.d.ts.map +1 -1
  59. package/dist/types/core/aggregation/participant.d.ts +2 -0
  60. package/dist/types/core/aggregation/participant.d.ts.map +1 -1
  61. package/dist/types/core/aggregation/runner/events.d.ts +32 -6
  62. package/dist/types/core/aggregation/runner/events.d.ts.map +1 -1
  63. package/dist/types/core/aggregation/runner/participant-runner.d.ts +8 -2
  64. package/dist/types/core/aggregation/runner/participant-runner.d.ts.map +1 -1
  65. package/dist/types/core/aggregation/runner/service-runner.d.ts +33 -3
  66. package/dist/types/core/aggregation/runner/service-runner.d.ts.map +1 -1
  67. package/dist/types/core/aggregation/service.d.ts +33 -2
  68. package/dist/types/core/aggregation/service.d.ts.map +1 -1
  69. package/dist/types/core/aggregation/signing-session.d.ts +5 -1
  70. package/dist/types/core/aggregation/signing-session.d.ts.map +1 -1
  71. package/dist/types/core/aggregation/transport/didcomm.d.ts +3 -0
  72. package/dist/types/core/aggregation/transport/didcomm.d.ts.map +1 -1
  73. package/dist/types/core/aggregation/transport/nostr.d.ts +99 -1
  74. package/dist/types/core/aggregation/transport/nostr.d.ts.map +1 -1
  75. package/dist/types/core/aggregation/transport/transport.d.ts +25 -0
  76. package/dist/types/core/aggregation/transport/transport.d.ts.map +1 -1
  77. package/dist/types/core/beacon/beacon.d.ts +85 -18
  78. package/dist/types/core/beacon/beacon.d.ts.map +1 -1
  79. package/dist/types/core/beacon/utils.d.ts +2 -2
  80. package/dist/types/core/beacon/utils.d.ts.map +1 -1
  81. package/dist/types/core/updater.d.ts +178 -0
  82. package/dist/types/core/updater.d.ts.map +1 -0
  83. package/dist/types/did-btcr2.d.ts +23 -23
  84. package/dist/types/did-btcr2.d.ts.map +1 -1
  85. package/dist/types/index.d.ts +4 -1
  86. package/dist/types/index.d.ts.map +1 -1
  87. package/package.json +4 -6
  88. package/src/core/aggregation/beacon-strategy.ts +123 -0
  89. package/src/core/aggregation/cohort.ts +34 -8
  90. package/src/core/aggregation/logger.ts +33 -0
  91. package/src/core/aggregation/messages/base.ts +20 -5
  92. package/src/core/aggregation/messages/bodies.ts +223 -0
  93. package/src/core/aggregation/messages/factories.ts +1 -0
  94. package/src/core/aggregation/messages/index.ts +1 -0
  95. package/src/core/aggregation/participant.ts +40 -46
  96. package/src/core/aggregation/runner/events.ts +27 -3
  97. package/src/core/aggregation/runner/participant-runner.ts +42 -4
  98. package/src/core/aggregation/runner/service-runner.ts +227 -19
  99. package/src/core/aggregation/service.ts +189 -20
  100. package/src/core/aggregation/signing-session.ts +65 -7
  101. package/src/core/aggregation/transport/didcomm.ts +17 -0
  102. package/src/core/aggregation/transport/nostr.ts +266 -23
  103. package/src/core/aggregation/transport/transport.ts +33 -0
  104. package/src/core/beacon/beacon.ts +217 -76
  105. package/src/core/beacon/utils.ts +16 -11
  106. package/src/core/updater.ts +415 -0
  107. package/src/did-btcr2.ts +36 -71
  108. package/src/index.ts +4 -1
  109. package/src/utils/did-document.ts +2 -2
  110. package/dist/esm/core/update.js +0 -112
  111. package/dist/esm/core/update.js.map +0 -1
  112. package/dist/types/core/update.d.ts +0 -52
  113. package/dist/types/core/update.d.ts.map +0 -1
  114. package/src/core/update.ts +0 -158
@@ -1,10 +1,16 @@
1
+ import { canonicalize } from '@did-btcr2/common';
2
+ import { BIP340Cryptosuite, SchnorrMultikey } from '@did-btcr2/cryptosuite';
1
3
  import { bytesToHex } from '@noble/hashes/utils';
4
+ import { getBeaconStrategy } from './beacon-strategy.js';
2
5
  import { AggregationCohort } from './cohort.js';
3
6
  import { AggregationServiceError } from './errors.js';
7
+ import { AGGREGATION_WIRE_VERSION } from './messages/base.js';
4
8
  import { COHORT_OPT_IN, NONCE_CONTRIBUTION, SIGNATURE_AUTHORIZATION, SUBMIT_UPDATE, VALIDATION_ACK, } from './messages/constants.js';
5
- import { createAuthorizationRequestMessage, createCohortAdvertMessage, createCohortOptInAcceptMessage, createCohortReadyMessage, createDistributeAggregatedDataMessage, createAggregatedNonceMessage, } from './messages/factories.js';
9
+ import { createAggregatedNonceMessage, createAuthorizationRequestMessage, createCohortAdvertMessage, createCohortOptInAcceptMessage, createCohortReadyMessage, createDistributeAggregatedDataMessage, } from './messages/factories.js';
6
10
  import { ServiceCohortPhase } from './phases.js';
7
11
  import { BeaconSigningSession } from './signing-session.js';
12
+ /** Default maximum canonicalized byte-length of a submitted BTCR2 update. */
13
+ export const DEFAULT_MAX_UPDATE_SIZE_BYTES = 256 * 1024;
8
14
  /**
9
15
  * Sans-I/O state machine for an Aggregation Service.
10
16
  *
@@ -19,13 +25,31 @@ import { BeaconSigningSession } from './signing-session.js';
19
25
  export class AggregationService {
20
26
  did;
21
27
  keys;
28
+ maxUpdateSizeBytes;
22
29
  /** Per-cohort state, keyed by cohortId. */
23
30
  #cohortStates = new Map();
24
- constructor({ did, keys }) {
31
+ constructor({ did, keys, maxUpdateSizeBytes }) {
25
32
  this.did = did;
26
33
  this.keys = keys;
34
+ this.maxUpdateSizeBytes = maxUpdateSizeBytes ?? DEFAULT_MAX_UPDATE_SIZE_BYTES;
27
35
  }
28
36
  receive(message) {
37
+ // Reject messages whose wire version doesn't match what this build speaks.
38
+ // Missing version → treat as legacy and drop: bumping the protocol must be
39
+ // coordinated across all participants.
40
+ const version = message.version;
41
+ if (version === undefined || version !== AGGREGATION_WIRE_VERSION) {
42
+ const cohortId = message.body?.cohortId;
43
+ const state = cohortId ? this.#cohortStates.get(cohortId) : undefined;
44
+ if (state) {
45
+ state.rejections.push({
46
+ from: message.from,
47
+ code: 'WRONG_VERSION',
48
+ reason: `Expected wire version ${AGGREGATION_WIRE_VERSION}, got ${String(version)}`,
49
+ });
50
+ }
51
+ return;
52
+ }
29
53
  const type = message.type;
30
54
  switch (type) {
31
55
  case COHORT_OPT_IN:
@@ -48,6 +72,19 @@ export class AggregationService {
48
72
  break;
49
73
  }
50
74
  }
75
+ /**
76
+ * Drain the rejection log for a cohort. Used by runners to surface silent
77
+ * drops (bad proof, oversized update, wrong version, etc.) as structured
78
+ * events without breaking the sans-I/O state machine contract.
79
+ */
80
+ drainRejections(cohortId) {
81
+ const state = this.#cohortStates.get(cohortId);
82
+ if (!state)
83
+ return [];
84
+ const out = state.rejections;
85
+ state.rejections = [];
86
+ return out;
87
+ }
51
88
  /**
52
89
  * Create a new cohort with the given config. Returns the cohort ID.
53
90
  * Cohort starts in `Created` phase — call `advertise()` to broadcast.
@@ -65,6 +102,7 @@ export class AggregationService {
65
102
  config,
66
103
  pendingOptIns: new Map(),
67
104
  acceptedParticipants: new Set(),
105
+ rejections: [],
68
106
  });
69
107
  return cohort.id;
70
108
  }
@@ -119,6 +157,13 @@ export class AggregationService {
119
157
  const communicationPk = message.body?.communicationPk;
120
158
  if (!participantPk || !communicationPk)
121
159
  return;
160
+ // Reject re-opt-in from already-accepted participants. Without this guard a
161
+ // participant could send a second opt-in with a different key, overwriting
162
+ // pendingOptIns[did] while cohortKeys still holds the original key — opening
163
+ // a desync window where #verifySubmittedUpdate accepts updates signed with
164
+ // a key that is NOT in the MuSig2 cohort.
165
+ if (state.acceptedParticipants.has(participantDid))
166
+ return;
122
167
  state.pendingOptIns.set(participantDid, {
123
168
  cohortId,
124
169
  participantDid,
@@ -144,6 +189,7 @@ export class AggregationService {
144
189
  }
145
190
  state.acceptedParticipants.add(participantDid);
146
191
  state.cohort.participants.push(participantDid);
192
+ state.cohort.participantKeys.set(participantDid, optIn.participantPk);
147
193
  state.cohort.cohortKeys = [...state.cohort.cohortKeys, optIn.participantPk];
148
194
  return [createCohortOptInAcceptMessage({
149
195
  from: this.did,
@@ -187,6 +233,13 @@ export class AggregationService {
187
233
  return new Map();
188
234
  return state.cohort.pendingUpdates;
189
235
  }
236
+ /**
237
+ * Handle an incoming SUBMIT_UPDATE message from a participant containing their signed update to
238
+ * submit for aggregation.
239
+ * @param {BaseMessage} message - incoming SUBMIT_UPDATE message containing a participant's signed
240
+ * update to submit for aggregation
241
+ * @returns {void} - no return value; updates the service state with the submitted update if valid
242
+ */
190
243
  #handleSubmitUpdate(message) {
191
244
  const cohortId = message.body?.cohortId;
192
245
  if (!cohortId)
@@ -197,8 +250,38 @@ export class AggregationService {
197
250
  if (state.phase !== ServiceCohortPhase.CohortSet && state.phase !== ServiceCohortPhase.CollectingUpdates)
198
251
  return;
199
252
  const signedUpdate = message.body?.signedUpdate;
200
- if (!signedUpdate)
253
+ if (!signedUpdate) {
254
+ state.rejections.push({
255
+ from: message.from,
256
+ code: 'UPDATE_MALFORMED',
257
+ reason: 'SUBMIT_UPDATE missing signedUpdate body',
258
+ });
201
259
  return;
260
+ }
261
+ // Cap the canonicalized update size before doing any heavier verification
262
+ // work. Without this guard, a participant could submit multi-MB payloads
263
+ // that the service would canonicalize, hash, and aggregate — cheap DoS.
264
+ const canonicalSize = canonicalize(signedUpdate).length;
265
+ if (canonicalSize > this.maxUpdateSizeBytes) {
266
+ state.rejections.push({
267
+ from: message.from,
268
+ code: 'UPDATE_TOO_LARGE',
269
+ reason: `Canonicalized update is ${canonicalSize} bytes; max allowed is ${this.maxUpdateSizeBytes}`,
270
+ });
271
+ return;
272
+ }
273
+ // Verify the BIP-340 Data Integrity proof before aggregating. Without this check,
274
+ // a malicious cohort member could submit updates with garbage proofs, which the
275
+ // service would aggregate into the CAS announcement / SMT root and ultimately
276
+ // anchor on-chain with the cohort's MuSig2 signature.
277
+ if (!this.#verifySubmittedUpdate(state, message.from, signedUpdate)) {
278
+ state.rejections.push({
279
+ from: message.from,
280
+ code: 'UPDATE_VERIFICATION_FAILED',
281
+ reason: 'BIP-340 Data Integrity proof verification failed',
282
+ });
283
+ return;
284
+ }
202
285
  state.cohort.addUpdate(message.from, signedUpdate);
203
286
  if (state.phase === ServiceCohortPhase.CohortSet) {
204
287
  state.phase = ServiceCohortPhase.CollectingUpdates;
@@ -207,6 +290,42 @@ export class AggregationService {
207
290
  state.phase = ServiceCohortPhase.UpdatesCollected;
208
291
  }
209
292
  }
293
+ /**
294
+ * Verify the BIP-340 Schnorr Data Integrity proof on a submitted update using the
295
+ * participant's public key from their cohort opt-in. Returns `false` (and the
296
+ * update is silently dropped) if the proof is missing, the verificationMethod does
297
+ * not name the sender's DID, the participant has no opt-in on record, or the
298
+ * signature fails verification.
299
+ * @param {ServiceCohortState} state - the current state of the cohort to which the update was submitted
300
+ * @param {string} sender - the DID of the participant who submitted the update
301
+ * @param {SignedBTCR2Update} signedUpdate - the signed update containing the proof to verify
302
+ * @returns {boolean} - `true` if the proof is valid and the update can be accepted; `false` otherwise
303
+ */
304
+ #verifySubmittedUpdate(state, sender, signedUpdate) {
305
+ const proof = signedUpdate.proof;
306
+ if (!proof?.verificationMethod || !proof.proofValue)
307
+ return false;
308
+ // The proof must be signed by the sender's own key. Reject if the
309
+ // verificationMethod references a different DID.
310
+ const vmDid = proof.verificationMethod.split('#')[0];
311
+ if (vmDid !== sender)
312
+ return false;
313
+ const optIn = state.pendingOptIns.get(sender);
314
+ if (!optIn)
315
+ return false;
316
+ try {
317
+ const multikey = SchnorrMultikey.fromPublicKey({
318
+ id: proof.verificationMethod,
319
+ controller: sender,
320
+ publicKeyBytes: optIn.participantPk,
321
+ });
322
+ const suite = new BIP340Cryptosuite(multikey);
323
+ return suite.verifyProof(signedUpdate).verified === true;
324
+ }
325
+ catch {
326
+ return false;
327
+ }
328
+ }
210
329
  /**
211
330
  * Build the aggregated data structure (CAS Announcement or SMT tree) and
212
331
  * return distribute messages to send to all participants for validation.
@@ -219,27 +338,24 @@ export class AggregationService {
219
338
  if (state.phase !== ServiceCohortPhase.UpdatesCollected) {
220
339
  throw new AggregationServiceError(`Cannot build aggregated data for cohort ${cohortId}: phase is ${state.phase}.`, 'INVALID_PHASE', { cohortId, phase: state.phase });
221
340
  }
222
- if (state.config.beaconType === 'CASBeacon') {
223
- state.cohort.buildCASAnnouncement();
224
- }
225
- else if (state.config.beaconType === 'SMTBeacon') {
226
- state.cohort.buildSMTTree();
227
- }
228
- else {
341
+ const strategy = getBeaconStrategy(state.config.beaconType);
342
+ if (!strategy) {
229
343
  throw new AggregationServiceError(`Unsupported beacon type: ${state.config.beaconType}`, 'UNSUPPORTED_BEACON_TYPE', { cohortId, beaconType: state.config.beaconType });
230
344
  }
345
+ strategy.buildAggregatedData(state.cohort);
231
346
  const signalBytesHex = bytesToHex(state.cohort.signalBytes);
232
347
  state.phase = ServiceCohortPhase.DataDistributed;
233
348
  const messages = [];
234
349
  for (const participantDid of state.cohort.participants) {
350
+ const payload = strategy.getDistributePayload(state.cohort, participantDid);
235
351
  messages.push(createDistributeAggregatedDataMessage({
236
352
  from: this.did,
237
353
  to: participantDid,
238
354
  cohortId,
239
355
  beaconType: state.config.beaconType,
240
356
  signalBytesHex,
241
- casAnnouncement: state.config.beaconType === 'CASBeacon' ? state.cohort.casAnnouncement : undefined,
242
- smtProof: state.config.beaconType === 'SMTBeacon' ? state.cohort.smtProofs?.get(participantDid) : undefined,
357
+ casAnnouncement: payload.casAnnouncement,
358
+ smtProof: payload.smtProof,
243
359
  }));
244
360
  }
245
361
  return messages;
@@ -304,6 +420,10 @@ export class AggregationService {
304
420
  });
305
421
  state.signingSession = session;
306
422
  state.phase = ServiceCohortPhase.SigningStarted;
423
+ const prevOutScript = txData.prevOutScripts[0];
424
+ if (!prevOutScript) {
425
+ throw new AggregationServiceError(`Cannot start signing for cohort ${cohortId}: txData.prevOutScripts[0] is missing.`, 'MISSING_PREV_OUT_SCRIPT', { cohortId });
426
+ }
307
427
  const messages = [];
308
428
  for (const participantDid of state.cohort.participants) {
309
429
  messages.push(createAuthorizationRequestMessage({
@@ -311,7 +431,8 @@ export class AggregationService {
311
431
  to: participantDid,
312
432
  cohortId,
313
433
  sessionId: session.id,
314
- pendingTx: txData.tx.toHex(),
434
+ pendingTx: txData.tx.hex,
435
+ prevOutScriptHex: bytesToHex(prevOutScript),
315
436
  prevOutValue: txData.prevOutValues[0]?.toString() ?? '0',
316
437
  }));
317
438
  }
@@ -382,8 +503,8 @@ export class AggregationService {
382
503
  if (state.signingSession.partialSignatures.size === state.cohort.participants.length) {
383
504
  // All partial sigs received — generate final signature
384
505
  const signature = state.signingSession.generateFinalSignature();
385
- // Set Taproot key-path witness
386
- state.signingSession.pendingTx.setWitness(0, [signature]);
506
+ // Set Taproot key-path witness (finalScriptWitness injects the aggregated MuSig2 sig)
507
+ state.signingSession.pendingTx.updateInput(0, { finalScriptWitness: [signature] });
387
508
  state.result = {
388
509
  cohortId,
389
510
  signature,
@@ -412,5 +533,12 @@ export class AggregationService {
412
533
  get cohorts() {
413
534
  return [...this.#cohortStates.values()].map(s => s.cohort);
414
535
  }
536
+ /**
537
+ * Remove a cohort from the state map. Used by runners to GC state on cohort
538
+ * completion, failure, or expiry. No-op if the cohort doesn't exist.
539
+ */
540
+ removeCohort(cohortId) {
541
+ this.#cohortStates.delete(cohortId);
542
+ }
415
543
  }
416
544
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/core/aggregation/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/core/aggregation/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAqE5D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,GAAG,IAAI,CAAC;AAaxD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,kBAAkB;IACpB,GAAG,CAAS;IACZ,IAAI,CAAiB;IACrB,kBAAkB,CAAS;IAEpC,2CAA2C;IAC3C,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE3D,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAA4B;QACrE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,IAAI,6BAA6B,CAAC;IAChF,CAAC;IAGD,OAAO,CAAC,OAAoB;QAC1B,2EAA2E;QAC3E,2EAA2E;QAC3E,uCAAuC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,wBAAwB,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,IAAG,KAAK,EAAE,CAAC;gBACT,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAK,OAAO,CAAC,IAAI;oBACrB,IAAI,EAAK,eAAe;oBACxB,MAAM,EAAG,yBAAyB,wBAAwB,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE;iBACrF,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,QAAO,IAAI,EAAE,CAAC;YACZ,KAAK,aAAa;gBAChB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,cAAc;gBACjB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,kBAAkB;gBACrB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM;YACR;gBACE,yCAAyC;gBACzC,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,QAAgB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;QAC7B,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAGD;;;OAGG;IACH,YAAY,CAAC,MAAoB;QAC/B,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;YACnC,UAAU,EAAQ,IAAI,CAAC,GAAG;YAC1B,eAAe,EAAG,MAAM,CAAC,eAAe;YACxC,OAAO,EAAW,MAAM,CAAC,OAAO;YAChC,UAAU,EAAQ,MAAM,CAAC,UAAU;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;YAChC,KAAK,EAAkB,kBAAkB,CAAC,OAAO;YACjD,MAAM;YACN,MAAM;YACN,aAAa,EAAU,IAAI,GAAG,EAAE;YAChC,oBAAoB,EAAG,IAAI,GAAG,EAAE;YAChC,UAAU,EAAa,EAAE;SAC1B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAAC,UAAU,QAAQ,aAAa,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,IAAI,uBAAuB,CAC/B,2BAA2B,QAAQ,cAAc,KAAK,CAAC,KAAK,GAAG,EAC/D,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,yBAAyB,CAAC;YACxC,IAAI,EAAc,IAAI,CAAC,GAAG;YAC1B,QAAQ;YACR,UAAU,EAAQ,KAAK,CAAC,MAAM,CAAC,eAAe;YAC9C,UAAU,EAAQ,KAAK,CAAC,MAAM,CAAC,UAAU;YACzC,OAAO,EAAW,KAAK,CAAC,MAAM,CAAC,OAAO;YACtC,eAAe,EAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU;SACjD,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC;QAC5C,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,kDAAkD;IAClD,aAAa,CAAC,QAAgB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAC5B,qCAAqC;QACrC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC5C,KAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,YAAY,CAAC,OAAoB;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxC,IAAG,CAAC,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK;YAAE,OAAO;QAClB,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,UAAU;YAAE,OAAO;QAEzD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;QACpC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC;QAClD,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC;QACtD,IAAG,CAAC,aAAa,IAAI,CAAC,eAAe;YAAE,OAAO;QAE9C,4EAA4E;QAC5E,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,0CAA0C;QAC1C,IAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO;QAE1D,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE;YACtC,QAAQ;YACR,cAAc;YACd,aAAa;YACb,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,QAAgB,EAAE,cAAsB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAAC,UAAU,QAAQ,aAAa,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACtD,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAC/B,0BAA0B,cAAc,eAAe,QAAQ,GAAG,EAClE,WAAW,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAC1C,CAAC;QACJ,CAAC;QACD,IAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,uBAAuB,CAC/B,eAAe,cAAc,iCAAiC,QAAQ,GAAG,EACzE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CACjD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACtE,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QAE5E,OAAO,CAAC,8BAA8B,CAAC;gBACrC,IAAI,EAAG,IAAI,CAAC,GAAG;gBACf,EAAE,EAAK,cAAc;gBACrB,QAAQ;aACT,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,QAAgB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAAC,UAAU,QAAQ,aAAa,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;YACjD,MAAM,IAAI,uBAAuB,CAC/B,qCAAqC,QAAQ,cAAc,KAAK,CAAC,KAAK,GAAG,EACzE,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAClD,CAAC;QACJ,CAAC;QACD,IAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAClE,MAAM,IAAI,uBAAuB,CAC/B,UAAU,QAAQ,aAAa,KAAK,CAAC,oBAAoB,CAAC,IAAI,gCAAgC,KAAK,CAAC,MAAM,CAAC,eAAe,GAAG,EAC7H,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC1D,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAE3C,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAI,MAAM,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC;gBACrC,IAAI,EAAY,IAAI,CAAC,GAAG;gBACxB,EAAE,EAAc,cAAc;gBAC9B,QAAQ;gBACR,aAAa;gBACb,UAAU,EAAM,KAAK,CAAC,MAAM,CAAC,UAAU;aACxC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAGD,6CAA6C;IAC7C,gBAAgB,CAAC,QAAgB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAoB;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxC,IAAG,CAAC,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK;YAAE,OAAO;QAClB,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,iBAAiB;YAAE,OAAO;QAEhH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,YAA6C,CAAC;QACjF,IAAG,CAAC,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAK,OAAO,CAAC,IAAI;gBACrB,IAAI,EAAK,kBAAkB;gBAC3B,MAAM,EAAG,yCAAyC;aACnD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,aAAa,GAAG,YAAY,CAAC,YAAkD,CAAC,CAAC,MAAM,CAAC;QAC9F,IAAG,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3C,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAK,OAAO,CAAC,IAAI;gBACrB,IAAI,EAAK,kBAAkB;gBAC3B,MAAM,EAAG,2BAA2B,aAAa,0BAA0B,IAAI,CAAC,kBAAkB,EAAE;aACrG,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,kFAAkF;QAClF,gFAAgF;QAChF,8EAA8E;QAC9E,sDAAsD;QACtD,IAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACnE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAK,OAAO,CAAC,IAAI;gBACrB,IAAI,EAAK,4BAA4B;gBACrC,MAAM,EAAG,kDAAkD;aAC5D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAChD,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;QACrD,CAAC;QACD,IAAG,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,sBAAsB,CACpB,KAAyB,EACzB,MAAc,EACd,YAA+B;QAE/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QACjC,IAAG,CAAC,KAAK,EAAE,kBAAkB,IAAI,CAAC,KAAK,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAEjE,kEAAkE;QAClE,iDAAiD;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAG,KAAK,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAG,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC;gBAC7C,EAAE,EAAe,KAAK,CAAC,kBAAkB;gBACzC,UAAU,EAAO,MAAM;gBACvB,cAAc,EAAG,KAAK,CAAC,aAAa;aACrC,CAAoB,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD;;;OAGG;IACH,kBAAkB,CAAC,QAAgB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAAC,UAAU,QAAQ,aAAa,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;YACvD,MAAM,IAAI,uBAAuB,CAC/B,2CAA2C,QAAQ,cAAc,KAAK,CAAC,KAAK,GAAG,EAC/E,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAG,CAAC,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,uBAAuB,CAC/B,4BAA4B,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EACrD,yBAAyB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC;QAC7D,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,eAAe,CAAC;QAEjD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAI,MAAM,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC5E,QAAQ,CAAC,IAAI,CAAC,qCAAqC,CAAC;gBAClD,IAAI,EAAc,IAAI,CAAC,GAAG;gBAC1B,EAAE,EAAgB,cAAc;gBAChC,QAAQ;gBACR,UAAU,EAAQ,KAAK,CAAC,MAAM,CAAC,UAAU;gBACzC,cAAc;gBACd,eAAe,EAAG,OAAO,CAAC,eAAe;gBACzC,QAAQ,EAAU,OAAO,CAAC,QAAQ;aACnC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,QAAgB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpF,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACnD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,KAAK,EAAG,eAAe,CAAC,IAAI;SAC7B,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,OAAoB;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxC,IAAG,CAAC,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK;YAAE,OAAO;QAClB,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,eAAe;YAAE,OAAO;QAE9D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxC,IAAG,QAAQ,KAAK,SAAS;YAAE,OAAO;QAElC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEnD,+DAA+D;QAC/D,4EAA4E;QAC5E,IAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAC7C,CAAC;aAAM,IAAG,KAAK,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAC1C,CAAC;IACH,CAAC;IAGD;;;;OAIG;IACH,YAAY,CAAC,QAAgB,EAAE,MAAqB;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAAC,UAAU,QAAQ,aAAa,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,uBAAuB,CAC/B,mCAAmC,QAAQ,cAAc,KAAK,CAAC,KAAK,GAAG,EACvE,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC;YACvC,MAAM,EAAW,KAAK,CAAC,MAAM;YAC7B,SAAS,EAAQ,MAAM,CAAC,EAAE;YAC1B,cAAc,EAAG,MAAM,CAAC,cAAc;YACtC,aAAa,EAAI,MAAM,CAAC,aAAa;SACtC,CAAC,CAAC;QACH,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;QAC/B,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC;QAEhD,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAG,CAAC,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,uBAAuB,CAC/B,mCAAmC,QAAQ,wCAAwC,EACnF,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CACxC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAI,MAAM,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,iCAAiC,CAAC;gBAC9C,IAAI,EAAe,IAAI,CAAC,GAAG;gBAC3B,EAAE,EAAiB,cAAc;gBACjC,QAAQ;gBACR,SAAS,EAAU,OAAO,CAAC,EAAE;gBAC7B,SAAS,EAAU,MAAM,CAAC,EAAE,CAAC,GAAG;gBAChC,gBAAgB,EAAG,UAAU,CAAC,aAAa,CAAC;gBAC5C,YAAY,EAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG;aAC9D,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wBAAwB,CAAC,OAAoB;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxC,IAAG,CAAC,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc;YAAE,OAAO;QAC3C,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,cAAc;YAAE,OAAO;QAE7D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;QAC1C,IAAG,SAAS,KAAK,KAAK,CAAC,cAAc,CAAC,EAAE;YAAE,OAAO;QAEjD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC1D,IAAG,CAAC,iBAAiB;YAAE,OAAO;QAE9B,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAE3E,IAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACrF,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,eAAe,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,QAAgB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,uBAAuB,CAAC,UAAU,QAAQ,aAAa,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC/E,MAAM,IAAI,uBAAuB,CAC/B,2CAA2C,QAAQ,cAAc,KAAK,CAAC,KAAK,GAAG,EAC/E,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;QACvE,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,mBAAmB,CAAC;QAErD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAI,MAAM,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC;gBACzC,IAAI,EAAQ,IAAI,CAAC,GAAG;gBACpB,EAAE,EAAU,cAAc;gBAC1B,QAAQ;gBACR,SAAS,EAAG,KAAK,CAAC,cAAc,CAAC,EAAE;gBACnC,eAAe;aAChB,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6BAA6B,CAAC,OAAoB;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACxC,IAAG,CAAC,QAAQ;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc;YAAE,OAAO;QAC3C,IAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,mBAAmB;YAAE,OAAO;QAElE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;QAC1C,IAAG,SAAS,KAAK,KAAK,CAAC,cAAc,CAAC,EAAE;YAAE,OAAO;QAEjD,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACxD,IAAG,CAAC,gBAAgB;YAAE,OAAO;QAE7B,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAEzE,IAAG,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACpF,uDAAuD;YACvD,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC;YAEhE,sFAAsF;YACtF,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,kBAAkB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEnF,KAAK,CAAC,MAAM,GAAG;gBACb,QAAQ;gBACR,SAAS;gBACT,QAAQ,EAAG,KAAK,CAAC,cAAc,CAAC,SAAS;aAC1C,CAAC;YACF,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAC5C,CAAC;IACH,CAAC;IAGD,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
+ import { SigHash } from '@scure/btc-signer';
1
2
  import * as musig2 from '@scure/btc-signer/musig2';
2
- import { Transaction } from 'bitcoinjs-lib';
3
3
  import { SigningSessionError } from './errors.js';
4
4
  import { SigningSessionPhase } from './phases.js';
5
5
  /**
@@ -50,12 +50,15 @@ export class BeaconSigningSession {
50
50
  if (!this.prevOutScripts.length || !this.prevOutValues.length) {
51
51
  throw new SigningSessionError('Cannot compute sighash: missing prevOutScripts or prevOutValues.', 'SIGHASH_ERROR');
52
52
  }
53
- return this.pendingTx.hashForWitnessV1(0, this.prevOutScripts, this.prevOutValues, Transaction.SIGHASH_DEFAULT);
53
+ return this.pendingTx.preimageWitnessV1(0, this.prevOutScripts, SigHash.DEFAULT, this.prevOutValues);
54
54
  }
55
55
  addNonceContribution(participantDid, nonceContribution) {
56
56
  if (this.phase !== SigningSessionPhase.AwaitingNonceContributions) {
57
57
  throw new SigningSessionError(`Nonce contributions not expected. Current phase: ${this.phase}`, 'INVALID_PHASE', { phase: this.phase });
58
58
  }
59
+ if (!this.cohort.participants.includes(participantDid)) {
60
+ throw new SigningSessionError(`Participant ${participantDid} is not a member of cohort ${this.cohort.id}.`, 'UNKNOWN_PARTICIPANT', { cohortId: this.cohort.id, participantDid });
61
+ }
59
62
  if (nonceContribution.length !== 66) {
60
63
  throw new SigningSessionError(`Invalid nonce contribution: expected 66 bytes, got ${nonceContribution.length}.`, 'INVALID_NONCE_LENGTH');
61
64
  }
@@ -79,6 +82,9 @@ export class BeaconSigningSession {
79
82
  if (this.phase !== SigningSessionPhase.AwaitingPartialSignatures) {
80
83
  throw new SigningSessionError(`Partial signatures not expected. Current phase: ${this.phase}`, 'INVALID_PHASE');
81
84
  }
85
+ if (!this.cohort.participants.includes(participantDid)) {
86
+ throw new SigningSessionError(`Participant ${participantDid} is not a member of cohort ${this.cohort.id}.`, 'UNKNOWN_PARTICIPANT', { cohortId: this.cohort.id, participantDid });
87
+ }
82
88
  if (this.partialSignatures.has(participantDid)) {
83
89
  throw new SigningSessionError(`Duplicate partial signature from ${participantDid}.`, 'DUPLICATE_PARTIAL_SIG');
84
90
  }
@@ -94,7 +100,33 @@ export class BeaconSigningSession {
94
100
  if (!this.aggregatedNonce) {
95
101
  throw new SigningSessionError('Aggregated nonce missing.', 'MISSING_AGGREGATED_NONCE');
96
102
  }
97
- const session = new musig2.Session(this.aggregatedNonce, this.cohort.cohortKeys, this.sigHash, [this.cohort.trMerkleRoot], [true]);
103
+ const session = new musig2.Session(this.aggregatedNonce, this.cohort.cohortKeys, this.sigHash, [this.cohort.tapTweak], [true]);
104
+ // Pre-verify each partial signature against the signer's public key before
105
+ // aggregating (BIP-327 §2.3.5). Delegating verification to partialSigAgg
106
+ // alone makes it impossible to attribute a bad contribution; pinpointing
107
+ // the offending participant lets the service blame and retry without the
108
+ // whole cohort.
109
+ //
110
+ // partialSigVerify(partialSig, pubNonces, i) needs pubNonces ordered to
111
+ // match cohort.cohortKeys, and `i` is the signer's position in that array.
112
+ const pubNoncesByIndex = new Array(this.cohort.cohortKeys.length);
113
+ for (const [did, nonce] of this.nonceContributions) {
114
+ const idx = this.cohort.indexOfParticipant(did);
115
+ if (idx < 0) {
116
+ throw new SigningSessionError(`Cannot verify nonce from ${did}: participant key missing from cohort.`, 'UNKNOWN_PARTICIPANT_KEY', { participantDid: did });
117
+ }
118
+ pubNoncesByIndex[idx] = nonce;
119
+ }
120
+ for (const [did, partialSig] of this.partialSignatures) {
121
+ const idx = this.cohort.indexOfParticipant(did);
122
+ if (idx < 0) {
123
+ throw new SigningSessionError(`Cannot verify partial signature from ${did}: participant key missing from cohort.`, 'UNKNOWN_PARTICIPANT_KEY', { participantDid: did });
124
+ }
125
+ const ok = session.partialSigVerify(partialSig, pubNoncesByIndex, idx);
126
+ if (!ok) {
127
+ throw new SigningSessionError(`Bad partial signature from ${did}.`, 'BAD_PARTIAL_SIG', { participantDid: did, index: idx });
128
+ }
129
+ }
98
130
  this.signature = session.partialSigAgg([...this.partialSignatures.values()]);
99
131
  this.phase = SigningSessionPhase.Complete;
100
132
  return this.signature;
@@ -112,6 +144,10 @@ export class BeaconSigningSession {
112
144
  /**
113
145
  * Generates a partial signature using the participant's secret key + secret nonce.
114
146
  * Requires the aggregated nonce to have been set first (via the service).
147
+ *
148
+ * Zeros the stored `secretNonce` after use. JS cannot truly erase memory (GC
149
+ * and immutable strings), but overwriting the bytes shortens the exposure
150
+ * window and prevents accidental reuse or serialization of a spent nonce.
115
151
  */
116
152
  generatePartialSignature(participantSecretKey) {
117
153
  if (!this.aggregatedNonce) {
@@ -120,8 +156,11 @@ export class BeaconSigningSession {
120
156
  if (!this.secretNonce) {
121
157
  throw new SigningSessionError('Secret nonce not available — generateNonceContribution() must be called first.', 'MISSING_SECRET_NONCE');
122
158
  }
123
- const session = new musig2.Session(this.aggregatedNonce, this.cohort.cohortKeys, this.sigHash, [this.cohort.trMerkleRoot], [true]);
124
- return session.sign(this.secretNonce, participantSecretKey);
159
+ const session = new musig2.Session(this.aggregatedNonce, this.cohort.cohortKeys, this.sigHash, [this.cohort.tapTweak], [true]);
160
+ const partialSig = session.sign(this.secretNonce, participantSecretKey);
161
+ this.secretNonce.fill(0);
162
+ this.secretNonce = undefined;
163
+ return partialSig;
125
164
  }
126
165
  isComplete() {
127
166
  return this.phase === SigningSessionPhase.Complete;
@@ -1 +1 @@
1
- {"version":3,"file":"signing-session.js","sourceRoot":"","sources":["../../../../src/core/aggregation/signing-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signing-session.js","sourceRoot":"","sources":["../../../../src/core/aggregation/signing-session.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,17 @@ export class DidCommTransport {
25
25
  registerMessageHandler(_actorDid, _messageType, _handler) {
26
26
  throw new NotImplementedError('DidCommTransport not implemented.');
27
27
  }
28
+ unregisterMessageHandler(_actorDid, _messageType) {
29
+ throw new NotImplementedError('DidCommTransport not implemented.');
30
+ }
31
+ unregisterActor(_did) {
32
+ throw new NotImplementedError('DidCommTransport not implemented.');
33
+ }
28
34
  async sendMessage(_message, _sender, _recipient) {
29
35
  throw new NotImplementedError('DidCommTransport not implemented.');
30
36
  }
37
+ publishRepeating(_message, _sender, _intervalMs, _recipient) {
38
+ throw new NotImplementedError('DidCommTransport not implemented.');
39
+ }
31
40
  }
32
41
  //# sourceMappingURL=didcomm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"didcomm.js","sourceRoot":"","sources":["../../../../../src/core/aggregation/transport/didcomm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKxD;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IACpB,IAAI,GAAW,SAAS,CAAC;IAEzB,KAAK;QACV,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,CAAC,CAAC;IACjG,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,KAAqB;QACtD,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,YAAY,CAAC,IAAY,EAAE,gBAA4B;QAC5D,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,sBAAsB,CAAC,SAAiB,EAAE,YAAoB,EAAE,QAAwB;QAC7F,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAAqB,EAAE,OAAe,EAAE,UAAmB;QAClF,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;CACF"}
1
+ {"version":3,"file":"didcomm.js","sourceRoot":"","sources":["../../../../../src/core/aggregation/transport/didcomm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKxD;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IACpB,IAAI,GAAW,SAAS,CAAC;IAEzB,KAAK;QACV,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,CAAC,CAAC;IACjG,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,KAAqB;QACtD,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,YAAY,CAAC,IAAY,EAAE,gBAA4B;QAC5D,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,SAAS,CAAC,IAAY;QAC3B,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,sBAAsB,CAAC,SAAiB,EAAE,YAAoB,EAAE,QAAwB;QAC7F,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,wBAAwB,CAAC,SAAiB,EAAE,YAAoB;QACrE,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,eAAe,CAAC,IAAY;QACjC,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAAqB,EAAE,OAAe,EAAE,UAAmB;QAClF,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;IAEM,gBAAgB,CACrB,QAAqB,EACrB,OAAe,EACf,WAAmB,EACnB,UAAmB;QAEnB,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,CAAC,CAAC;IACrE,CAAC;CACF"}