@scure/btc-signer 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +7 -10
  2. package/_type_test.d.ts.map +1 -0
  3. package/_type_test.js.map +1 -0
  4. package/esm/_type_test.d.ts +2 -0
  5. package/esm/_type_test.js.map +1 -0
  6. package/{lib → esm}/index.d.ts +5 -4
  7. package/esm/index.d.ts.map +1 -0
  8. package/{lib/esm → esm}/index.js +10 -3
  9. package/esm/index.js.map +1 -0
  10. package/{lib → esm}/payment.d.ts.map +1 -1
  11. package/{lib/esm → esm}/payment.js +6 -6
  12. package/esm/payment.js.map +1 -0
  13. package/{lib → esm}/psbt.d.ts +2 -16
  14. package/esm/psbt.d.ts.map +1 -0
  15. package/{lib/esm → esm}/psbt.js +7 -9
  16. package/esm/psbt.js.map +1 -0
  17. package/{lib → esm}/script.d.ts +15 -1
  18. package/{lib → esm}/script.d.ts.map +1 -1
  19. package/{lib/esm → esm}/script.js +14 -5
  20. package/esm/script.js.map +1 -0
  21. package/{lib → esm}/transaction.d.ts +16 -10
  22. package/esm/transaction.d.ts.map +1 -0
  23. package/{lib/esm → esm}/transaction.js +45 -19
  24. package/esm/transaction.js.map +1 -0
  25. package/{lib → esm}/utils.d.ts +4 -4
  26. package/esm/utils.d.ts.map +1 -0
  27. package/{lib/esm → esm}/utils.js +3 -2
  28. package/esm/utils.js.map +1 -0
  29. package/{lib → esm}/utxo.d.ts +18 -21
  30. package/esm/utxo.d.ts.map +1 -0
  31. package/{lib/esm → esm}/utxo.js +68 -30
  32. package/esm/utxo.js.map +1 -0
  33. package/index.d.ts +20 -0
  34. package/index.d.ts.map +1 -0
  35. package/{lib/index.js → index.js} +10 -2
  36. package/index.js.map +1 -0
  37. package/package.json +41 -44
  38. package/payment.d.ts +177 -0
  39. package/payment.d.ts.map +1 -0
  40. package/{lib/payment.js → payment.js} +17 -17
  41. package/payment.js.map +1 -0
  42. package/psbt.d.ts +820 -0
  43. package/psbt.d.ts.map +1 -0
  44. package/{lib/psbt.js → psbt.js} +12 -14
  45. package/psbt.js.map +1 -0
  46. package/script.d.ts +168 -0
  47. package/script.d.ts.map +1 -0
  48. package/{lib/script.js → script.js} +17 -8
  49. package/script.js.map +1 -0
  50. package/src/index.ts +17 -3
  51. package/src/payment.ts +8 -8
  52. package/src/psbt.ts +7 -9
  53. package/src/script.ts +14 -5
  54. package/src/transaction.ts +50 -20
  55. package/src/utils.ts +3 -2
  56. package/src/utxo.ts +91 -26
  57. package/transaction.d.ts +229 -0
  58. package/transaction.d.ts.map +1 -0
  59. package/{lib/transaction.js → transaction.js} +56 -30
  60. package/transaction.js.map +1 -0
  61. package/utils.d.ts +30 -0
  62. package/utils.d.ts.map +1 -0
  63. package/{lib/utils.js → utils.js} +13 -11
  64. package/utils.js.map +1 -0
  65. package/utxo.d.ts +248 -0
  66. package/utxo.d.ts.map +1 -0
  67. package/{lib/utxo.js → utxo.js} +72 -34
  68. package/utxo.js.map +1 -0
  69. package/lib/_type_test.js.map +0 -1
  70. package/lib/esm/_type_test.js.map +0 -1
  71. package/lib/esm/index.js.map +0 -1
  72. package/lib/esm/payment.js.map +0 -1
  73. package/lib/esm/psbt.js.map +0 -1
  74. package/lib/esm/script.js.map +0 -1
  75. package/lib/esm/transaction.js.map +0 -1
  76. package/lib/esm/utils.js.map +0 -1
  77. package/lib/esm/utxo.js.map +0 -1
  78. package/lib/index.d.ts.map +0 -1
  79. package/lib/index.js.map +0 -1
  80. package/lib/payment.js.map +0 -1
  81. package/lib/psbt.d.ts.map +0 -1
  82. package/lib/psbt.js.map +0 -1
  83. package/lib/script.js.map +0 -1
  84. package/lib/transaction.d.ts.map +0 -1
  85. package/lib/transaction.js.map +0 -1
  86. package/lib/utils.d.ts.map +0 -1
  87. package/lib/utils.js.map +0 -1
  88. package/lib/utxo.d.ts.map +0 -1
  89. package/lib/utxo.js.map +0 -1
  90. /package/{lib/_type_test.d.ts → _type_test.d.ts} +0 -0
  91. /package/{lib/_type_test.js → _type_test.js} +0 -0
  92. /package/{lib → esm}/_type_test.d.ts.map +0 -0
  93. /package/{lib/esm → esm}/_type_test.js +0 -0
  94. /package/{lib/esm → esm}/package.json +0 -0
  95. /package/{lib → esm}/payment.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["src/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bip32Path = exports.PSBTCombine = exports.Transaction = exports.inputBeforeSign = exports.SigHash = exports.SignatureHash = exports.cloneDeep = exports.def = exports.Decimal = exports.DEFAULT_SEQUENCE = exports.DEFAULT_LOCKTIME = exports.DEFAULT_VERSION = exports.PRECISION = void 0;
3
+ exports.Transaction = exports.SigHash = exports.SignatureHash = exports.def = exports.Decimal = exports.DEFAULT_SEQUENCE = exports.DEFAULT_LOCKTIME = exports.DEFAULT_VERSION = exports.PRECISION = void 0;
4
+ exports.cloneDeep = cloneDeep;
5
+ exports.inputBeforeSign = inputBeforeSign;
6
+ exports.PSBTCombine = PSBTCombine;
7
+ exports.bip32Path = bip32Path;
4
8
  const P = require("micro-packed");
5
9
  const base_1 = require("@scure/base");
6
10
  const payment_js_1 = require("./payment.js");
7
11
  const psbt = require("./psbt.js"); // circular
8
12
  const script_js_1 = require("./script.js");
13
+ const script_js_2 = require("./script.js");
9
14
  const utils_js_1 = require("./utils.js");
10
15
  const u = require("./utils.js");
11
16
  const utxo_js_1 = require("./utxo.js"); // circular
@@ -40,7 +45,6 @@ function cloneDeep(obj) {
40
45
  }
41
46
  throw new Error(`cloneDeep: unknown type=${obj} (${typeof obj})`);
42
47
  }
43
- exports.cloneDeep = cloneDeep;
44
48
  /**
45
49
  * Internal, exported only for backwards-compat. Use `SigHash` instead.
46
50
  * @deprecated
@@ -65,7 +69,7 @@ var SigHash;
65
69
  SigHash[SigHash["SINGLE_ANYONECANPAY"] = 131] = "SINGLE_ANYONECANPAY";
66
70
  })(SigHash || (exports.SigHash = SigHash = {}));
67
71
  function getTaprootKeys(privKey, pubKey, internalKey, merkleRoot = P.EMPTY) {
68
- if (P.equalBytes(internalKey, pubKey)) {
72
+ if ((0, utils_js_1.equalBytes)(internalKey, pubKey)) {
69
73
  privKey = u.taprootTweakPrivKey(privKey, merkleRoot);
70
74
  pubKey = u.pubSchnorr(privKey);
71
75
  }
@@ -88,7 +92,6 @@ function inputBeforeSign(i) {
88
92
  finalScriptSig: (0, exports.def)(i.finalScriptSig, P.EMPTY),
89
93
  };
90
94
  }
91
- exports.inputBeforeSign = inputBeforeSign;
92
95
  function cleanFinalInput(i) {
93
96
  for (const _k in i) {
94
97
  const k = _k;
@@ -177,7 +180,7 @@ class Transaction {
177
180
  }
178
181
  // Import
179
182
  static fromRaw(raw, opts = {}) {
180
- const parsed = script_js_1.RawTx.decode(raw);
183
+ const parsed = script_js_2.RawTx.decode(raw);
181
184
  const tx = new Transaction({ ...opts, version: parsed.version, lockTime: parsed.lockTime });
182
185
  for (const o of parsed.outputs)
183
186
  tx.addOutput(o);
@@ -231,6 +234,11 @@ class Transaction {
231
234
  toPSBT(PSBTVersion = this.opts.PSBTVersion) {
232
235
  if (PSBTVersion !== 0 && PSBTVersion !== 2)
233
236
  throw new Error(`Wrong PSBT version=${PSBTVersion}`);
237
+ // if (PSBTVersion === 0 && this.inputs.length === 0) {
238
+ // throw new Error(
239
+ // 'PSBT version=0 export for transaction without inputs disabled, please use version=2. Please check `toPSBT` method for explanation.'
240
+ // );
241
+ // }
234
242
  const inputs = this.inputs.map((i) => psbt.cleanPSBTFields(PSBTVersion, psbt.PSBTInput, i));
235
243
  for (const inp of inputs) {
236
244
  // Don't serialize empty fields
@@ -244,7 +252,21 @@ class Transaction {
244
252
  const outputs = this.outputs.map((i) => psbt.cleanPSBTFields(PSBTVersion, psbt.PSBTOutput, i));
245
253
  const global = { ...this.global };
246
254
  if (PSBTVersion === 0) {
247
- global.unsignedTx = script_js_1.RawTx.decode(this.unsignedTx);
255
+ /*
256
+ - Bitcoin raw transaction expects to have at least 1 input because it uses case with zero inputs as marker for SegWit
257
+ - this means we cannot serialize raw tx with zero inputs since it will be parsed as SegWit tx
258
+ - Parsing of PSBTv0 depends on unsignedTx (it looks for input count here)
259
+ - BIP-174 requires old serialization format (without witnesses) inside global, which solves this
260
+ */
261
+ global.unsignedTx = script_js_2.RawOldTx.decode(script_js_2.RawOldTx.encode({
262
+ version: this.version,
263
+ lockTime: this.lockTime,
264
+ inputs: this.inputs.map(inputBeforeSign).map((i) => ({
265
+ ...i,
266
+ finalScriptSig: P.EMPTY,
267
+ })),
268
+ outputs: this.outputs.map(outputBeforeSign),
269
+ }));
248
270
  delete global.fallbackLocktime;
249
271
  delete global.txVersion;
250
272
  }
@@ -390,7 +412,7 @@ class Transaction {
390
412
  for (const i of this.inputs) {
391
413
  out += 160 + 4 * script_js_1.VarBytes.encode(i.finalScriptSig || P.EMPTY).length;
392
414
  if (this.hasWitnesses && i.finalScriptWitness)
393
- out += script_js_1.RawWitness.encode(i.finalScriptWitness).length;
415
+ out += script_js_2.RawWitness.encode(i.finalScriptWitness).length;
394
416
  }
395
417
  return out;
396
418
  }
@@ -398,7 +420,7 @@ class Transaction {
398
420
  return (0, utxo_js_1.toVsize)(this.weight);
399
421
  }
400
422
  toBytes(withScriptSig = false, withWitness = false) {
401
- return script_js_1.RawTx.encode({
423
+ return script_js_2.RawTx.encode({
402
424
  version: this.version,
403
425
  lockTime: this.lockTime,
404
426
  inputs: this.inputs.map(inputBeforeSign).map((i) => ({
@@ -464,6 +486,12 @@ class Transaction {
464
486
  this.checkOutputIdx(idx);
465
487
  return cloneDeep(this.outputs[idx]);
466
488
  }
489
+ getOutputAddress(idx, network = utils_js_1.NETWORK) {
490
+ const out = this.getOutput(idx);
491
+ if (!out.script)
492
+ return;
493
+ return (0, payment_js_1.Address)(network).encode(payment_js_1.OutScript.decode(out.script));
494
+ }
467
495
  get outputsLength() {
468
496
  return this.outputs.length;
469
497
  }
@@ -472,7 +500,7 @@ class Transaction {
472
500
  if (amount === undefined)
473
501
  amount = cur?.amount;
474
502
  if (typeof amount !== 'bigint')
475
- throw new Error('amount must be bigint sats');
503
+ throw new Error(`Wrong amount type, should be of type bigint in sats, but got ${amount} of type ${typeof amount}`);
476
504
  if (typeof script === 'string')
477
505
  script = base_1.hex.decode(script);
478
506
  if (script === undefined)
@@ -555,7 +583,7 @@ class Transaction {
555
583
  else if (isSingle) {
556
584
  outputs = outputs.slice(0, idx).fill(EMPTY_OUTPUT).concat([outputs[idx]]);
557
585
  }
558
- const tmpTx = script_js_1.RawTx.encode({
586
+ const tmpTx = script_js_2.RawTx.encode({
559
587
  lockTime: this.lockTime,
560
588
  version: this.version,
561
589
  segwitFlag: false,
@@ -576,10 +604,10 @@ class Transaction {
576
604
  if (!isAny && !isSingle && !isNone)
577
605
  sequenceHash = u.sha256x2(...inputs.map((i) => P.U32LE.encode(i.sequence)));
578
606
  if (!isSingle && !isNone) {
579
- outputHash = u.sha256x2(...outputs.map(script_js_1.RawOutput.encode));
607
+ outputHash = u.sha256x2(...outputs.map(script_js_2.RawOutput.encode));
580
608
  }
581
609
  else if (isSingle && idx < outputs.length)
582
- outputHash = u.sha256x2(script_js_1.RawOutput.encode(outputs[idx]));
610
+ outputHash = u.sha256x2(script_js_2.RawOutput.encode(outputs[idx]));
583
611
  const input = inputs[idx];
584
612
  return u.sha256x2(P.I32LE.encode(this.version), inputHash, sequenceHash, P.bytes(32, true).encode(input.txid), P.U32LE.encode(input.index), script_js_1.VarBytes.encode(prevOutScript), P.U64LE.encode(amount), P.U32LE.encode(input.sequence), outputHash, P.U32LE.encode(this.lockTime), P.U32LE.encode(hashType));
585
613
  }
@@ -607,7 +635,7 @@ class Transaction {
607
635
  ].map((i) => u.sha256((0, utils_js_1.concatBytes)(...i))));
608
636
  }
609
637
  if (outType === SignatureHash.ALL) {
610
- out.push(u.sha256((0, utils_js_1.concatBytes)(...outputs.map(script_js_1.RawOutput.encode))));
638
+ out.push(u.sha256((0, utils_js_1.concatBytes)(...outputs.map(script_js_2.RawOutput.encode))));
611
639
  }
612
640
  const spendType = (annex ? 1 : 0) | (leafScript ? 2 : 0);
613
641
  out.push(new Uint8Array([spendType]));
@@ -620,7 +648,7 @@ class Transaction {
620
648
  if (spendType & 1)
621
649
  out.push(u.sha256(script_js_1.VarBytes.encode(annex || P.EMPTY)));
622
650
  if (outType === SignatureHash.SINGLE)
623
- out.push(idx < outputs.length ? u.sha256(script_js_1.RawOutput.encode(outputs[idx])) : EMPTY32);
651
+ out.push(idx < outputs.length ? u.sha256(script_js_2.RawOutput.encode(outputs[idx])) : EMPTY32);
624
652
  if (leafScript)
625
653
  out.push((0, payment_js_1.tapLeafHash)(leafScript, leafVer), P.U8.encode(0), P.I32LE.encode(codeSeparator));
626
654
  return u.tagSchnorr('TapSighash', ...out);
@@ -640,7 +668,7 @@ class Transaction {
640
668
  let s = privateKey;
641
669
  for (const i of path)
642
670
  s = s.deriveChild(i);
643
- if (!P.equalBytes(s.publicKey, pubKey))
671
+ if (!(0, utils_js_1.equalBytes)(s.publicKey, pubKey))
644
672
  throw new Error('bip32Derivation: wrong pubKey');
645
673
  if (!s.privateKey)
646
674
  throw new Error('bip32Derivation: no privateKey');
@@ -676,8 +704,6 @@ class Transaction {
676
704
  // Taproot
677
705
  const prevOut = (0, utxo_js_1.getPrevOut)(input);
678
706
  if (inputType.txType === 'taproot') {
679
- if (input.tapBip32Derivation)
680
- throw new Error('tapBip32Derivation unsupported');
681
707
  const prevOuts = this.inputs.map(utxo_js_1.getPrevOut);
682
708
  const prevOutScript = prevOuts.map((i) => i.script);
683
709
  const amount = prevOuts.map((i) => i.amount);
@@ -691,7 +717,7 @@ class Transaction {
691
717
  // priv key to be provided
692
718
  const { pubKey, privKey } = getTaprootKeys(privateKey, schnorrPub, input.tapInternalKey, merkleRoot);
693
719
  const [taprootPubKey, _] = u.taprootTweakPubkey(input.tapInternalKey, merkleRoot);
694
- if (P.equalBytes(taprootPubKey, pubKey)) {
720
+ if ((0, utils_js_1.equalBytes)(taprootPubKey, pubKey)) {
695
721
  const hash = this.preimageWitnessV1(idx, prevOutScript, sighash, amount);
696
722
  const sig = (0, utils_js_1.concatBytes)(u.signSchnorr(hash, privKey, _auxRand), sighash !== SignatureHash.DEFAULT ? new Uint8Array([sighash]) : P.EMPTY);
697
723
  this.updateInput(idx, { tapKeySig: sig }, true);
@@ -706,7 +732,7 @@ class Transaction {
706
732
  const ver = _script[_script.length - 1];
707
733
  const hash = (0, payment_js_1.tapLeafHash)(script, ver);
708
734
  // NOTE: no need to tweak internal key here, since we don't support nested p2tr
709
- const pos = scriptDecoded.findIndex((i) => (0, utils_js_1.isBytes)(i) && P.equalBytes(i, schnorrPub));
735
+ const pos = scriptDecoded.findIndex((i) => (0, utils_js_1.isBytes)(i) && (0, utils_js_1.equalBytes)(i, schnorrPub));
710
736
  // Skip if there is no public key in tapLeafScript
711
737
  if (pos === -1)
712
738
  continue;
@@ -728,7 +754,7 @@ class Transaction {
728
754
  let hasPubkey = false;
729
755
  const pubKeyHash = u.hash160(pubKey);
730
756
  for (const i of script_js_1.Script.decode(inputType.lastScript)) {
731
- if ((0, utils_js_1.isBytes)(i) && (P.equalBytes(i, pubKey) || P.equalBytes(i, pubKeyHash)))
757
+ if ((0, utils_js_1.isBytes)(i) && ((0, utils_js_1.equalBytes)(i, pubKey) || (0, utils_js_1.equalBytes)(i, pubKeyHash)))
732
758
  hasPubkey = true;
733
759
  }
734
760
  if (!hasPubkey)
@@ -793,14 +819,14 @@ class Transaction {
793
819
  const ver = _script[_script.length - 1];
794
820
  const outScript = payment_js_1.OutScript.decode(script);
795
821
  const hash = (0, payment_js_1.tapLeafHash)(script, ver);
796
- const scriptSig = input.tapScriptSig.filter((i) => P.equalBytes(i[0].leafHash, hash));
822
+ const scriptSig = input.tapScriptSig.filter((i) => (0, utils_js_1.equalBytes)(i[0].leafHash, hash));
797
823
  let signatures = [];
798
824
  if (outScript.type === 'tr_ms') {
799
825
  const m = outScript.m;
800
826
  const pubkeys = outScript.pubkeys;
801
827
  let added = 0;
802
828
  for (const pub of pubkeys) {
803
- const sigIdx = scriptSig.findIndex((i) => P.equalBytes(i[0].pubKey, pub));
829
+ const sigIdx = scriptSig.findIndex((i) => (0, utils_js_1.equalBytes)(i[0].pubKey, pub));
804
830
  // Should have exact amount of signatures (more -- will fail)
805
831
  if (added === m || sigIdx === -1) {
806
832
  signatures.push(P.EMPTY);
@@ -815,7 +841,7 @@ class Transaction {
815
841
  }
816
842
  else if (outScript.type === 'tr_ns') {
817
843
  for (const pub of outScript.pubkeys) {
818
- const sigIdx = scriptSig.findIndex((i) => P.equalBytes(i[0].pubKey, pub));
844
+ const sigIdx = scriptSig.findIndex((i) => (0, utils_js_1.equalBytes)(i[0].pubKey, pub));
819
845
  if (sigIdx === -1)
820
846
  continue;
821
847
  signatures.push(scriptSig[sigIdx][1]);
@@ -828,7 +854,7 @@ class Transaction {
828
854
  const scriptDecoded = script_js_1.Script.decode(script);
829
855
  signatures = scriptSig
830
856
  .map(([{ pubKey }, signature]) => {
831
- const pos = scriptDecoded.findIndex((i) => (0, utils_js_1.isBytes)(i) && P.equalBytes(i, pubKey));
857
+ const pos = scriptDecoded.findIndex((i) => (0, utils_js_1.isBytes)(i) && (0, utils_js_1.equalBytes)(i, pubKey));
832
858
  if (pos === -1)
833
859
  throw new Error('finalize/taproot: cannot find position of pubkey in script');
834
860
  return { signature, pos };
@@ -887,7 +913,7 @@ class Transaction {
887
913
  let signatures = [];
888
914
  // partial: [pubkey, sign]
889
915
  for (const pub of pubkeys) {
890
- const sign = input.partialSig.find((s) => P.equalBytes(pub, s[0]));
916
+ const sign = input.partialSig.find((s) => (0, utils_js_1.equalBytes)(pub, s[0]));
891
917
  if (!sign)
892
918
  continue;
893
919
  signatures.push(sign[1]);
@@ -969,9 +995,11 @@ class Transaction {
969
995
  throw new Error(`Transaction/combine: different ${k} length this=${this[k].length} other=${other[k].length}`);
970
996
  }
971
997
  }
972
- const thisUnsigned = this.global.unsignedTx ? script_js_1.RawTx.encode(this.global.unsignedTx) : P.EMPTY;
973
- const otherUnsigned = other.global.unsignedTx ? script_js_1.RawTx.encode(other.global.unsignedTx) : P.EMPTY;
974
- if (!P.equalBytes(thisUnsigned, otherUnsigned))
998
+ const thisUnsigned = this.global.unsignedTx ? script_js_2.RawOldTx.encode(this.global.unsignedTx) : P.EMPTY;
999
+ const otherUnsigned = other.global.unsignedTx
1000
+ ? script_js_2.RawOldTx.encode(other.global.unsignedTx)
1001
+ : P.EMPTY;
1002
+ if (!(0, utils_js_1.equalBytes)(thisUnsigned, otherUnsigned))
975
1003
  throw new Error(`Transaction/combine: different unsigned tx`);
976
1004
  this.global = psbt.mergeKeyMap(psbt.PSBTGlobal, this.global, other.global);
977
1005
  for (let i = 0; i < this.inputs.length; i++)
@@ -994,7 +1022,6 @@ function PSBTCombine(psbts) {
994
1022
  tx.combine(Transaction.fromPSBT(psbts[i]));
995
1023
  return tx.toPSBT();
996
1024
  }
997
- exports.PSBTCombine = PSBTCombine;
998
1025
  // Copy-pasted from bip32 derive, maybe do something like 'bip32.parsePath'?
999
1026
  const HARDENED_OFFSET = 0x80000000;
1000
1027
  function bip32Path(path) {
@@ -1018,5 +1045,4 @@ function bip32Path(path) {
1018
1045
  }
1019
1046
  return out;
1020
1047
  }
1021
- exports.bip32Path = bip32Path;
1022
1048
  //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["src/transaction.ts"],"names":[],"mappings":";;;AAqCA,8BAeC;AAiFD,0CASC;AA+5BD,kCAMC;AAID,8BAeC;AAtkCD,kCAAkC;AAClC,sCAAkC;AAClC,6CAA0F;AAC1F,kCAAkC,CAAC,WAAW;AAC9C,2CAA+D;AAC/D,2CAAqE;AACrE,yCAA8E;AAC9E,gCAAgC;AAChC,uCAA8E,CAAC,WAAW;AAE1F,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AACnC,MAAM,YAAY,GAAoC;IACpD,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK;CAChB,CAAC;AAcW,QAAA,SAAS,GAAG,CAAC,CAAC;AACd,QAAA,eAAe,GAAG,CAAC,CAAC;AACpB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,gBAAgB,GAAG,UAAU,CAAC;AAC9B,QAAA,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAS,CAAC,CAAC;AAEnD,sEAAsE;AAC/D,MAAM,GAAG,GAAG,CAAI,KAAoB,EAAE,GAAM,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAA/E,QAAA,GAAG,OAA4E;AAE5F,SAAgB,SAAS,CAAI,GAAM;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAiB,CAAC;IAC5E,sCAAsC;SACjC,IAAI,GAAG,YAAY,UAAU;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAC;IAChF,YAAY;SACP,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACjG,iBAAiB;SACZ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IAClC,gDAAgD;SAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,KAAK,OAAO,GAAG,GAAG,CAAC,CAAC;AACpE,CAAC;AA6BD;;;GAGG;AACH,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,+CAAG,CAAA;IACH,iDAAI,CAAA;IACJ,qDAAM,CAAA;IACN,mEAAmB,CAAA;AACrB,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAED,IAAY,OASX;AATD,WAAY,OAAO;IACjB,2CAA+B,CAAA;IAC/B,mCAAuB,CAAA;IACvB,qCAAyB,CAAA;IACzB,yCAA6B,CAAA;IAC7B,uEAAyE,CAAA;IACzE,+DAAiE,CAAA;IACjE,iEAAmE,CAAA;IACnE,qEAAuE,CAAA;AACzE,CAAC,EATW,OAAO,uBAAP,OAAO,QASlB;AAED,SAAS,cAAc,CACrB,OAAc,EACd,MAAa,EACb,WAAkB,EAClB,aAAoB,CAAC,CAAC,KAAK;IAE3B,IAAI,IAAA,qBAAU,EAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAUD,4BAA4B;AAC5B,SAAS,gBAAgB,CAAC,CAAyB;IACjD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAClD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,kCAAkC;AAClC,SAAgB,eAAe,CAAC,CAAwB;IACtD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAC/C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,QAAQ,EAAE,IAAA,WAAG,EAAC,CAAC,CAAC,QAAQ,EAAE,wBAAgB,CAAC;QAC3C,cAAc,EAAE,IAAA,WAAG,EAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC;KAC/C,CAAC;AACJ,CAAC;AACD,SAAS,eAAe,CAAC,CAAwB;IAC/C,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,EAAiC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAExE,SAAS,eAAe,CAAC,CAAU;IACjC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;QACzD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC,IAAI;QACrC,QAAQ,EAAE,MAAM,KAAK,aAAa,CAAC,MAAM;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB;QACpE,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;IAExE,MAAM,KAAK,GAAG;QACZ,GAAG,IAAI;QACP,WAAW;QACX,OAAO,EAAE,IAAA,WAAG,EAAC,IAAI,CAAC,OAAO,EAAE,uBAAe,CAAC;QAC3C,QAAQ,EAAE,IAAA,WAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,WAAW,EAAE,IAAA,WAAG,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;KACtC,CAAC;IACF,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,WAAW;QAC/C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACnD,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,WAAW;QAChD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,4BAA4B;IAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjG,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAClG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,wCAAwC;IACxE,6GAA6G;IAC7G,+CAA+C;IAC/C,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,QAAQ;IACR,KAAK,MAAM,CAAC,IAAI;QACd,qBAAqB;QACrB,oBAAoB;QACpB,oBAAoB;QACpB,gBAAgB;QAChB,wBAAwB;QACxB,MAAM;KACE,EAAE,CAAC;QACX,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,WAAW;QAC1C,IAAI,OAAO,CAAC,KAAK,SAAS;YACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,6DAA6D,EAAE,KAAK,OAAO,EAAE,GAAG,CACjF,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU;gBAClE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU;gBAC5E,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAa,WAAW;IAKtB,YAAY,OAAe,EAAE;QAJrB,WAAM,GAAgD,EAAE,CAAC;QACzD,WAAM,GAA4B,EAAE,CAAC,CAAC,iBAAiB;QACvD,YAAO,GAA6B,EAAE,CAAC,CAAC,kBAAkB;QAGhE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,wCAAwC;QACxC,IAAI,KAAK,CAAC,QAAQ,KAAK,wBAAgB;YAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC;QACvF,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,SAAS;IACT,MAAM,CAAC,OAAO,CAAC,GAAU,EAAE,OAAe,EAAE;QAC1C,MAAM,MAAM,GAAG,iBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5F,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;YAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChD,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;gBAC9C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;IACP,MAAM,CAAC,QAAQ,CAAC,KAAY,EAAE,OAAe,EAAE;QAC7C,IAAI,MAA4C,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,2FAA2F;gBAC3F,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAC/C,IAAI,WAAW,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QAChF,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACzF,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QACxE,wCAAwC;QACxC,MAAM,UAAU,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1F,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,cAAc,EAAE,CAAC,CAAC,KAAK;YACvB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC;SACL,CAAC,CAAC,CAAC;QACJ,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QAC7F,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,GAAG,CAAC;YACJ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;SACxC,CAAC,CAAC,CAAC;QACJ,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,0CAA0C;QAChG,IAAI,QAAQ,KAAK,wBAAgB;YAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;QACxC,IAAI,WAAW,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACvD,uDAAuD;QACvD,qBAAqB;QACrB,2IAA2I;QAC3I,OAAO;QACP,IAAI;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,+BAA+B;YAC/B,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC,UAAU,CAAC;YACpE,IAAI,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC,cAAc,CAAC;YAChF,IAAI,GAAG,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC;QAC9F,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB;;;;;cAKE;YACF,MAAM,CAAC,UAAU,GAAG,oBAAQ,CAAC,MAAM,CACjC,oBAAQ,CAAC,MAAM,CAAC;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnD,GAAG,CAAC;oBACJ,cAAc,EAAE,CAAC,CAAC,KAAK;iBACxB,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;aAC5C,CAAC,CACH,CAAC;YACF,OAAO,MAAM,CAAC,gBAAgB,CAAC;YAC/B,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;YAC7B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAChC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACvC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACzC,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,KAAK,wBAAgB;gBACzE,OAAO,MAAM,CAAC,gBAAgB,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YAClE,MAAM;YACN,MAAM;YACN,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,yGAAyG;IACzG,IAAI,QAAQ;QACV,IAAI,MAAM,GAAG,wBAAgB,CAAC;QAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,GAAG,wBAAgB,CAAC;QAC5B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC;gBACpD,SAAS,EAAE,CAAC;YACd,CAAC;YACD,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC;gBAC3B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO;YAAE,OAAO,MAAM,CAAC;QACrD,IAAI,IAAI,KAAK,wBAAgB;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,wBAAgB,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO;QACT,yBAAyB;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,YAAY;QACZ,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM;YAAE,OAAO,WAAW,CAAC;QAC5E,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM;YAAE,OAAO,WAAW,CAAC;QACpF,iBAAiB;QACjB,IAAI,KAAK,CAAC,SAAS;YAAE,OAAO,QAAQ,CAAC;QACrC,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QACrE,SAAS;QACT,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QACjE,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,gHAAgH;IAChH,oFAAoF;IAC5E,YAAY,CAAC,GAAW;QAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC;QACzF,sCAAsC;QACtC,4CAA4C;QAC5C,wDAAwD;QACxD,iDAAiD;QACjD,gDAAgD;QAChD,6DAA6D;QAC7D,MAAM,UAAU,GAAG,OAAO,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1F,MAAM,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC;QACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACnC,CAAC;IACD,yGAAyG;IACzG,iFAAiF;IACzE,UAAU;QAChB,kFAAkF;QAClF,IAAI,QAAQ,GAAG,IAAI,EACjB,SAAS,GAAG,IAAI,CAAC;QACnB,IAAI,MAAM,GAAG,EAAE,EACb,OAAO,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,yCAAyC;YACzC,IAAI,MAAM,KAAK,UAAU;gBAAE,SAAS;YACpC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACzD,aAAa;YACb,IAAI,SAAS,KAAK,aAAa,CAAC,YAAY;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBAC1D,QAAQ,GAAG,KAAK,CAAC;YACtB,cAAc;YACd,IAAI,UAAU,KAAK,aAAa,CAAC,GAAG;gBAAE,SAAS,GAAG,KAAK,CAAC;iBACnD,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC3D,IAAI,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC3C,oCAAoC;YACtC,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,OAAO;QACT,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE;YAC/C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;IACb,IAAI,YAAY;QACd,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM;YACzB,IAAI,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM;gBAAE,GAAG,GAAG,IAAI,CAAC;QACtE,OAAO,GAAG,CAAC;IACb,CAAC;IACD,0CAA0C;IAC1C,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,UAAU;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACnD,GAAG,IAAI,CAAC,GAAG,0BAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,oBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAC1E,SAAS;QACT,IAAI,IAAI,CAAC,YAAY;YAAE,GAAG,IAAI,CAAC,CAAC;QAChC,GAAG,IAAI,CAAC,GAAG,0BAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,oBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACrE,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,kBAAkB;gBAC3C,GAAG,IAAI,sBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAA,iBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK;QAChD,OAAO,iBAAK,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnD,GAAG,CAAC;gBACJ,cAAc,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK;aAC/D,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC;YAC7D,UAAU,EAAE,WAAW,IAAI,IAAI,CAAC,YAAY;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,GAAG;QACL,OAAO,UAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,OAAO,UAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,EAAE;QACJ,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnE,OAAO,UAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,cAAc;IACN,aAAa,CAAC,GAAW;QAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YACpE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,eAAe;IACf,QAAQ,CAAC,KAAkC,EAAE,iBAAiB,GAAG,KAAK;QACpE,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ;YACnD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,wBAAc,EAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,WAAW,CAAC,GAAW,EAAE,KAAkC,EAAE,iBAAiB,GAAG,KAAK;QACpF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,aAAa,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACjD,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,wBAAc,EAC/B,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAChB,aAAa,EACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAC7B,CAAC;IACJ,CAAC;IACD,eAAe;IACP,cAAc,CAAC,GAAW;QAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YACrE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,gBAAgB,CAAC,GAAW,EAAE,OAAO,GAAG,kBAAO;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;QACxB,OAAO,IAAA,oBAAO,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC,sBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IACO,eAAe,CACrB,CAA+B,EAC/B,GAA4B,EAC5B,aAAgD;QAEhD,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;QAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC5B,MAAM,IAAI,KAAK,CACb,gEAAgE,MAAM,YAAY,OAAO,MAAM,EAAE,CAClG,CAAC;QACJ,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,GAAG,UAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,GAAG,GAAG,EAAE,MAAM,CAAC;QAC/C,IAAI,GAAG,GAAgD,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACxF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC;QAChD,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IACE,GAAG,CAAC,MAAM;YACV,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAC9B,sBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,SAAS,EAC/C,CAAC;YACD,MAAM,IAAI,KAAK,CACb,yIAAyI,CAC1I,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,IAAA,wBAAW,EAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAChG,OAAO,GAAG,CAAC;IACb,CAAC;IACD,SAAS,CAAC,CAA+B,EAAE,iBAAiB,GAAG,KAAK;QAClE,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS;YACpD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,YAAY,CAAC,GAAW,EAAE,MAAoC,EAAE,iBAAiB,GAAG,KAAK;QACvF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,aAAa,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACnD,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;IACrF,CAAC;IACD,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAO,GAAG,kBAAO;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,sBAAS,CAAC,MAAM,CAAC,IAAA,oBAAO,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,QAAQ;IACR,IAAI,GAAG;QACL,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpD,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU;IACV,0IAA0I;IAC1I,4FAA4F;IAC5F,sEAAsE;IAC9D,cAAc,CAAC,GAAW,EAAE,aAAoB,EAAE,QAAgB;QACxE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YACvE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,aAAa,GAAG,kBAAM,CAAC,MAAM,CAC3B,kBAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAClE,CAAC;QACF,IAAI,MAAM,GAA+B,IAAI,CAAC,MAAM;aACjD,GAAG,CAAC,eAAe,CAAC;aACpB,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,KAAK;YACR,cAAc,EAAE,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;SAC3D,CAAC,CAAC,CAAC;QACN,IAAI,KAAK;YAAE,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACxC,GAAG,KAAK;gBACR,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAChD,CAAC,CAAC,CAAC;QACN,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,GAAG,EAAE,CAAC;aACpB,IAAI,QAAQ,EAAE,CAAC;YAClB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,GAAG,iBAAK,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,KAAK;YACjB,MAAM;YACN,OAAO;SACR,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,iBAAiB,CAAC,GAAW,EAAE,aAAoB,EAAE,QAAgB,EAAE,MAAc;QACnF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,SAAS,GAAG,OAAO,CAAC;QACxB,IAAI,YAAY,GAAG,OAAO,CAAC;QAC3B,IAAI,UAAU,GAAG,OAAO,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM;YAChC,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,QAAQ,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM;YACzC,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5B,SAAS,EACT,YAAY,EACZ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EACpC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAC3B,oBAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAC9B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EACtB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC9B,UAAU,EACV,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CACzB,CAAC;IACJ,CAAC;IACD,iBAAiB,CACf,GAAW,EACX,aAAsB,EACtB,QAAgB,EAChB,MAAgB,EAChB,aAAa,GAAG,CAAC,CAAC,EAClB,UAAkB,EAClB,OAAO,GAAG,IAAI,EACd,KAAa;QAEb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;YAC9E,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,EAAE,CAAC,CAAC;QAClE,MAAM,GAAG,GAAY;YACnB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACd,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa;YACpC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC9B,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzF,MAAM,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CACN,GAAG;gBACD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,oBAAQ,CAAC,MAAM,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC9C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,sBAAW,EAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,GAAG,CAAC,IAAI,CACN,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EACrB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAC3B,oBAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EACnC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACJ,CAAC;;YAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,SAAS,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,OAAO,KAAK,aAAa,CAAC,MAAM;YAClC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtF,IAAI,UAAU;YACZ,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAW,EAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,yDAAyD;IACzD,OAAO,CAAC,UAAkB,EAAE,GAAW,EAAE,cAA0B,EAAE,QAAgB;QACnF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxE,qBAAqB;QACrB,IAAI,CAAC,IAAA,kBAAO,EAAC,UAAU,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM;gBACzD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe;iBAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAK,UAAoB,CAAC,WAAW,CAAC;iBACpE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC1B,IAAI,CAAC,GAAG,UAAmB,CAAC;gBAC5B,KAAK,MAAM,CAAC,IAAI,IAAI;oBAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACvF,IAAI,CAAC,CAAC,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBACrE,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,OAAO,CAAC,MAAM;gBACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1F,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC;oBAAE,MAAM,GAAG,IAAI,CAAC;YAC5E,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,iBAAiB;QACjB,gFAAgF;QAChF,IAAI,CAAC,cAAc;YAAE,cAAc,GAAG,CAAC,SAAS,CAAC,cAAoC,CAAC,CAAC;;YAClF,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,kCAAkC,OAAO,cAAc,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,4FAA4F;QAC5F,qEAAqE;QACrE,yFAAyF;QACzF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,UAAU,KAAK,aAAa,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,8EAA8E,GAAG,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,UAAU;QACV,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;QAClC,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAU,CAAC,CAAC;YAC7C,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,UAAU,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC;YAChD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,iCAAiC;gBACjC,uEAAuE;gBACvE,sEAAsE;gBACtE,0BAA0B;gBAC1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CACxC,UAAU,EACV,UAAU,EACV,KAAK,CAAC,cAAc,EACpB,UAAU,CACX,CAAC;gBACF,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBAClF,IAAI,IAAA,qBAAU,EAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBACzE,MAAM,GAAG,GAAG,IAAA,sBAAW,EACrB,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EACtC,OAAO,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CACxE,CAAC;oBACF,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;oBAChD,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvC,MAAM,aAAa,GAAG,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACxC,MAAM,IAAI,GAAG,IAAA,wBAAW,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACtC,+EAA+E;oBAC/E,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAO,EAAC,CAAC,CAAC,IAAI,IAAA,qBAAU,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;oBACpF,kDAAkD;oBAClD,IAAI,GAAG,KAAK,CAAC,CAAC;wBAAE,SAAS;oBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAChC,GAAG,EACH,aAAa,EACb,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,GAAG,CACJ,CAAC;oBACF,MAAM,GAAG,GAAG,IAAA,sBAAW,EACrB,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,EACxC,OAAO,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CACxE,CAAC;oBACF,IAAI,CAAC,WAAW,CACd,GAAG,EACH,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EACjE,IAAI,CACL,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,qCAAqC;YACrC,mDAAmD;YACnD,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,kBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,IAAI,IAAA,kBAAO,EAAC,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAU,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAA,qBAAU,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBAAE,SAAS,GAAG,IAAI,CAAC;YAC3F,CAAC;YACD,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7F,IAAI,IAAI,CAAC;YACT,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;gBAClC,0DAA0D;gBAC1D,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;oBAChC,MAAM,GAAG,sBAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxE,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACtE,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,CACd,GAAG,EACH;gBACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,IAAA,sBAAW,EAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACpE,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kEAAkE;IAClE,wEAAwE;IACxE,2FAA2F;IAC3F,2FAA2F;IAC3F,2EAA2E;IAC3E,6FAA6F;IAC7F,sBAAsB;IACtB,IAAI,CAAC,UAAkB,EAAE,cAAyB,EAAE,QAAgB;QAClE,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC;oBAAE,GAAG,EAAE,CAAC;YACnE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxE,mBAAmB;QACnB,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,SAAS;gBAAE,KAAK,CAAC,kBAAkB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;iBAC7D,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACnD,sCAAsC;gBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;oBAC5C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAC/C,CAAC;gBACF,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;oBAClC,uBAAuB;oBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACxC,MAAM,SAAS,GAAG,sBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC3C,MAAM,IAAI,GAAG,IAAA,wBAAW,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBACtC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;oBACpF,IAAI,UAAU,GAAY,EAAE,CAAC;oBAC7B,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;wBACtB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;wBAClC,IAAI,KAAK,GAAG,CAAC,CAAC;wBACd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;4BAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;4BACxE,6DAA6D;4BAC7D,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gCACjC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gCACzB,SAAS;4BACX,CAAC;4BACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtC,KAAK,EAAE,CAAC;wBACV,CAAC;wBACD,4BAA4B;wBAC5B,IAAI,KAAK,KAAK,CAAC;4BAAE,SAAS;oBAC5B,CAAC;yBAAM,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACtC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;4BACpC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;4BACxE,IAAI,MAAM,KAAK,CAAC,CAAC;gCAAE,SAAS;4BAC5B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxC,CAAC;wBACD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,MAAM;4BAAE,SAAS;oBAC/D,CAAC;yBAAM,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxE,sCAAsC;wBACtC,MAAM,aAAa,GAAG,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC5C,UAAU,GAAG,SAAS;6BACnB,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;4BAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAO,EAAC,CAAC,CAAC,IAAI,IAAA,qBAAU,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;4BAChF,IAAI,GAAG,KAAK,CAAC,CAAC;gCACZ,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;4BAChF,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;wBAC5B,CAAC,CAAC;4BACF,kFAAkF;6BACjF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;6BAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC3B,IAAI,CAAC,UAAU,CAAC,MAAM;4BAAE,SAAS;oBACnC,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;wBACvC,IAAI,MAAM,EAAE,CAAC;4BACX,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gCACvB,IAAI,CAAC,CAAC,CAAC,eAAe;oCAAE,SAAS;gCACjC,MAAM,aAAa,GAAG,kBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gCAC1C,IAAI,SAAS,KAAK,SAAS;oCAAE,SAAS;gCACtC,MAAM,SAAS,GAAG,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gCAClE,IAAI,CAAC,SAAS;oCAAE,SAAS;gCACzB,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gCACjF,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;gCAC/B,eAAe,CAAC,KAAK,CAAC,CAAC;gCACvB,OAAO;4BACT,CAAC;wBACH,CAAC;wBACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACrD,CAAC;oBACD,uDAAuD;oBACvD,KAAK,CAAC,kBAAkB,GAAG,UAAU;yBAClC,OAAO,EAAE;yBACT,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACzD,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,kBAAkB;oBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACpF,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC1D,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;YAC/B,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE9F,IAAI,WAAW,GAAU,CAAC,CAAC,KAAK,CAAC;QACjC,IAAI,OAAO,GAAY,EAAE,CAAC;QAC1B,6DAA6D;QAC7D,WAAW;QACX,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,0BAA0B;YAC1B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YACD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,uCAAuC,CAAC,MAAM,OAAO,CAAC,MAAM,eAAe,UAAU,CAAC,MAAM,EAAE,CAC/F,CAAC;YACJ,CAAC;YACD,WAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,WAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzC,WAAW,GAAG,kBAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC;YACtB,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC3E,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEhD,sCAAsC;QACtC,IAAI,cAAiC,EAAE,kBAAuC,CAAC;QAC/E,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,QAAQ;YACR,IAAI,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtD,OAAO,GAAG,kBAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,KAAK,CAAC;wBAAE,OAAO,CAAC,CAAC,KAAK,CAAC;oBAC5B,IAAI,IAAA,kBAAO,EAAC,CAAC,CAAC;wBAAE,OAAO,CAAC,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ;YAAE,kBAAkB,GAAG,OAAO,CAAC;QAChE,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,cAAc,GAAG,kBAAM,CAAC,MAAM,CAAC,CAAC,kBAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,cAAc,GAAG,kBAAM,CAAC,MAAM,CAAC,CAAC,GAAG,kBAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ;YAAE,cAAc,GAAG,WAAW,CAAC;QAEvE,IAAI,CAAC,cAAc,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC9F,IAAI,cAAc;YAAE,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;QAC1D,IAAI,kBAAkB;YAAE,KAAK,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QACtE,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,QAAQ;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,KAAkB;QACxB,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAU,EAAE,CAAC;YAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,kCAAkC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAClF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,kCAAkC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAC7F,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChG,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU;YAC3C,CAAC,CAAC,oBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACZ,IAAI,CAAC,IAAA,qBAAU,EAAC,YAAY,EAAE,aAAa,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK;QACH,sEAAsE;QACtE,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;CACF;AA70BD,kCA60BC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAClD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC;AAED,4EAA4E;AAC5E,MAAM,eAAe,GAAW,UAAU,CAAC;AAC3C,SAAgB,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC9E,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3F,eAAe;QACf,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,GAAG,IAAI,eAAe,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/utils.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { sha256 } from '@noble/hashes/sha256';
2
+ export type Bytes = Uint8Array;
3
+ declare const isBytes: (a: unknown) => a is import("micro-packed").Bytes, concatBytes: (...arrays: Uint8Array[]) => Uint8Array, equalBytes: (a: Uint8Array, b: Uint8Array) => boolean;
4
+ export { sha256, isBytes, concatBytes, equalBytes };
5
+ export declare const hash160: (msg: Bytes) => Uint8Array;
6
+ export declare const sha256x2: (...msgs: Bytes[]) => Uint8Array;
7
+ export declare const randomPrivateKeyBytes: () => Uint8Array;
8
+ export declare const pubSchnorr: (priv: string | Uint8Array) => Uint8Array;
9
+ export declare const pubECDSA: (privateKey: import("@noble/curves/abstract/utils").PrivKey, isCompressed?: boolean) => Uint8Array;
10
+ export declare function signECDSA(hash: Bytes, privateKey: Bytes, lowR?: boolean): Bytes;
11
+ export declare const signSchnorr: (message: import("@noble/curves/abstract/utils").Hex, privateKey: import("@noble/curves/abstract/utils").PrivKey, auxRand?: import("@noble/curves/abstract/utils").Hex) => Uint8Array;
12
+ export declare const tagSchnorr: (tag: string, ...messages: Uint8Array[]) => Uint8Array;
13
+ export declare enum PubT {
14
+ ecdsa = 0,
15
+ schnorr = 1
16
+ }
17
+ export declare function validatePubkey(pub: Bytes, type: PubT): Bytes;
18
+ export declare function tapTweak(a: Bytes, b: Bytes): bigint;
19
+ export declare function taprootTweakPrivKey(privKey: Uint8Array, merkleRoot?: Uint8Array): Uint8Array;
20
+ export declare function taprootTweakPubkey(pubKey: Uint8Array, h: Uint8Array): [Uint8Array, number];
21
+ export declare const TAPROOT_UNSPENDABLE_KEY: Uint8Array;
22
+ export declare const NETWORK: {
23
+ bech32: string;
24
+ pubKeyHash: number;
25
+ scriptHash: number;
26
+ wif: number;
27
+ };
28
+ export declare const TEST_NETWORK: typeof NETWORK;
29
+ export declare function compareBytes(a: Bytes, b: Bytes): number;
30
+ //# sourceMappingURL=utils.d.ts.map
package/utils.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAI/B,QAAA,MAAQ,OAAO,qDAAE,WAAW,2CAAE,UAAU,2CAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAEpD,eAAO,MAAM,OAAO,QAAS,KAAK,eAA2B,CAAC;AAC9D,eAAO,MAAM,QAAQ,YAAa,KAAK,EAAE,eAAyC,CAAC;AACnF,eAAO,MAAM,qBAAqB,kBAAiC,CAAC;AACpE,eAAO,MAAM,UAAU,EAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,KAAK,UAAU,CAAC;AAC5F,eAAO,MAAM,QAAQ,oGAAoB,CAAC;AAO1C,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,UAAQ,GAAG,KAAK,CAY7E;AAED,eAAO,MAAM,WAAW,uLAAe,CAAC;AACxC,eAAO,MAAM,UAAU,wDAA2B,CAAC;AAEnD,oBAAY,IAAI;IACd,KAAK,IAAA;IACL,OAAO,IAAA;CACR;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAa5D;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAMnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,aAAmB,cAWrF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAO1F;AAQD,eAAO,MAAM,uBAAuB,YAAuC,CAAC;AAE5E,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAAO,OAKjC,CAAC;AAGF,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,UAM9C"}
@@ -1,18 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compareBytes = exports.TEST_NETWORK = exports.NETWORK = exports.TAPROOT_UNSPENDABLE_KEY = exports.taprootTweakPubkey = exports.taprootTweakPrivKey = exports.tapTweak = exports.validatePubkey = exports.PubT = exports.tagSchnorr = exports.signSchnorr = exports.signECDSA = exports.pubECDSA = exports.pubSchnorr = exports.randomPrivateKeyBytes = exports.sha256x2 = exports.hash160 = exports.concatBytes = exports.isBytes = exports.sha256 = void 0;
3
+ exports.TEST_NETWORK = exports.NETWORK = exports.TAPROOT_UNSPENDABLE_KEY = exports.PubT = exports.tagSchnorr = exports.signSchnorr = exports.pubECDSA = exports.pubSchnorr = exports.randomPrivateKeyBytes = exports.sha256x2 = exports.hash160 = exports.equalBytes = exports.concatBytes = exports.isBytes = exports.sha256 = void 0;
4
+ exports.signECDSA = signECDSA;
5
+ exports.validatePubkey = validatePubkey;
6
+ exports.tapTweak = tapTweak;
7
+ exports.taprootTweakPrivKey = taprootTweakPrivKey;
8
+ exports.taprootTweakPubkey = taprootTweakPubkey;
9
+ exports.compareBytes = compareBytes;
4
10
  const micro_packed_1 = require("micro-packed");
5
- Object.defineProperty(exports, "isBytes", { enumerable: true, get: function () { return micro_packed_1.isBytes; } });
6
- Object.defineProperty(exports, "concatBytes", { enumerable: true, get: function () { return micro_packed_1.concatBytes; } });
7
11
  const ripemd160_1 = require("@noble/hashes/ripemd160");
8
12
  const sha256_1 = require("@noble/hashes/sha256");
9
13
  Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return sha256_1.sha256; } });
10
14
  const secp256k1_1 = require("@noble/curves/secp256k1");
11
15
  const Point = secp256k1_1.secp256k1.ProjectivePoint;
12
16
  const CURVE_ORDER = secp256k1_1.secp256k1.CURVE.n;
17
+ const { isBytes, concatBytes, equalBytes } = micro_packed_1.utils;
18
+ exports.isBytes = isBytes;
19
+ exports.concatBytes = concatBytes;
20
+ exports.equalBytes = equalBytes;
13
21
  const hash160 = (msg) => (0, ripemd160_1.ripemd160)((0, sha256_1.sha256)(msg));
14
22
  exports.hash160 = hash160;
15
- const sha256x2 = (...msgs) => (0, sha256_1.sha256)((0, sha256_1.sha256)((0, micro_packed_1.concatBytes)(...msgs)));
23
+ const sha256x2 = (...msgs) => (0, sha256_1.sha256)((0, sha256_1.sha256)(concatBytes(...msgs)));
16
24
  exports.sha256x2 = sha256x2;
17
25
  exports.randomPrivateKeyBytes = secp256k1_1.schnorr.utils.randomPrivateKey;
18
26
  exports.pubSchnorr = secp256k1_1.schnorr.getPublicKey;
@@ -36,7 +44,6 @@ function signECDSA(hash, privateKey, lowR = false) {
36
44
  }
37
45
  return sig.toDERRawBytes();
38
46
  }
39
- exports.signECDSA = signECDSA;
40
47
  exports.signSchnorr = secp256k1_1.schnorr.sign;
41
48
  exports.tagSchnorr = secp256k1_1.schnorr.utils.taggedHash;
42
49
  var PubT;
@@ -62,7 +69,6 @@ function validatePubkey(pub, type) {
62
69
  throw new Error('Unknown key type');
63
70
  }
64
71
  }
65
- exports.validatePubkey = validatePubkey;
66
72
  function tapTweak(a, b) {
67
73
  const u = secp256k1_1.schnorr.utils;
68
74
  const t = u.taggedHash('TapTweak', a, b);
@@ -71,7 +77,6 @@ function tapTweak(a, b) {
71
77
  throw new Error('tweak higher than curve order');
72
78
  return tn;
73
79
  }
74
- exports.tapTweak = tapTweak;
75
80
  function taprootTweakPrivKey(privKey, merkleRoot = new Uint8Array()) {
76
81
  const u = secp256k1_1.schnorr.utils;
77
82
  const seckey0 = u.bytesToNumberBE(privKey); // seckey0 = int_from_bytes(seckey0)
@@ -84,7 +89,6 @@ function taprootTweakPrivKey(privKey, merkleRoot = new Uint8Array()) {
84
89
  // bytes_from_int((seckey + t) % SECP256K1_ORDER)
85
90
  return u.numberToBytesBE(u.mod(seckey + t, CURVE_ORDER), 32);
86
91
  }
87
- exports.taprootTweakPrivKey = taprootTweakPrivKey;
88
92
  function taprootTweakPubkey(pubKey, h) {
89
93
  const u = secp256k1_1.schnorr.utils;
90
94
  const t = tapTweak(pubKey, h); // t = int_from_bytes(tagged_hash("TapTweak", pubkey + h))
@@ -93,7 +97,6 @@ function taprootTweakPubkey(pubKey, h) {
93
97
  const parity = Q.hasEvenY() ? 0 : 1; // 0 if has_even_y(Q) else 1
94
98
  return [u.pointToBytes(Q), parity]; // bytes_from_int(x(Q))
95
99
  }
96
- exports.taprootTweakPubkey = taprootTweakPubkey;
97
100
  // Another stupid decision, where lack of standard affects security.
98
101
  // Multisig needs to be generated with some key.
99
102
  // We are using approach from BIP 341/bitcoinjs-lib: SHA256(uncompressedDER(SECP256K1_GENERATOR_POINT))
@@ -115,7 +118,7 @@ exports.TEST_NETWORK = {
115
118
  };
116
119
  // Exported for tests, internal method
117
120
  function compareBytes(a, b) {
118
- if (!(0, micro_packed_1.isBytes)(a) || !(0, micro_packed_1.isBytes)(b))
121
+ if (!isBytes(a) || !isBytes(b))
119
122
  throw new Error(`cmp: wrong type a=${typeof a} b=${typeof b}`);
120
123
  // -1 -> a<b, 0 -> a==b, 1 -> a>b
121
124
  const len = Math.min(a.length, b.length);
@@ -124,5 +127,4 @@ function compareBytes(a, b) {
124
127
  return Math.sign(a[i] - b[i]);
125
128
  return Math.sign(a.length - b.length);
126
129
  }
127
- exports.compareBytes = compareBytes;
128
130
  //# sourceMappingURL=utils.js.map
package/utils.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["src/utils.ts"],"names":[],"mappings":"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"}